7. Процедурные типы
В Паскале существует два процедурных
типа: тип-процедура и тип-функция.
Для объявления процедурного типа
используется заголовок процедуры или
функции без имени.
Пример:
type proc1 = procedure (a,b,c : integer; x:real);
proc2 = procedure (var a, b);
proc3 = procedure;
func1 = function : real;
func2 = function (n: integer) : boolean;
Можно описывать переменные этих типов,
например:
var p1,p2: proc1; f1,f2: func2;
Переменным процедурных типов можно
присваивать в качестве значений имена
соответствующих подпрограмм. При этом
нельзя использовать стандартные
процедуры и функции. После такого
присваивания имя переменной становится
синонимом имени подпрограммы.
Переменные процедурного типа можно
также передавать в подпрограммы в виде
параметров. Благодаря этому, имеется
возможность создания более гибких
вспомогательных алгоритмов.
12