Все для создания и продвижения сайтов

Верстка, программирование, SEO

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

Довольно давно, в программировании появился термин "рекурсия", что означает вызов функции (или же процедуры) непосредственно из самой себя. Есть простая (непосредственная) рекурсия или рекурсия, которая работает через другие процедуры и функции (такой вид называется косвенной, сложной рекурсией).

В повседневной и научной жизни мы часто сталкиваемся с рекурсией. Например:

  • треугольник Серпинского;
  • эффект Дросте;
  • вычисление факториала.

Самый простой способ понаблюдать за рекурсией – это навести вэб-камеру на монитор вашего персонального компьютера, конечно же её включив.

К вопросу о том, стоит ли применять рекурсивные функции или нет, многие программисты относятся по-разному. Эта тема остается до сих пор открытой для обсуждения: одни полагают, что рекурсивная форма выглядит нагляднее и структурно проще, в частности, если сам по себе программируемый алгоритм обладает свойством рекурсии. Проще говоря, рекурсию можно представить, если вы поставите два зеркала друг напротив друга и посмотрите в них. Приведем пример рекурсивной процедуры:

procedure Rec1(f: integer);

begin// объявление начала процедуры

if (f>0) then //задается условие

Rec1(f-1);

writeln(f);

end;// конец процедуры

Пример рекурсии

Кроме того, в функциональных языках в чистом виде (к ним относятся Пролог, Haskell) невозможно задать цикл синтаксически, поэтому рекурсия является единственным доступным средством задания повторяющихся вычислений. Но иногда, следует избегать рекурсивных конструкций в программных модулях, потому что они могут стать причиной излишне глубокой рекурсии. В языках С++/С# функции имеют возможность вызова самих себя.

Дадим определение рекурсивной функции- это функция, в теле которой оператор вызывает функцию, которую содержит данный оператор.

Самым распространенным примером рекурсии служит известная функция вычисления факториала factоr(). Факториал некоторого числа это произведение чисел от 1 до этого числа.

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.