Рекуррентные выражения рекурсия прямая и косвенная
Обновлено: 21.11.2024
Название работы: Понятие рекурсии. Прямая и косвенная рекурсия
Предметная область: Информатика, кибернетика и программирование
Описание: Рекурсия это такой способ организации программы когда процедура или функция в ходе выполнения составляющих ее операторов обращается сама к себе. Примером программы с использованием рекурсии может быть программа вычисления факториала числа. Программы которые используют рекурсивные процедуры отличаются простотой наглядностью и компактностью текста. Максимальное число рекурсивных вызовов процедуры без возвратов которое происходит во время выполнения программы называется глубиной рекурсии.
Дата добавления: 2013-09-21
Размер файла: 23.5 KB
Работу скачали: 34 чел.
Понятие рекурсии. Прямая и косвенная рекурсия .
Примером программы с использованием рекурсии может быть программа вычисления факториала числа. Факториал может быть определен рекурсивно:
n!= ( n -1)!* n , где n = 1, 2, 3,…
Пример. Программа, которая запрашивает ввод числа и затем выводит на экран значение факториала от него.
Function fakt (n: integer):longint;
If n=1 then fakt :=1
Else fakt := fakt (n-1) *n;
Программы, которые используют рекурсивные процедуры отличаются простотой, наглядностью и компактностью текста. Но при этом уступают нерекурсивным по быстродействию и потребляемой памяти.
Максимальное число рекурсивных вызовов процедуры без возвратов, которое происходит во время выполнения программы называется глубиной рекурсии.
При организации рекурсивной процедуры следует выполнять рекурсивный вызов по условию, которое на каком-то уровне рекурсии станет ложным.
Рекурсия может быть прямой , когда функция вызывает сама себя (А А), и косвенной , когда функция А вызывает функцию В, которая в свою очередь вызывает функцию А (А В А).
При каждом вызове любой подпрограммы происходит помещение в системный стек данных этой программы, а именно: точки возврата, значений формальных параметров и локальных констант и переменных, то глубина рекурсии не может быть бесконечной, поскольку в конце концов этот системный стек переполнится.
Читайте также: