E' una funzione che al suo interno ricorre a se stessa
l'esempio più banale è una moltiplicazione che viene fatta tramite la somma:
![]() |
voglio moltiplicare 6 volte 4 (fattore fissato) |
![]() |
moltiplicare 6 volte 4 significa aggiungere 4 a 5 volte 4, ma 5 volte 4 significa aggiungere 4 a 4 volte 4 ... finché significa aggiungere 4 a 1 volta 4 che significa aggiungere 4 a 0 volte 4 che fa 0. |
![]() |
chiamo la funzione mol4per |
sarà definita così
function mol4per(n:integer):integer;
begin
if n=0 then mol4per:=0
else mol4per:=4+mol4per(n-1);
end;
prova e vedi se funziona
domanda: in che cosa consiste il procedimento ricorsivo?
Esercizio:prova a risolvere il calcolo della potenza per ricorsione! (suggerimento 2n=2n-1*2)