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
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
Pag . 23