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

6 . Metodologia top-down e sottoprogrammi Versione 5.0 – Aprile 2023
Ed ipotizziamo di implementare la pseudocodifica della seguente funzione RICORSIVA DIRETTA di nome Potenza
FUNZIONE Potenza ( VAL base : INT , VAL esp : INT ) : INT pot : INT

INIZIO

SE ( esp = 0 )

ALLORA pot � 1 ALTRIMENTI pot � base * Potenza ( base , ( esp -1)) /* Chiamata ricorsiva DIRETTA */ FINE SE

RITORNA ( pot ) FINE Secondo esempio : FATTORIALE DI UN NUMERO In matematica sono possibili due definizioni generali di fattoriale di un numero n intero positivo .
- definizione non ricorsiva 0 ! = 1 se n = 0 n != n * ( n-1 ) * ( n-2 )* ….* 2 * 1 se n > 0
- definizione ricorsiva
0 ! = 1
se n = 0
n != n * ( n-1 )!
se n > 0
Anche questo problema è stato espresso in termini ricorsivi , in quanto risponde ai tre requisiti enunciati poco fa . Infatti :
1 . sappiamo che calcolare n ! dipende esclusivamente dal calcolo di ( n-1 )! ( scala gerarchica ); 2 . conosciamo la soluzione del caso particolare che 0 ! = 1 ( condizione di terminazione );
3 . abbiamo una relazione funzionale n ! = n * ( n-1 )! che lega il problema principale ( n !) ad un sottoproblema simile ma di complessità minore (( n-1 )!).
Ed ipotizziamo di implementare la pseudocodifica della seguente funzione RICORSIVA DIRETTA di nome Fattoriale
FUNZIONE Fattoriale ( VAL num : INT ) : INT fatt : INT

INIZIO

SE ( num = 0 )

ALLORA fatt � 1 ALTRIMENTI fatt � num * Fattoriale ( num -1) /* Chiamata ricorsiva DIRETTA */ FINE SE

RITORNA ( fatt )

FINE

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