function factorial(n: integer): integer;
begin
if n <>
1
then factorials n * factorial(n-1)
// функция вызывает сама себя
else factorial := 1; // рекурсивный процесс закончен
end;
Обратите внимание, что функция вызывает сама себя только в том случае, если значение полученного параметра k не равно единице. Если значение параметра равно единице, то функция сама себя не вызывает, а возвращает значение, и рекурсивный процесс завершается.
На Рисунок 12.1 приведен вид диалогового окна программы, которая для вычисления факториала числа использует рекурсивную функцию factorial. Текст программы приведен в листинге 12.2.