Главная страница
Навигация по странице:

  • Использование именованных аргументов

  • Аргументы, являющиеся массивами

  • 3. ПОРЯДОК ВЫПОЛНЕНИЯ 1. Получить задание у преподавателя. 197 2. Выполнить задание в соответствии с вариантом. 3. Ответить на контрольные вопросы. 4.

  • 5. КОНТРОЛЬНЫЕ ВОПРОСЫ

  • информатика. Игнатьева Елена Александровна, Измайлова Елена Ивановна. Информатика. Электронный ресурс методические указания


    Скачать 4.32 Mb.
    НазваниеИгнатьева Елена Александровна, Измайлова Елена Ивановна. Информатика. Электронный ресурс методические указания
    Дата20.06.2022
    Размер4.32 Mb.
    Формат файлаpdf
    Имя файлаинформатика.pdf
    ТипМетодические указания
    #604814
    страница15 из 15
    1   ...   7   8   9   10   11   12   13   14   15
    Вызовы функций
    Оформление вызова функции зависит от того, требуется ли использовать ее значение в вызывающей процедуре. Если Вы хо- тите передать вычисляемое функцией значение в переменную или применить его в выражении правой части оператора при- своения, то вызов пользовательской функции имеет тот же вид, что и вызов встроенной функции, например, sin(x)
    . При вызове указывается имя функции, а после него идет заключенный в круглые скобки список фактических параметров. Например, если заголовок функции
    MyFunc
    :
    Function Myfunc(Name As String, Age As Integer, Newdate As
    Date) As Integer использовать ее значение можно с помощью вызовов: val= Myfunc("Alex",25, "10/04/97") или x = sqrt(Myfunc("Alex",25, "10/04/97")) + x
    Если же значение, вычисляемое функцией, нас не интересу- ет и нужно воспользоваться лишь ее побочными эффектами, вы- зов функции может иметь ту же форму, что и вызов процедуры
    Sub
    . Например:
    Myfunc "Alex",I, "10/04/97" или:
    Call Myfunc(Myson, 25, DateOfArrival)
    Использование именованных аргументов
    В предыдущих примерах фактические параметры вызова процедуры или функции располагались в том же порядке, что и

    194 формальные параметры в ее заголовке. Это не всегда удобно, особенно если некоторые аргументы необязательны (
    Optional
    ).
    VBA позволяет указывать значения аргументов в произвольном порядке, используя их имена. При этом после имени аргумента ставятся двоеточие и знак равенства, после которого помещается значение аргумента (фактический параметр). Например, вызов рассмотренной выше процедуры-функции
    MyFunc может выгля- деть так:
    Myfunc Age:= 25, Name:= "Alex", Newdate:= DateOfArrival
    Удобство такого способа особенно проявляется при вызове процедур с необязательными аргументами, которые всегда по- мещаются в конец списка аргументов в заголовке процедуры.
    Пусть, например, заголовок процедуры
    ProcEx
    :
    Sub ProcEx(Name As String, Optional Age As Integer, Optional
    City = "Москва")
    Список ее аргументов включает один обязательный аргу- мент
    Name и два необязательных:
    Age и
    City
    , – причем для по- следнего задано значение по умолчанию "
    Москва ". Если при вы- зове этой процедуры второй аргумент не требуется, то при вызо- ве, не использующем именованных параметров, сам параметр опускается, но, выделяющая его запятая, должна оставаться:
    ProcEx "Оля",,"Тверь"
    Вместо этого можно использовать вызов с именами аргу- ментов:
    ProcEx City:="Тверь", Name:="Оля"
    В данном случае не требуется заменять пропущенный аргу- мент запятыми и соблюдать определенный порядок следования аргументов. Если некий необязательный аргумент не задан при вызове, то вместо него подставляется значение, определенное пользователем по умолчанию, если и такое не определено, под- ставляется значение, определенное по умолчанию для соответст- вующего типа. Например, при вызове:
    ProcEx Name:="Оля" в качестве значения аргумента
    Age в процедуру передастся
    0
    , а в качестве аргумента
    City
    – явно заданное по умолчанию значение "
    Москва ".
    Чтобы процедура "узнала", что ей при вызове передан не- обязательный аргумент, можно воспользоваться функцией

    195
    IsMissing
    . Она по имени аргумента возвращает логическое значе- ние
    True
    , когда значение аргумента не передано в процедуру, и
    False
    , если аргумент задан. Это применимо только в том случае, если параметр имеет тип
    Variant
    . Для всех остальных типов дан- ных полагается, что в процедуру всегда передано значение пара- метра, явно или неявно заданное по умолчанию. Поэтому, если такая проверка необходима, то параметр должен иметь тип
    Variant
    . Для массива аргументов
    ParamArray функция
    IsMissing всегда возвращает
    False
    , и для установления его пустоты нужно проверять, что верхняя граница индекса меньше нижней.
    Рассмотрим функцию от двух аргументов, второй из кото- рых необязателен:
    Function TwoArgs(I As Integer, Optional X As Variant) As Va- riant
    If IsMissing(X) Then
    ' если 2-ой аргумент отсутствует, то вернуть 1-ый.
    TwoArgs = I
    Else
    ' если 2-ой аргумент есть, то вернуть их произведение
    TwoArgs = I*X
    End If
    End Function
    Вот результаты нескольких вызовов этой функции в окне отладки:
    ? TwoArgs(5,7)
    35
    ? TwoArgs(5.5)
    6
    ? TwoArgs(5, 5.5)
    27,5
    ? TwoArgs(5, "6")
    30
    Аргументы, являющиеся массивами
    Аргументы процедуры могут быть массивами. Процедуре передается имя массива, а размерность массива определяется встроенными функциями
    LBound и
    UBound
    . Приведем пример процедуры, вычисляющей скалярное произведение векторов:

    196
    Public Function ScalarProduct(X() As Integer, Y() As Integer)
    As Integer
    'Вычисляет скалярное произведение двух векторов.
    'Предполагается, что границы массивов совпадают.
    Dim i As Integer, Sum As Integer
    Sum = 0
    For i = LBound(X) To UBound(X)
    Sum = Sum+X(i)*Y(i)
    Next i
    ScalarProduct = Sum
    End Function
    Оба параметра процедуры, передаваемые по ссылке, явля- ются массивами, работа с которыми в теле процедуры не пред- ставляет затруднений, благодаря тому, что функции
    LBound и
    UBound позволяют установить границы массива по любому из- мерению. Приведем программу, в которой вызывается функция
    ScalarProduct
    :
    Public Sub TestScalarProduct()
    Dim A(1 To 5) As Integer
    Dim B(1 To 5) As Integer
    Dim C As Variant
    Dim Res As Integer
    Dim i As Integer
    C = Array(1, 2, 3, 4, 5)
    For i = 1 To 5
    A(i) = C(i-1)
    Next i
    C = Array(5, 4, 3, 2, 1)
    For i = 1 To 5
    B(i) = C(i-1)
    Next i
    Res = ScalarProduct(A, B)
    Debug.Print Res
    End Sub
    3. ПОРЯДОК ВЫПОЛНЕНИЯ
    1. Получить задание у преподавателя.

    197 2. Выполнить задание в соответствии с вариантом.
    3. Ответить на контрольные вопросы.
    4.
    ЗАДАНИЕ
    Выполнить сортировку одномерного массива в соответствии с заданным вариантом. Алгоритм сортировки выполнить в виде отдельной процедуры.
    1.
    Известен список фамилий и рост учеников класса.
    Напечатать в порядке возрастания роста список детей, ис- пользуя метод шейкер – сортировки.
    2. Известен список спортсменов и результат их прыжков в длину.
    Напечатать общий список в порядке возрастания результата, используя метод сортировки бинарными включениями.
    3. Известен список биатлонистов и результаты их стрельбы на двух огневых рубежах (попадания). На каждом рубеже пять мишеней.
    Напечатать общий список биатлонистов в порядке убывания результата на втором огневом рубеже, используя метод прямого выбора.
    4. Известен список студентов группы и количество пропу- щенных часов каждым из студентов.
    Напечатать список студентов в порядке возрастания количе- ства пропущенных часов (если пропуски имеют место), исполь- зуя сортировку прямыми включениями.
    5. Известен список рабочих и их месячный заработок.
    Напечатать список рабочих в порядке убывания зарплаты, используя метод сортировки прямыми включениями.
    6. Задан числовой массив, состоящий из J элементов.
    Напечатать отрицательные числа в порядке возрастания по модулю, используя шейкер – сортировку.
    7. Задан числовой массив, состоящий из J элементов.
    Напечатать положительные числа в порядке убывания, ис- пользуя метод прямого выбора.
    8. Известен список фамилий и вес студентов вашей груп- пы.

    198
    Напечатать в порядке возрастания список студентов, вес ко- торых не меньше среднего веса всей группы. Для этого использо- вать метод сортировки бинарными включениями.
    9. Дан одномерный массив из I целых чисел.
    Напечатать отрицательные числа в порядке возрастания по модулю, а положительные числа в порядке убывания, используя метод прямого обмена.
    10. Известен список студентов группы и количество пропу- щенных часов каждым из студентов.
    Напечатать в порядке возрастания тех, кто пропустил более
    10 часов, используя метод сортировки прямыми включениями.
    11. Известен список спортсменов и результат их прыжков в длину.
    Напечатать в порядке убывания тех, чей результат меньше
    3 м, используя сортировку прямого выбора.
    12. Известен список спортсменов и результат их прыжков в длину.
    Напечатать в порядке возрастания тех, чей результат больше
    3 м, используя шейкер – сортировку.
    13. Известен список фамилий и рост учеников класса.
    Напечатать в порядке убывания тех, чей рост меньше
    160 см, используя сортировку бинарными включениями.
    14. Известен список фамилий и рост учеников класса.
    Напечатать в порядке возрастания тех, чей рост больше
    160 см, используя сортировку прямого обмена.
    5. КОНТРОЛЬНЫЕ ВОПРОСЫ
    1. Чем отличается процедура типа "Sub" от процедуры типа "Function"?
    2. Что обозначают ключевые слова ByVal и ByRef при опи- сании процедур?
    3. Что обозначает ключевое слово Optional при описании процедур?
    4. Функции с побочным эффектом.
    5. Создание новой процедуры.
    6. Вызов процедуры типа "Sub".
    7. Вызов процедуры типа "Function".
    8. Использование именованных аргументов.

    199 9. Как использовать аргументы, являющиеся массивами?
    Оглавление
    Лабораторная работа № 1 Основы позиционных систем счисления ........................................................................................... 2 1.
    ЦЕЛЬ РАБОТЫ ............................................................................ 2 2.
    ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ............................................ 2
    Классификация позиционных систем счисления................ 2
    Преобразование чисел .......................................................... 5
    Арифметические операции .................................................. 1
    Основные положения ........................................................... 4
    Прямой код............................................................................ 4
    Обратный код....................................................................... 6
    Дополнительный код ............................................................ 7
    Модифицированные обратный и дополнительный коды .. 8
    ПРИЛОЖЕНИЕ............................................................................... 10
    Лабораторная работа № 2 Работа с файлами и директориями в операционной системе MS DOS..................................................... 17 1.
    ЦЕЛЬ РАБОТЫ .......................................................................... 17 2.
    ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ.......................................... 17
    Основные понятия.............................................................. 17
    Назначение операционной системы.................................. 17
    Понятие файла........................................................................... 18
    Способы обращения к файлу ............................................. 19
    Характеристика MS DOS.................................................. 21
    Организация доступа к файлу................................................... 21
    Модульная структура MS DOS................................................. 24
    Загрузка MS DOS в оперативную память с диска................... 27
    Технология работы в MS DOS ........................................... 28
    Общие сведения о командах ...................................................... 28
    Порядок действий при выполнении команды MS DOS ............ 30
    Команды MS DOS общего назначения ...................................... 31
    Основные команды для работы с директориями .................... 31
    Основные команды для работы с файлами.............................. 35
    Образец варианта задания .............................................................. 39
    Лабораторная работа № 3 Основы работы в текстовом редакторе
    Microsoft Word................................................................................. 40

    200
    ЦЕЛЬ РАБОТЫ ............................................................................... 40
    ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ................................................... 40
    Работа в Microsoft Word ................................................................ 40
    Создание документа .................................................................. 40
    Перемещение по документу ...................................................... 42
    Пользовательский интерфейс................................................... 43
    Открытие документа ............................................................... 50
    Сохранение документа .............................................................. 51
    Выход из Microsoft Word ............................................................ 52
    Работа с текстом .......................................................................... 52
    Ввод текста ............................................................................... 52
    Выделение фрагмента текста ................................................. 52
    Редактирование текста ........................................................... 53
    Отмена операций над текстом................................................ 53
    Копирование текста.................................................................. 53
    Перемещение текста................................................................. 54
    Вставка символа ........................................................................ 54
    Вставка формул ......................................................................... 54
    Форматирование текста .................................................. 55
    Выбор темы................................................................................ 55
    Установка позиций табуляции.................................................. 55
    Изменение параметров шрифта и иабзаца ............................. 56
    Изменение интервала и положения символов.......................... 58
    Создание и редактирование списков ........................................ 58
    Оформление страниц документа ..................................... 59
    Изменение и установка полей страницы.......................... 61
    Изменение ориентации страниц ....................................... 61
    Вставка разрывов страниц ............................................... 62
    Добавление и удаление страницы...................................... 67
    Вставка колонтитулов и нумерация страниц ................. 68
    Колонки ............................................................................... 72
    Работа с графическими объектами ................................. 75
    Создание таблиц ................................................................ 75 4. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ ...................................... 80 5. КОНТРОЛЬНЫЕ ВОПРОСЫ..................................................... 80
    Лабораторная работа № 4 Табличный процессор MS EXCEL.
    Создание таблиц и диаграмм. Статистическая обработка данных
    81

    201 1. ЦЕЛЬ РАБОТЫ ........................................................................... 81 2. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ............................................... 81
    Объекты документа Excel ................................................ 81
    Ввод данных ........................................................................ 85
    Форматирование ячеек...................................................... 87
    2.4. Ввод и использование формул ..................................... 90
    Построение диаграмм ....................................................... 94 3. СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯРАБОТЫ ....... 96
    Создание электронной таблицы и заполнение формулами96 3.1.1. Задание 1 ........................................................................... 96
    Задание 2 ..................................................................................... 97
    Задание 3 ..................................................................................... 98
    Задание для защиты: редактирование таблиц ............... 99
    Задание 1 ..................................................................................... 99
    Задание 2 ................................................................................... 100 4. КОНТРОЛЬНЫЕ ВОПРОСЫ................................................... 100
    Лабораторная работа № 5 Работа со списками данных MS
    EXCEL............................................................................................ 101 1.
    ЦЕЛЬ РАБОТЫ ........................................................................ 101 2.
    ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ........................................ 101
    Общие сведения о списках .............................................. 101
    Создание и корректировка списка................................... 102
    Сортировка списка ........................................................... 104
    Фильтрация списка........................................................... 106
    Вычисление промежуточных и общих итогов ............... 112 1.
    ПОРЯДОК ВЫПОЛНЕНИЯ.................................................... 114 2.
    ЗАДАНИЕ................................................................................. 114
    Лабораторная работа № 6 Работа с макросами в табличном процессоре MS EXCEL. ................................................................ 117 3.
    ЦЕЛЬ РАБОТЫ ........................................................................ 117 4.
    ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ........................................ 117
    Запись макроса ................................................................. 118
    Запуск макроса нажатием клавиши CTRL в сочетании с
    клавишей быстрого вызова. ..................................................... 122
    Запуск макроса нажатием кнопки на панели быстрого
    доступа 122
    Запуск макроса щелчком области графического объекта123
    Запуск макроса кнопкой на рабочем листе .................... 125

    202 3.
    ПОРЯДОК ВЫПОЛНЕНИЯ.................................................... 126 4.
    ЗАДАНИЕ................................................................................. 128
    Лабораторная работа № 7 Массивы. Элементарные операции с матрицами...................................................................................... 129 1.
    ЦЕЛЬ РАБОТЫ ........................................................................ 129 2.
    ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ........................................ 129 3.
    ПОРЯДОК ВЫПОЛНЕНИЯ.................................................... 144 4.
    ЗАДАНИЕ................................................................................. 144 5.
    КОНТРОЛЬНЫЕ ВОПРОСЫ ................................................. 146
    Лабораторная работа № 8 Сортировка массивов........................ 147 1.
    ЦЕЛЬ РАБОТЫ ........................................................................ 147 2.
    ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ........................................ 147
    Основные положения ....................................................... 147
    методом прямого включения........................................... 148
    Сортировка методом прямого выбора .......................... 150
    Сортировка методом прямого обмена .......................... 152
    Сортировка бинарными включениями ............................ 154
    Шейкер – сортировка ...................................................... 156 3.
    ПОРЯДОК ВЫПОЛНЕНИЯ.................................................... 159 4.
    ЗАДАНИЕ................................................................................. 159 5.
    КОНТРОЛЬНЫЕ ВОПРОСЫ ................................................. 161
    Лабораторная работа № 9 Работа со стоками ............................. 162 1.
    ЦЕЛЬ РАБОТЫ ........................................................................ 162 2.
    ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ............................................ 162 3.
    ПОРЯДОК ВЫПОЛНЕНИЯ.................................................... 174 4.
    ЗАДАНИЕ................................................................................. 174 5.
    КОНТРОЛЬНЫЕ ВОПРОСЫ ................................................. 179
    Лабораторная работа № 10 Пользовательские процедуры и функции ......................................................................................... 180 1.
    ЦЕЛЬ РАБОТЫ ........................................................................ 180 2.
    ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ............................................ 180
    Описание и создание процедур ........................................ 180
    Классификация процедур ................................................. 181
    Синтаксис процедур и функций ...................................... 182
    Функции с побочным эффектом ..................................... 186
    Создание процедуры......................................................... 187
    Создание процедур обработки событий ........................ 188
    Вызовы процедур и функций ............................................ 189

    203
    Использование именованных аргументов....................... 193
    Аргументы, являющиеся массивами ............................... 195 3.
    ПОРЯДОК ВЫПОЛНЕНИЯ.................................................... 196 4.
    ЗАДАНИЕ................................................................................. 197 5.
    КОНТРОЛЬНЫЕ ВОПРОСЫ ................................................. 198
    1   ...   7   8   9   10   11   12   13   14   15


    написать администратору сайта