3.1. Функции
Функции — это подпрограммы, которые могут возвращать под своим именем
результирующее значение.
Типичным примером функции может быть арифметическая функция sin().
Запись:
a = Sin(3.14)
позволяет вызвать функцию вычисления синуса числа 3.14 и вернуть результат
под именем функции, а затем присвоить его переменной a.
Описание функции состоит из двух частей: заголовка и кода. Заголовок функции
имеет следующий вид:
[доступ] Function имя_функции ([ByVal параметр1 As тип, ByVal параметр2 As тип, ..])
As тип_результата,
где
. имя_функции — однозначно идентифицирует данную функцию и используется
для ее вызова из основной программы. Имя функции должно быть уникальным.
Требования к именам функций те же, что и к именам переменных.
. параметры — это необязательная часть функции, которая содержит список
переменных, передаваемых в функцию из основной программы. Параметры перечисляются
через запятую с обязательным указанием типа каждого параметра.
. тип_результата — показывает, какого типа будет результат выполнения
функции.
Для создания новой функции или процедуры необходимо установить курсор за
пределами других функций или процедур и начать вводить заголовок функции или
процедуры. После ввода заголовка функции (процедуры) и нажатия клавиши
<Enter> редактор кода Visual Basic автоматически создаст команду завершения
функции или процедуры (End Function или End Sub).
Все, что вы напишете внутри, между заголовком и концом функции, будет
являться кодом функции.
Код функции — это программный код, состоящий как минимум из операторов и
команд языка. Для возврата какого-либо значения из функции в Visual Basic
используется ключевое слово Return:
Return результат_выполнения_функции.
Значение реэультат_выполнения_функции будет возвращено в основную
программу, из которой была вызвана данная функция. Например:
Function WF() As Integer
Return 17 ' результат выполнения функции
End Function
Вызов данной функции приведет к возврату значения 17. Функция WF() в
данном примере не имеет параметров и возвращает значение целого типа (Integer).
Вызов функции осуществляется по ее имени и списку аргументов, заключенных
в круглые скобки после имени функции. Все аргументы должны быть совместимы
по типу с параметрами, указанными в заголовке описания функции.
В качестве примера рассмотрим описание функции нахождения максимального
значения среди элементов одномерного массива. В качестве параметров будем
передавать в функцию имя массива и количество его элементов.
Private Function MaxArray(ByVal a() As Double, ByVal n As Integer) As Double
Dim x As Double
Dim i As Integer
x = a(0)
For i = 1 To n – 1
If (x < a(i)) Then
x = a(i)
End If
Next i
Return x
End Function
Вызов данной функции может выглядеть следующим образом
Dim rez As Double
Dim b(4) As Double ' создаем массив на 5 элементов
b(0) =9 ' присваиваем значения элементам массива
b(1) = 4
b(2) = 12
b(3) = 1
b(4) = 2
rez = MaxArray(b, 5) ' вызываем функцию МахАггау().
При этом переменная rez должна иметь тип Double, массив b — тоже Double, а
вторым параметром должно быть целое число, равное количеству элементов
массива (в нашем примере 5). Таким образом, вызов данной функции при этих
параметрах поместит в переменную a самое большое значение из всех, хранящихся
в элементах одномерного пятиэлементного массива b. В нашем примере,
переменная a примет значение 12.
