Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Кузьмины по VB.doc
Скачиваний:
47
Добавлен:
25.05.2014
Размер:
911.36 Кб
Скачать

Аргументы

Процедуры могут использовать аргументы, список которых (при необходимости с указанием типа) размещают в скобках после имени процедуры. В событийных процедурах набор аргументов зависит от события и не может быть изменен разработчиком.

В общих процедурах количество и порядок используемых аргументов определяется разработчиком.

Способ передачи аргументов

В VBаргументы могут передаваться двумя способами: либо как ссылки (ByRef), либо как значения (ByVal).

Если аргумент передается как ссылка, то вызванная процедура получает физический адрес памяти передаваемой переменной. И в этом случае можно изменять значение этого аргумента, так как вызываемая и вызывающая процедуры обращаются к одной и той же области памяти и значение переменной для них идентично. По умолчанию аргументы передаются как ссылка, поэтом ключевое слово можно опустить ByRef.

При передаче аргументов по значению вызванная процедура получает копию значения этого аргумента, и изменить его не может. Ключевое слово ByValдолжно указываться обязательно.

Функции-процедуры

В VBимеется большое количество системных и встроенных функций.

Функция пользователяэто именованный программный блок, который включает группу операторов, обеспечивающих вычислениеодного значения. Новые функцииFunctionможно использовать в правой части операторов или различных выражений, то есть там, где используются переменные соответствующего типа. В общем виде блок типаFunctionимеет следующий вид:

Function <Имя функции> (параметры) as <Тип >

<программный код функции>

End Function

В разделе «параметры» через запятую перечисляются формальные параметры функции (если есть) желательно с указанием типа (хотя этого можно и не делать и в этом случае они рассматриваются как переменные типа Variant). В программном коде функции обязательно должна быть строка, (обычно последняя), в которой оператором присваивания задается конкретное выражение для вычисления значения переменной, совпадающей с именем функции.

Возвращаемое процедурой значение присваивается имени процедуры и может быть использовано в выражениях программного кода аналогично стандартным функциям Visual Basic.

При вызове функции ее параметры, указанные в скобках, называются фактическими и передаются в процедуру для получения вычисляемого значения, возвращаемого в основную программу. В качестве фактических параметров могут использоваться массивы, арифметические выражения, переменные и константы. Между фактическими и формальными параметрами, объявленными в заголовке функции, должно быть соответствие по их количеству, типу данных и последовательности расположения.

Вызов процедуры Functionаналогичен вызову встроенных функций Visual Basic. Например, функцию

Function tangens(x) as double

tangens=sin(x)/cos(x)

end Function

можно вызвать следующим образом:

s=tangens(1) или Print tangens(5*x)

Пример. Вычислить выражение c=m!n!/(m+n)!

Процедура-функция для вычисления факториала

Использование функции

Function f(k as integer) as long

Dim I as integer

F=1

for I=1 to k

F=f*I

Next I

End function

Dim c as single

Dim n as integer

Dim m as integer

M=val(inputbox(“Введите M”))

N=val(inputbox(“Введите N”))

C=f(m)*f(n)/f(m+n)

Print “c=”;c

Такую программу можно вложить, например, в процедуру обработки какого-либо события на форме для получения результата.