Рекурсивные подпрограммы

Рубрика: Delphi с нуля

Иногда требуется, чтобы подпрограмма вызывала сама себя. Такой способ вызова называется рекурсией. Рекурсия полезна в случаях, когда основную задачу можно разбить на подзадачи, каждая из которых реализуется по алгоритму, совпадающему с основным.


Рассмотрим, например, вычисление факториала числа:

  1. function Fact(n: integer): integer;
  2. begin
  3. if n <= 0 then Fact := 1 else Fact := n * Fact(n-l);
  4. end;

Функция Fact () получает число n и вычисляет его факториал. При этом, если значение n меньше или равно нулю, то функция возвращает значение 1, в противном случае, уменьшив значение n на единицу, функция вызывает сама себя. Подобный рекурсивный вызов выполняется до тех пор, пока n не станет равным единице.

Функция Fact () и ее параметр имеют тип integer, что соответствует типу Longint х и позволяет вычислять факториал для достаточно небольших значений n (не более 31). Для увеличения диапазона значений можно использовать вещественные типы, например, Real.

Если Вам интересна эта запись, Вы можете следить за ее обсуждением, подписавшись на RSS 2.0 .

Оставить комментарий или два

*

pubg читы