Функции
Функция предназначена для вычисления некоторой величины, значение которой возвращается вызывающей процедуре.
Функция создается также, как и процедура: или с помощью диалогового окна Add Procedure (в группе Type выбирается Function) или вводится в разделе General окна программных кодов.
Синтаксис функции:
[Private / Public] Function имя [(список формальных параметров)] as тип
[объявление переменных и констант]
операторы
Имя = вычисляемая величина
End Function
У функции два основных отличия от процедуры.
Первое – ее заголовок: ключевое слово Function указывает на то, что эта функция, и даже после формальных параметров указывается тип возвращаемого параметра (вычисляемой величины).
Второе отличие заключается в том, что в теле функции хотя бы один раз должно быть присвоено значение вычисляемого параметра.
Для вызова функции следует в выражении, где необходимо использовать значения функции, указать имя функции со списком фактических параметров, которые должны совпадать по количеству, последовательности и типам с формальными параметрами.
Пример. Функция вычисления факториала числа n.
Private Function Factorial (n as byte) as integer
Dim Fact as integer, i as byte
Fact = 1
for i = 2 to n
Fact = Fact * i
next i
Factorial = Fact
End Function
Использование функции в основной процедуре:
Part = Sqr(t) / Factorial (j), где
Sqr(t) – вызов стандартной функции возведения в квадрат переменной (фактического параметра t,
Factorial (j) – вызов созданной функции, вычисляющей факториал переменной j (фактический параметр)
Досрочный выход из процедур и функций
Иногда необходимо выйти из процедуры еще до того, как она свершится. Это делается с помощью ключевого слова Exit: Exit Sub из процедуры и Exit Function – из функции.
При работе с проектом пользователь вводит в текстовое окно txtn целое число, определяющее число повторений цикла. Если установлен флажок «Выйти досрочно», то цикл выполняется в 2 раза меньшее число раз, если не установлен, то полностью – число раз, введенное с клавиатуры. Число повторений цикла отображается на командной кнопке «Выполнить».
Функция выполняет цикл n раз или n/2 раз, возвр.
Private Function Out (n as integer, flag as integer) as integer
Dim i as integer
Dim p as integer
Dim fl as integer
p = n ‘число выполнения цикла
fl = flag ‘признак досрочного выхода
for i = 0 to p
if fl = 1 then ‘если установлен флажок
if i = p/2 then ‘n если i = половине р
out = i ‘то возвращается текущее значение i
Exit function ‘и досрочный выход
end if
end if
Next i
Out = i ‘если флажок не установлен, цикл выполняется
‘полностью
End Function
Вызывающая функцию процедура:
Private Sub btnStart_Click ( )
Dim i as integer
Dim j as integer
j = CInt (txtn.text) ‘введенное число повторений цикла
i = Out (j, chkBox.Value) ‘вызов функции
btnStart.Caption = CStr(i) ‘вывод значения i
End Sub