Αναδρομικές τεχνικές
- Διαδικασίες, συναρτήσεις και δομές που ορίζονται
αναδρομικά (recursively)
μπορούν εύκολα να ανιμετωπιστούν με τη χρήση αναδρομικών τεχνικών
προγραμματισμού.
Παράδειγμα
program recursive;
(* Αναδρομικός ορισμός δεδομένων *)
type
link = ^integer_list;
integer_list =
record
value : integer;
next : link;
end;
(* Αναδρομική διαδικασία *)
procedure russian_doll(size : integer);
var i : integer;
begin
write('[');
for i := 1 to size do
write('-');
writeln(']');
if size > 1 then
russian_doll(size - 1);
end (* russina_doll *) ;
(* Αναδρομική συνάρτηση *)
function factorial(n : integer) : integer;
begin
if n = 0 then
factorial := 1
else
factorial := n * factorial(n - 1)
end (* factorial *);
begin
writeln(factorial(5));
russian_doll(10);
end.
Αποτελέσματα
120
[----------]
[---------]
[--------]
[-------]
[------]
[-----]
[----]
[---]
[--]
[-]