Рекурсия – это такой способ организации вычислительного процесса, при котором подпрограмма вызывает на выполнение саму себя.
Рассмотрим классический пример – вычисление факториала. Программа получает от компонента Edit1 целое число N и выводит в компонент Label1 значение N!, которое вычисляется с помощью рекурсивной функции Factorial:
Procedure Form2.Button1Click(Sender:TObject);
Function Factorial(N:Word):real;
Begin
If N<=0 then Factorial:=1
Else Factorial:=N*Factorial(N-1)
End;
Var N:integer;
Begin
N:=StrToInt(Edit1.Text);
Label1.Caption:=FloatToStr(Factorial(N));
End;
При выполнении правильно организованной рекурсивной подпрограммы осуществляется многократный переход от некоторого текущего уровня организации алгоритма к нижнему уровню последовательно до тех пор, пока не будет получено решение поставленной задачи. В примере решение при N<=0 используется для остановки рекурсии.
3. Понятие модуля, его структура.
Модуль – это автономно компилируемая программная единица. В отличие от программы, модуль не может быть запущен на выполнение. Модуль содержит элементы (переменные, подпрограммы), которые можно использовать в программе или других модулях. Чтобы можно было использовать средства модуля, его необходимо подключить, указав имя этого модуля в разделе Usesпрограммы.