REKURSIOON - Recursion
algoritmi suuruse n! leidmiseks:
IF n = 0 THEN Fakt := 1 IF n = 0 THEN Fakt := 1
a := n - 1 vôi Fakt := n * Fakt(n - 1)
b := Fakt(a)
Fakt := n * b
Neil algoritmidel on môte, kui loeme Fakt'i esinemist omistuse vasakul poolel täitmise
lôpetamiseks (ei pruugi tähendada algoritmi täielikku lôppu) ja paremal poolel (algo-
ritmis alla kriipsutatud) rekursiivse täitmise uuestialustamiseks.
Rekursiivne alamprogramm on rekursiivse algoritmi esitus konkreetses keeles, meil
Turbo Pascalis. Faktoriaalfunktsiooni vôime kirja panna väga lihtsana:
FUNCTION Fakt(N: Byte): Longint;
BEGIN
IF N = 0 THEN
BEGIN Fakt := 1; Exit; END;
Fakt := N * Fakt(N - 1);
END; {Fakt}
Järgneva analüüsi huvides on siiski otstarbekas kirjutada see funktsioon vähem
kompaktsena.
Näide. Esitame n