Lect_05_2012.ppt
- Количество слайдов: 8
ПРОЦЕДУРЫ И ФУНКЦИИ Процедуры - последовательность объявлений и инструкций, объединенных для выполнения. В зависимости от назначения можно выделить процедуры обработки событий и процедуры общего назначения. Процедура Function - последовательность инструкций языка Visual Basic, ограниченных инструкциями Function и End Function, которая возвращает значения Процедура Sub представляет собой последовательность инструкций языка Visual Basic, ограниченных инструкциями Sub и End Sub, которая выполняет действия, но не возвращает значение Процедура Property представляет собой последовательность инструкций языка Visual Basic, которые позволяют программисту создавать собственные свойства и оперировать с ними. Процедура или функция не может быть определена внутри какой-либо процедуры или функции.
Процедура Sub [Private|Public][Static] Sub имя([список аргументов ]) [операторы] [Exit Sub] [операторы] End Sub список аргументов Разделяемый запятыми список переменных, массивов или выражений, передаваемых в процедуру. Каждый элемент списка имеет следующий Синтаксис: [Optional][By. Val/By. Ref][Param. Array] имя[()][As тип][=зн. по умолч. ] Optional By. Val By. Ref Param. Array знач. по умолчан. Указывает, что аргумент не является обязательным. Все последующие аргументы, также должны быть необязательными и быть описаны с помощью ключевого слова Optional. Указывает, что этот аргумент передается по значению (только копия). Указывает, что этот аргумент передается по ссылке. Используется по умолчанию. Позволяет задавать произвольное количество аргументов. Используется только в качестве последнего элемента в списке для указания, что конечным аргументом является массив значений типа Variant. Не может быть использовано со словами By. Val, By. Ref или Optional. Любая константа или выражение, дающее константу. Используется для необязательных параметров только вместе с параметром Optional.
Вызов процедуры Sub [Call] имя [список. Аргументов] Call имя список. Аргументов Пример: Определение: Необязательное ключевое слово. Если указано, необходимо заключить список. Аргументов в круглые скобки. Имя вызываемой процедуры. Разделяемый запятыми список переменных, массивов или выражений, передаваемых в процедуру. процедура, вычисл. сумму эл-тов массива. Sub Sum. Arr(N as Integer, Arr(), Sum. Arr) Dim i as Integer Sum. Arr=0 For i = 0 to N Sum. Arr=Sum. Arr+Arr(i) Next i End Sub Вызов Call Sum. Arr(Number, My. Arr(), Summa. My. Arr) ‘передача по ссылке или Sum. Arr Number, My. Arr(), Summa. My. Arr или Sum. Arr (Number), My. Arr(), Summa. My. Arr ‘передача первого аргумента по значению
Примеры: Sub Optional. Demo(x As Integer, Optional b As Integer = 10) c = x + b End Sub Call Optional. Demo(6, 7) Sub Param. Array. Demo (x, Param. Array a()) c = x + a(0) + a(1) End Sub Call Param. Array. Demo (4, 2, 3)
Процедура Function [Public|Private][Static] Function имя ([список. Аргументов]) [As тип] [операторы] [имя функции = выражение] [Exit Function] [операторы] [имя функции = выражение] ‘ End Function список. Аргументов Разделяемый запятыми список переменных, массивов или выражений, передаваемых в процедуру Список аргументов имеет следующий синтаксис: [Optional][By. Val/By. Ref][Param. Array] имя[()][As тип] [=знач. по умолчан. ] Если никакое значение не присвоено имени функции, возвращается значение по умолчанию: (0, “” , Empty ).
Примеры: Определение: Function Delta(x, y) If x = y Then Delta = 1 Else Delta = 0 End If End Function Обращение Var 1=Delta (7, 8)‘ ‘ Дельта-функция Возвращает 0 и присваивает переменной Var 1 Определение: Function Sum. Arr()) ‘ф-ция, вычисл. сумму эл-тов массива. Dim min. I As Long, max. I As Long, i As Long min. I = LBound(Arr): max. I = UBound(Arr) Sum. Arr=0 For i = min. I To max. I Sum. Arr=Sum. Arr+Arr(i) next i End Function Обращение Var 2= Sum. Arr(My. Arr())
Стандартный модуль (модуль программы) - файл с расширением. bas Содержит переменные и процедуры, которые могут быть использованы в любом месте программы. Не содержит объектов и свойств - только код Вызов процедур, расположенной в стандартном модуле: [Call][имя. Модуля. ]имя. Процедуры(аргументы) Примеры: Call Sum. Arr(Nb, C(), Summa. C) Call module 2. Sum. Arr(Nm, D(), Summa. D) - вызов одноименной процедуры из другого ст. модуля Вызов процедуры, расположенной в форме [Call] имя. Формы. имя. Процедуры(аргументы) Пример: Call Form 3. Sum. Arr(Nmb, B(), Summa. B)
Задание 1) Создать процедуры типа Sub сортировки (двумя способами) и процедуры типа Function поиска (двумя способами) и расположить их в стандартном модуле. 2) Модернизировать предыдущую программу так, чтобы осуществлялся вызов необходимых процедур и функций из модуля.
Lect_05_2012.ppt