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

6 . Metodologia top-down e sottoprogrammi Versione 5.0 – Aprile 2023
La chiamata ricorsiva precedente
…. s � Somma ( 5 )
….. non verrà mai risolta perché conduce alla seguente successione di chiamate ricorsive infinite
s� 5 + ( 5 + Somma ( 5 )) s� 5 + ( 5 +( 5 + Somma ( 5 ))) s� 5 + ( 5 +( 5 + ( 5 + Somma ( 5 )))) s� 5 + ( 5 +( 5 + ( 5 + ( 5 )))) ……………………..
Ricorsione infinita : manca la clausola di terminazione FUNZIONE Somma ( VAL n : INT ) : INT s : INT

INIZIO s � n + Somma ( n-1 ) RITORNA ( s ) FINE

La chiamata ricorsiva precedente
…. s � Somma ( 5 )
….. non verrà mai risolta perché conduce alla seguente successione di chiamate ricorsive infinite
s� 5 + ( 4 + Somma ( 3 )) s� 5 + ( 4 +( 3 + Somma ( 2 ))) s� 5 + ( 4 +( 3 + ( 2 + Somma ( 1 )))) s� 5 + ( 4 +( 3 + ( 2 + ( 1 + Somma ( -1 ))))………
( B ) Consideriamo ad esempio le seguenti funzioni cooperanti che permettono di restituire 0 se il numero è pari , 1 se invece è dispari
FUNZIONE Ping ( VAL n : INT ) : INT esito : INT INIZIO
SE ( n < 0 )

ALLORA esito � 1 ALTRIMENTI esito � Pong ( n-1 ) FINE SE

RITORNA ( esito )

FINE

FUNZIONE Pong ( VAL n : INT ) : INT esito : INT INIZIO
SE ( n < 0 )

ALLORA esito � 0 ALTRIMENTI esito � Ping ( n-1 ) FINE SE

RITORNA ( esito )

FINE

Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it )
Pag . 31