SlideShare a Scribd company logo
1 of 8
Funzioni
Le funzioni sono così definite
Tipo nome (parametri)
{ … istruzioni ...
(cioè il codice della funzione)
}
Tipo : il valore di ritorno della funzione
Nome : il nome della funzione
Parametri : lista dei parametri passati
dal programma chiamante
Dichiarazione di una
funzione
La dichiarazione di una funzione (detta
anche prototipo) é un'unica istruzione,
salvo il fatto che deve terminare con un
punto e virgola. Esempio :
int CalcolaArea ( int lato, int base);
Chiamata della funzione
In caso chiamata la funzione nel programma, il
compilatore si occuperà di controllare che il tipo della
funzione sia ammissibile.
funzione (int num) { ..... num = num+1; .... }
int b = 0 ...... funzione(b); .....
In questo esempio dato i tipi coincidono.
il programma, prima di chiamare funzione, copia il
valore della propria variabile b nell'argomento a, che
diventa una variabile locale nell'ambito di funzione;
per cui a "muore" appena il controllo ritorna al
programma e il valore di b resta invariato, qualunque
modifica abbia subito a durante l'esecuzione
di funzione.
Funzioni con overload
Diversamente da C, il linguaggio C++
permette che più funzioni abbiano lo
stesso nome; queste funzioni sono
definite come overload.
Il compilatore distingue le chiamate di
funzioni con lo stesso nome a seconda
della lista di parametri.
Passaggi di parametri
Riferimento
sono variabili introdotte dall'operatore
di dichiarazione : &
Occupano la stessa memoria delle
variabili a cui si riferiscono.
esempio: int a = &b;
o Qualsiasi modifica fatta ad a si troverà
apportata anche alla variabile b
Passaggio per riferimento
In C++ posso passare come argomento
di una funzione un parametro per
riferimento ( indirizzo ).
In questo caso, non
viene creata una copia della variabile,
come avviene per valore, ma la variabile
di riferimento della sua corrispondente
nel programma chiamante.
Passaggio per valore
Nel caso si passi ad una funzione dei
parametri come per valore, verrà creata
una copia della variabile
Al momento del richiamo della funzione
il valore dei parametri attuali sono
ricopiati nello spazio di memoria allocato
ai parametri formali.
Al termine della funzione l'ambiente
locale viene eliminato

More Related Content

What's hot

Scambio di variabili con puntatori
Scambio di variabili con puntatoriScambio di variabili con puntatori
Scambio di variabili con puntatoriRiccardo Monterisi
 
Analizzatori di programmi in C
Analizzatori di programmi in CAnalizzatori di programmi in C
Analizzatori di programmi in CBoymix81
 
Scambio di variabili con le reference
Scambio di variabili con le referenceScambio di variabili con le reference
Scambio di variabili con le referenceRiccardo Monterisi
 
Web advanced-01-asincrono
Web advanced-01-asincronoWeb advanced-01-asincrono
Web advanced-01-asincronoStudiabo
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStudiabo
 
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0I.S.I.S. "Antonio Serra" - Napoli
 

What's hot (7)

Scambio di variabili con puntatori
Scambio di variabili con puntatoriScambio di variabili con puntatori
Scambio di variabili con puntatori
 
Analizzatori di programmi in C
Analizzatori di programmi in CAnalizzatori di programmi in C
Analizzatori di programmi in C
 
Scambio di variabili con le reference
Scambio di variabili con le referenceScambio di variabili con le reference
Scambio di variabili con le reference
 
Web advanced-01-asincrono
Web advanced-01-asincronoWeb advanced-01-asincrono
Web advanced-01-asincrono
 
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
 
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
 

Similar to Ripasso funzioni

Le funzioni in javascript
Le funzioni in javascriptLe funzioni in javascript
Le funzioni in javascriptPaoloCaramanica
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)STELITANO
 
Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)STELITANO
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimentiMajong DevJfu
 
Capitolo 7 elementi di programmazione c-c++
Capitolo 7   elementi di programmazione  c-c++Capitolo 7   elementi di programmazione  c-c++
Capitolo 7 elementi di programmazione c-c++Giovanni Della Lunga
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#Marco Parenzan
 
Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)DotNetMarche
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio cughetta
 
Py a3 python-metaprogramming
Py a3 python-metaprogrammingPy a3 python-metaprogramming
Py a3 python-metaprogrammingMajong DevJfu
 
Javascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerJavascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerMatteo Magni
 

Similar to Ripasso funzioni (20)

La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Le funzioni in javascript
Le funzioni in javascriptLe funzioni in javascript
Le funzioni in javascript
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)
 
Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)
 
I sotto programmi in Python 3
I sotto programmi in Python 3I sotto programmi in Python 3
I sotto programmi in Python 3
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
 
07 1 funzioni
07 1 funzioni07 1 funzioni
07 1 funzioni
 
Capitolo 7 elementi di programmazione c-c++
Capitolo 7   elementi di programmazione  c-c++Capitolo 7   elementi di programmazione  c-c++
Capitolo 7 elementi di programmazione c-c++
 
Informatica di base
Informatica di baseInformatica di base
Informatica di base
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#
 
05 1 intro-struttura
05 1 intro-struttura05 1 intro-struttura
05 1 intro-struttura
 
PHP
PHPPHP
PHP
 
Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
 
Scomposizione di programmi e approccio in visual basic
Scomposizione di programmi e approccio in visual basicScomposizione di programmi e approccio in visual basic
Scomposizione di programmi e approccio in visual basic
 
Py a3 python-metaprogramming
Py a3 python-metaprogrammingPy a3 python-metaprogramming
Py a3 python-metaprogramming
 
Javascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerJavascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesigner
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 

Recently uploaded

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
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
 
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
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
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
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
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
 

Recently uploaded (8)

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
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.
 
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
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
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
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
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
 

Ripasso funzioni

  • 1.
  • 2. Funzioni Le funzioni sono così definite Tipo nome (parametri) { … istruzioni ... (cioè il codice della funzione) } Tipo : il valore di ritorno della funzione Nome : il nome della funzione Parametri : lista dei parametri passati dal programma chiamante
  • 3. Dichiarazione di una funzione La dichiarazione di una funzione (detta anche prototipo) é un'unica istruzione, salvo il fatto che deve terminare con un punto e virgola. Esempio : int CalcolaArea ( int lato, int base);
  • 4. Chiamata della funzione In caso chiamata la funzione nel programma, il compilatore si occuperà di controllare che il tipo della funzione sia ammissibile. funzione (int num) { ..... num = num+1; .... } int b = 0 ...... funzione(b); ..... In questo esempio dato i tipi coincidono. il programma, prima di chiamare funzione, copia il valore della propria variabile b nell'argomento a, che diventa una variabile locale nell'ambito di funzione; per cui a "muore" appena il controllo ritorna al programma e il valore di b resta invariato, qualunque modifica abbia subito a durante l'esecuzione di funzione.
  • 5. Funzioni con overload Diversamente da C, il linguaggio C++ permette che più funzioni abbiano lo stesso nome; queste funzioni sono definite come overload. Il compilatore distingue le chiamate di funzioni con lo stesso nome a seconda della lista di parametri.
  • 6. Passaggi di parametri Riferimento sono variabili introdotte dall'operatore di dichiarazione : & Occupano la stessa memoria delle variabili a cui si riferiscono. esempio: int a = &b; o Qualsiasi modifica fatta ad a si troverà apportata anche alla variabile b
  • 7. Passaggio per riferimento In C++ posso passare come argomento di una funzione un parametro per riferimento ( indirizzo ). In questo caso, non viene creata una copia della variabile, come avviene per valore, ma la variabile di riferimento della sua corrispondente nel programma chiamante.
  • 8. Passaggio per valore Nel caso si passi ad una funzione dei parametri come per valore, verrà creata una copia della variabile Al momento del richiamo della funzione il valore dei parametri attuali sono ricopiati nello spazio di memoria allocato ai parametri formali. Al termine della funzione l'ambiente locale viene eliminato