Процедуры и функции
Рекурсивные процедуры и функции
Алгоритм называется рекурсивным, если в качестве вспомогательного алгоритма (подпрограммы) он использует самого себя.
В теле подпрограммы доступны все объекты, описанные в программе, в том числе и имя самой подпрограммы. Процедуры и функции, использующие вызовы самих себя, называют рекурсивными (прямая рекурсия). Пример 4. Рассмотрим пример рекурсивной функции вычисления xn, где n- натуральное число.
Воспользуемся известным фактором:
function deg(x, n: integer): longint; begin if n = 0 then deg:=1 else deg:=deg(x, n-1)*x; end;
Рекурсивность функции или процедуры – это не свойство, а способ задания. Любую рекурсивную подпрограмму можно задать не рекурсивно, а с помощью оператора цикла. Рекурсия делает программу лаконичнее, короче в описании. Однако, программа, использующая рекурсию, работает медленнее. Выбирать рекурсию или не использовать ее зависит от того, желаете вы сделать программу «короче» или «быстрее».
В языке Паскаль допускается и косвенная рекурсия, когда, например, процедура А вызывает процедуру В, а та, в свою очередь, - процедуру А. В этом случае, вместо тела опережающей процедуры пишется директива forward, затем следует описание второй процедуры, а после ее завершения следует полное описание первой процедуры.
Назад
Далее