Записывается NIL и означает, что переменная типа указатель не указывает ни на что. Возвращаясь к процедурным типам, скажем, что значение NIL можно присваивать и переменным такого типа (так как, по сути, они являются указателями и содержат адреса соответствующих процедур и функций). В данном случае это будет означать, что переменная не указывает ни на какую процедуру или функцию. Чтобы определить адрес процедуры или функции, на которую указывает переменная процедурного типа (например, для сравнения с NIL), нужно использовать оператор взятия адреса @.
Пример (продолжение примера из параграфа 5.3)
PROCEDURE Test(f,G:Func); { G – первообразная f }
BEGIN
Writeln('Приближенное значение интеграла: ',
Integr(f,1,5,1000));
IF @G<>NIL THEN
Writeln('Точное значение интеграла: ',
G(5)-G(1));
END;
FUNCTION G1(x:Real):Real;
BEGIN G1:=Sqr(x)/4-Cos(x) END;
{ Первообразная функции }
FUNCTION f2(x:Real):Real;
BEGIN f2:=Sin(x)/x END;
{ Интеграл – не берущийся }
∙ ∙ ∙
Test(f1,G1); { Напечатаются приближенное
и точное значения }
Test(f2,NIL); { Напечатается только
приближенное значение }