SlideShare a Scribd company logo
1 of 3
FUNZIONI RICORSIVE 
 Le funzioni ricorsive sono quelle che dentro al codice hanno un’invocazione a se 
stesse, questa funzione ha un istruzione di controllo che interrompe la successione 
di chiamate quando si verificano certe condizioni, lavora su un insieme ampio di 
valori, risultando più comprensibile e più facile della funzione iterativa, l’esempio 
più noto di questo tipo di funzione è il calcolo del fattoriale di un numero intero, 
ad esempio: 
int fact(int n) { 
if ( n <= 1 ) //istruzione di controllo 
return 1; 
return n * fact(n-1); } 
Per ottenere la soluzione, basta moltiplicare tra di loro i risultati parziali così ottenuti 
procedendo a ritroso.
FUNZIONI RICORSIVE 2 
 Perchè nelle funzioni ricorsive si procede a ritroso? 
 Perchè le funzioni ricorsive usano lo stack; per ogni funzione c’è una zona di 
memoria in cui si trovano le variabili locali della funzione, la zona di memoria del 
main si trova nel punto più basso dello stack, ogni volta che si richiama una 
funzione viene creata una zona di memoria sopra a questa. 
MAIN 
Chiamata 1 
Chiamata 2 
Chiamata 3 
STACK
FUNZIONI RICORSIVE 3 
 Dopo aver riempito lo stack ed aver finito l’esecuzione, il 
programma svuota lo stack e comincia a fare i calcoli con le 
variabili che sono state salvate nelle zone di memoria, nel caso 
della funzione fattoriale, farà la moltiplicazione di tutte le variabili.

More Related Content

More from Lorena Rojas

More from Lorena Rojas (6)

FLAT DESIGN
FLAT DESIGNFLAT DESIGN
FLAT DESIGN
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggetti
 
Strutture dinamiche e astratte
Strutture dinamiche e astratteStrutture dinamiche e astratte
Strutture dinamiche e astratte
 
Funzioni
FunzioniFunzioni
Funzioni
 
Puntatori C++
Puntatori C++Puntatori C++
Puntatori C++
 
Creazione blog
Creazione blogCreazione blog
Creazione blog
 

Recently uploaded

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 

Recently uploaded (9)

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 

Funzioni ricorsive

  • 1. FUNZIONI RICORSIVE  Le funzioni ricorsive sono quelle che dentro al codice hanno un’invocazione a se stesse, questa funzione ha un istruzione di controllo che interrompe la successione di chiamate quando si verificano certe condizioni, lavora su un insieme ampio di valori, risultando più comprensibile e più facile della funzione iterativa, l’esempio più noto di questo tipo di funzione è il calcolo del fattoriale di un numero intero, ad esempio: int fact(int n) { if ( n <= 1 ) //istruzione di controllo return 1; return n * fact(n-1); } Per ottenere la soluzione, basta moltiplicare tra di loro i risultati parziali così ottenuti procedendo a ritroso.
  • 2. FUNZIONI RICORSIVE 2  Perchè nelle funzioni ricorsive si procede a ritroso?  Perchè le funzioni ricorsive usano lo stack; per ogni funzione c’è una zona di memoria in cui si trovano le variabili locali della funzione, la zona di memoria del main si trova nel punto più basso dello stack, ogni volta che si richiama una funzione viene creata una zona di memoria sopra a questa. MAIN Chiamata 1 Chiamata 2 Chiamata 3 STACK
  • 3. FUNZIONI RICORSIVE 3  Dopo aver riempito lo stack ed aver finito l’esecuzione, il programma svuota lo stack e comincia a fare i calcoli con le variabili che sono state salvate nelle zone di memoria, nel caso della funzione fattoriale, farà la moltiplicazione di tutte le variabili.