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