1. По умолчанию формальные и фактические параметры должны быть согласованы по количеству, порядку следования и типу.
2. По умолчанию формальные параметры после работы подпрограммы возвращаются на место фактических. Такой возврат отменятся, если перед формальными параметрами введено ключевое слово ByVal.
Например, Function F ( ByVal a, ByVal b). В этом случае a, b не возвращается на место c,d.
Примечание 2. Существует еще два способа вызова подпрограммы Function, в которых возвращаемое значение F теряется:
1. Отдельным оператором: Call F(c,d)
2. Отдельным именем и фактическими параметрами без скобок: F c,d
Пример 17.2. При заданных a,b,c c оставить программную единицу для вычисления y= max(a,b) + max(a+b, c). Значение max определить в подпрограмме Function,которая расположена ниже:
Function max(n As Single, m As Single) As Single ‘Заголовок подпрограммы
If n < m Then max = m Else max = n
End Function ‘ Конец подпрограммы
Основная программа:
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
Dim c As Single
Dim y As Single
a = Val(InputBox(" Введите а "))
b = Val(InputBox(" Введите b "))
c = Val(InputBox(" Введите c "))
y = max(a, b) + max(a + b, c) ' 2 обращения к подпрограмме с именем max
MsgBox " y=" & y
End Sub
Во избежания ошибок в основной программе переменные описывать отдельными операторами Dim
Глава 18. Решение оптимизационных задач