Создание рекурсивных процедур |
Автор Александр Бельбаков | |
22.01.2002 г. | |
В кратце что такое рекурсивная процедура и несколько советов по её созданию.
Процедура, которая вызывает себя сама и называется рекурсивной. Для каждой процедуры отведено определённое место в памяти под переменные. Каждый раз, как она вызывает себя, она занимает всё больше и больше памяти. Рекурсивная процедура, которая продолжительно вызывает себя, ведёт к появлению ошибки, например: Function RunOut(Maximum) RunOut = RunOut(Maximum) End Function Ошибки могут быть менее очевидны, если процедуры вызывают друг друга непостоянно одинаково или когда при некоторых условиях рекурсия не будет встречена. А вот пример правильной процедуры, которая использует рекурсивную функцию для вычисления факториала: Function Factorial (N) If N <= 1 Then Factorial = 1 ' (N = 0) Else Factorial = Factorial(N - 1) * N End If End Function Ещё один пример использования рекурсивной функции можете посмотреть в статье "Рекурсивный поиск файлов и папок". Несколько советов по созданию рекурсивных процедур: * После создания процедуры протестируйте её, чтобы узнать не вызывает ли она сама себя очень много раз, перегружая память; * Исключите из процедуры ненужные переменные; * Используйте типы данных, отличные от Variant. |