3° Anno TEORIA 7.1 - Slide Procedure e Funzioni | Page 137
Esempio: Supponiamo di avere una chiamata ricorsiva del tipo: fatt � Fattoriale( 5) Ecco cosa accade nella PILA delle ATTIVAZIONI:
1 ° call ricorsiva fatt � Fattoriale( 5) 2 ° call ricorsiva fatt � 5 * Fattoriale( 4) 3 ° call ricorsiva fatt � 5 *( 4 * Fattoriale( 3)) 4 ° call ricorsiva fatt � 5 *( 4 *( 3 * Fattoriale( 2))) 5 ° call ricorsiva fatt � 5 *( 4 *( 3 *( 2 * Fattoriale( 1)))) 6 ° call ricorsiva fatt � 5 *( 4 *( 3 *( 2 *( 1 * Fattoriale( 0))))) calcolo fatt � 5 *( 4 *( 3 *( 2 *( 1 * 1))))
STOP RICORSIONE
A2. Esempio di RICORSIONE DIRETTA: il fattoriale di un numero Schematizzazione della chiamata ricorsiva Fattoriale( 5)
Esempio: Supponiamo di avere una chiamata ricorsiva del tipo: fatt � Fattoriale( 5) Ecco cosa accade nella PILA delle ATTIVAZIONI:
1 ° call ricorsiva fatt � Fattoriale( 5) 2 ° call ricorsiva fatt � 5 * Fattoriale( 4) 3 ° call ricorsiva fatt � 5 *( 4 * Fattoriale( 3)) 4 ° call ricorsiva fatt � 5 *( 4 *( 3 * Fattoriale( 2))) 5 ° call ricorsiva fatt � 5 *( 4 *( 3 *( 2 * Fattoriale( 1)))) 6 ° call ricorsiva fatt � 5 *( 4 *( 3 *( 2 *( 1 * Fattoriale( 0))))) calcolo fatt � 5 *( 4 *( 3 *( 2 *( 1 * 1))))
STOP RICORSIONE
Push
5
Push
4 5
Push
3 4 5
Push
Push
2 3 4 5
1 1 2 3 4 5
Push
1 2 3 4 5