В качестве параметров процедур и функций можно подставлять любые выражения подходящего типа. Например, вместо
y = perimetr (10 , 4)
можно было бы написать
a = 4 : y = perimetr (10 , a)
или
a = 3 : y = perimetr (10 , a+1).
Параметры процедур и функций можно объявлять, как имеющие самые разные типы, причем не только простые, но и сложные. Если вы не знаете, как правильно объявить тип параметра в заголовке функции или процедуры, можете объявить его как Variant. Рассмотрим для иллюстрации пример с массивами.
Задача: Имеется два массива, по два числа в каждом. Напечатать сумму элементов каждого массива. Использовать функцию sum, единственным параметром которой является суммируемый массив.
Программа:
Dim a(1 To 2) As Integer
Dim b(1 To 2) As Integer
Private Function sum(c As Variant) As Integer
sum = c(1) + c(2)
End Function
Private Sub Command1_Click()
a(1) = 10: a(2) = 20
b(1) = 40: b(2) = 50
Debug.Print sum(a), sum(b)
End Sub
Вычисляя функцию sum(a), Visual Basic работает с ячейками для элементов массива a, делая с ними все то, что операторы тела функции должны делать со значениями элементов массива c. Вычисляя же функцию sum(b), Visual Basic аналогично работает с ячейками для элементов массива b.
Задание 129. В школе два класса. В каждом - 5 учеников. Каждый ученик получил отметку на экзамене по физике. Определить, какой из двух классов учится ровнее (будем считать, что ровнее учится тот класс, в котором разница между самой высокой и самой низкой отметкой меньше).
Указание: Создать функции Минимум(c), Максимум(c) и Разница(c).