3° Anno TEORIA 7. Metodologie di progettazione e programmazione | Page 25

6 . Metodologia top-down e sottoprogrammi Versione 5.0 – Aprile 2023
Ora si deve eseguire nuovamente la funzione per il valore num -1 ossia 4 e così via : avremo in sintesi nello stack il salvataggio delle seguenti informazioni :
push
push
push
push
push
1 °
2 °
3 °
4 °
pass .
pass .
pass .
pass .
5 ° pass .
6 ° passaggio Esecuzione dei calcoli pop
1
1
1
2
2
2
3
3
3
3
4
4
4
4
4
5
5
5
5
5
5
N . B . In realtà la sequenza delle chiamate alla funzione ricorsiva attivate dalla chiamata del programma chiamante è la seguente :
f � Fattoriale ( 5 ) 1 ° call ricorsiva f � 5 * Fattoriale ( 4 ) 2 ° call ricorsiva f � 5 * ( 4 * Fattoriale ( 3 ) ) 3 ° call ricorsiva f � 5 * ( 4 * ( 3 * Fattoriale ( 2 ) )) 4 ° call ricorsiva f � 5 * ( 4 * ( 3 * ( 2 * Fattoriale ( 1 ) ))) 5 ° call ricorsiva f � 5 * ( 4 * ( 3 * ( 2 * ( 1 * Fattoriale ( 0 ) )))) 6 ° call ricorsiva f � 5 * ( 4 * ( 3 * ( 2 * ( 1 * 1 ))))
Alla fine delle chiamate ricorsive viene seguito il calcolo al contrario ossia eseguendo i prodotti a partire da quello più interno risalendo verso quello più esterno ossia
1 * 1 = 1 1 * 2 = 2 2 * 3 = 6 6 * 4 = 24 24 * 5 = 120
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it )
Pag . 25