Рекурсії
У мові Паскаль процедури і функції м.б. рекурсивными. Підпрограма називається рекурсивним, якщо вона викликає саму себе. Рекурсивних м.б. опис підпрограми або звернення до неї.
Так для обчислення подвійного інтеграла
можна використовувати рекурсивне звернення до функції Sint
Y:=Sint(Sint(F1,C2,D2,n2),C1,D1,n1).
Рассмотрим приклад на рекурсивне опис.
Приклад 14.4. Обчислити факторіал згенерованого випадковим чином числа в діапазоні 010
Текст програми
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
Побічні ефекти
Побічні ефекти - непередбачуване спотворення даних в підпрограмі. Найчастіше виявляються в процедурах та функції без параметрів, що працюють з локальними і глобальними змінними. Вдаватися до них необхідно у виняткових випадках.