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