Рекурсии
В языке Паскаль процедуры и функции м.б. рекурсивными. Подпрограмма называется рекурсивной, если она вызывает саму себя. Рекурсивным м.б. описание подпрограммы либо обращение к ней.
Так для вычисления двойного интеграла
можно использовать рекурсивное обращения к функции Sint
Y:=Sint(Sint(F1,C2,D2,n2),C1,D1,n1).
Рассмотрим пример на рекурсивное описание.
Пример 14.4. Вычислить факториал сгенерированного случайным образом числа в диапазоне 0?10
Текст программы
Program recurs;
Uses crt;
Var F :longint;
num :integer;
ch :char;
Function Fact(n:integer):longint;
Begin
If n=1 then Fact:=1 else Fact:=n*Fact(n-1);
End;
Begin
clrscr;
Repeat
Randomize;
Writeln('Генерируем случайное число num');
num:=random(11);
Writeln('num=',num);
F:=Fact(num);
Writeln('F=',F);
ch:=ReadKey;
Until ch=#27;
Readln;
End.
Результат работы программы:
Генерируем случайное число num
num=6
F=720
Побочные эффекты
Побочные эффекты – непредусмотренное искажение данных в подпрограмме. Чаще всего проявляются в процедурах и функциях без параметров, работающих с локальными и глобальными переменными. Прибегать к ним необходимо в исключительных случаях.