Параметрами подпрограмм могут быть переменные не только простых, но и сложных типов, таких как массивы, записи, множества. Рассмотрим для иллюстрации пример с массивами.
Задача: Имеется два массива, по два числа в каждом. Напечатать сумму элементов каждого массива. Использовать функцию sum, единственным параметром которой является имя суммируемого массива.
Программа:
TYPE vector = array [1..2] of Integer;
VAR a,b : vector;
FUNCTION sum (c:vector):Integer;
BEGIN sum:=c[1]+c[2] END;
BEGIN
a[1]:=10; a[2]:=20;
b[1]:=40; b[2]:=50;
WriteLn (sum(a),' ',sum(b));
END.
Начиная вычислять функцию sum(a), Паскаль подставляет в ячейки для элементов массива c значения элементов массива a. Начиная же вычислять функцию sum(b), Паскаль подставляет в ячейки для элементов массива c значения элементов массива b.
В заголовке функции неправильно было бы писать
function sum (c: array [1..2] of Integer):Integer.
Необходимо было сначала определить тип массива в разделе TYPE, а затем использовать это определение и в описании a и b, и в заголовке функции. Таково требование синтаксиса Паскаля.
Задание 122. В школе два класса. В каждом - 5 учеников. Каждый ученик получил отметку на экзамене по физике. Определить, какой из двух классов учится ровнее (будем считать, что ровнее учится тот класс, в котором разница между самой высокой и самой низкой отметкой меньше).
Указание: Создать функции min(c:vector), max(c:vector) и raznitsa(c:vector).
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.