Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSamanta Scotti Modificato 11 anni fa
1
La ricorsione Simulazione
2
Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n);
3
La funzione ricorsiva fatt int fatt( int n) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt);
4
Esecuzione del Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n); visualizzazione prompt
5
Esecuzione del Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n); lettura dato = 4
6
Esecuzione del Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n); test validità
7
Esecuzione del Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n); chiama fatt(4)
8
Istanza n.1 della funzione fatt int fatt( int n) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Fatt (n=4)
9
Istanza n.1 della funzione fatt int fatt( int n) (n=4) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); test non verificato
10
Istanza n.1 della funzione fatt int fatt( int n) (n=4) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Chiama fatt(3)
11
Istanza n.2 della funzione fatt int fatt( int n) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); fatt(n=3)
12
Istanza n.2 della funzione fatt int fatt( int n) (n=3) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Test non verificato
13
Istanza n.2 della funzione fatt int fatt( int n) (n=3) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Chiama fatt(2)
14
Istanza n.3 della funzione fatt int fatt( int n) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); fatt(n=2)
15
Istanza n.3 della funzione fatt int fatt( int n) (n=2) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Test non verificato
16
Istanza n.3 della funzione fatt int fatt( int n) (n=2) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Chiama fatt(1)
17
Istanza n.4 della funzione fatt int fatt( int n) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); fatt(n=1)
18
Istanza n.4 della funzione fatt int fatt( int n) (n=1) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Test non verificato
19
Istanza n.4 della funzione fatt int fatt( int n) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Chiama fatt(0)
20
Istanza n.5 della funzione fatt int fatt( int n) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); fatt(n=0)
21
Istanza n.5 della funzione fatt int fatt( int n) (n=0) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Test verificato
22
Istanza n.5 della funzione fatt int fatt( int n) (n=0) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); n_fatt = 1
23
Istanza n.5 della funzione fatt int fatt( int n) (n=0) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Viene restituito n_fatt = 1
24
Istanza n.5 della funzione fatt int fatt( int n) (n=0) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Con lesecuzione del return, listanza attuale scompare
25
Istanza n.4 della funzione fatt int fatt( int n) (n=1) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); n_fatt = 1 1 = 1
26
Istanza n.4 della funzione fatt int fatt( int n) (n=1) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Viene restituito n_fatt = 1
27
Istanza n.3 della funzione fatt int fatt( int n) (n=2) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); n_fatt = 2 1 = 2
28
Istanza n.3 della funzione fatt int fatt( int n) (n=2) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Viene restituito n_fatt = 2
29
Istanza n.2 della funzione fatt int fatt( int n) (n=3) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); n_fatt = 3 2 = 6
30
Istanza n.2 della funzione fatt int fatt( int n) (n=3) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Viene restituito n_fatt = 6
31
Istanza n.1 della funzione fatt int fatt( int n) (n=4) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); n_fatt = 4 6 = 24
32
Istanza n.1 della funzione fatt int fatt( int n) (n=4) int n_fatt; if(n == 0) n_fatt = 1; else n_fatt = n fatt(n-1); return(n_fatt); Viene restituito n_fatt = 24
33
Esecuzione del Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n); valore = 24
34
Esecuzione del Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n); stampa: 4! = 24
35
Esecuzione del Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n: ); scanf(%d, &dato); if(n < MAX_N) valore = fatt(dato); printf(%d! = %d\n, n, valore); else printf(Errore: valore troppo grande\n); Fine programma
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.