5. Директивы подпрограмм
Директивы дают дополнительную информацию
транслятору о размещении подпрограмм.
6. Рекурсивные процедуры и функции
Язык Паскаль допускает, чтобы подпрограмма
вызывала саму себя (рекурсивное
обращение).
Эта возможность связана с тем, что при
каждом новом обращении к подпрограмме
параметры, которые она использует,
заносятся в стек (это
линейный список), причем параметры
предыдущего обращения также сохраняются.
В ряде случаев (обычно для рекурсивных
алгоритмов) рекурсивное оформление
подпрограммы может быть более компактным
и эффективным, но не следует забывать
об опасности переполнения стека.
Пример. Вариант функции,
рекурсивно вычисляющей факториал числа
N.
functicon
Factorial(N: Byte): Longint;
begin
if N in
[0..1]
then Factorial:= 1
else
Factorial:=N*Factorial(N - 1)
end;