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

6 . Metodologia top-down e sottoprogrammi Versione 5.0 – Aprile 2023
Vediamo in dettaglio cosa succede quando il programma chiamante invocherà la funzione Fibonacci attraverso una chiamata del tipo
…. fib � Fibonacci ( 5 )
….
Il valore del parametro attuale ( costante intera ) trasferito al parametro formale num è 5 .
Attivata la funzione viene eseguita l ’ istruzione
1 ° CALL fib� Fibonacci ( 4 ) + Fibonacci ( 3 )
che non può essere eseguita e risolta direttamente in quanto contiene due chiamate allo stesso sottoprogramma ( procedura ricorsiva multipla ) che conduce alla seguente successione
2 ° CALL fib� ( Fibonacci ( 3 ) + Fibonacci ( 2 )) + Fibonacci ( 3 ) 3 ° CALL fib� ( ( Fibonacci ( 2 ) + Fibonacci ( 1 ) ) + Fibonacci ( 2 ) + Fibonacci ( 3 ) 4 ° CALL fib� ( ( Fibonacci ( 1 ) + Fibonacci ( 0 ) ) + Fibonacci ( 1 ) + Fibonacci ( 2 ) + Fibonacci ( 3 ) 5 ° CALL fib� 1 + ( Fibonacci ( 0 ) ) + Fibonacci ( 1 ) + Fibonacci ( 2 ) + Fibonacci ( 3 ) 6 ° CALL fib� 1 + 1 + ( Fibonacci ( 1 )) + Fibonacci ( 2 ) + Fibonacci ( 3 ) 7 ° CALL fib� 1 + 1 + 1 + Fibonacci ( 2 ) + Fibonacci ( 3 ) 8 ° CALL fib� 1 + 1 + 1 + ( ( Fibonacci ( 1 ) + Fibonacci ( 0 ) ) + Fibonacci ( 3 ) 9 ° CALL fib� 1 + 1 + 1 + 1 + ( Fibonacci ( 0 ) ) + Fibonacci ( 3 ) 10 ° CALL fib� 1 + 1 + 1 + 1 + 1 + Fibonacci ( 3 ) 11 ° CALL fib� 1 + 1 + 1 + 1 + 1 + ( ( Fibonacci ( 2 ) + Fibonacci ( 1 ) ) 12 ° CALL fib� 1 + 1 + 1 + 1 + 1 + ( ( Fibonacci ( 1 ) + Fibonacci ( 0 )) + Fibonacci ( 1 ) 13 ° CALL fib� 1 + 1 + 1 + 1 + 1 + 1 + ( Fibonacci ( 0 )) + Fibonacci ( 1 ) 14 ° CALL fib� 1 + 1 + 1 + 1 + 1 + 1 + 1 + Fibonacci ( 1 ) 15 ° CALL fib� 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it )
Pag . 28