Professional Documents
Culture Documents
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Sommario
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Outline
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Per definire un programma complesso necessario dividerlo in
parti separate: modularizzazioni.
Una funzione permette di definire una sorta di sottoprogramma
con:
parametri in ingresso;
parametri in uscita.
La scrittura di un programma in funzioni (astrazione
funzionale) consente di realizzare e riusare operazioni
complesse definendole come funzioni da invocare quando
necessario.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C (2)
Un programma C definito come un insieme di funzioni (una
obbligatoria, il main).
Una funzione prende in ingresso un insieme di argomenti e
ritorna un (unico) valore.
Vedremo di seguito:
Come si definiscono le funzioni (definizione di funzione);
Come si usano le funzioni (chiamata o attivazione di
funzione).
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Un primo esempio
Programma con una funzione square per calcolare il quadrato
di un numero.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Outline
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Dichiarazione di Funzioni
Come le variabili devono essere dichiarate prima di poter
essere usate, anche le funzioni necessitano di una
dichiarazione.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Esempi di dichiarazione
Prototipi:
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Tipo void
Esistono funzioni che non producono alcun effetto (es.
funzione di stampa)
Il linguaggio C mette a disposizione un tipo speciale void:
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Outline
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Definizione di Funzioni
La definizione di una funzione specifica cosa fa una funzione e
come lo fa: contiene la sequenza di istruzioni che dovr essere
eseguita per ottenere il valore risultato a partire dai dati in
ingresso (una sorta di sottoprogramma).
La definizione di una funzione consta di due parti fondamentali:
1
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Esempio di definizione
Vediamo un esempio semplice di definizone di funzione in C:
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Outline
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Attivazione di funzioni
Le funzioni vengono chiamate (attivate) allinterno di funzioni.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Semantica dellattivazione
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni ricorsive
Una funzione che, nel proprio blocco di codice, invoca (anche)
se stessa.
int fibonacci ( int i )
{
int ris ;
i f ( i == 0 )
r i s = 0;
e l s e i f ( i == 1 )
ris = 1 ;
else
r i s = f i b o n a c c i ( i 1) + f i b o n a c c i ( i 2) ;
return r i s ;
}
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Outline
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Ordine di dichiarazione
Ogni funzione deve essere stata dichiarata prima di essere
usata. E pratica comune specificare in questordine:
1
Dichiarazione di tutte le funzioni con esclusione del main;
2
Definizione del main;
3
Definizione di tutte le altre funzioni.
In questo modo ogni funzione stata dichiarata prima di essere
usata:
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Regole di visibilit
Ogni dichiarazione del linguaggio C ha un suo campo di
visibilit. Visibilit detta nel file:
Lidentificatore dichiarato allesterno di ogni funzione:
Lidentificatore sar noto in tutte le funzioni la cui
definizione successiva;
Lidentificatore detto identificatore globale.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Mascheramento
Il mascheramento si ha quando in un blocco si dichiara un
identificatore gi dichiarato fuori dal blocco ed in esso visibile.
La dichiarazione interna maschera quella esterna:
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Outline
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Record di attivazione
Ogni RDA contiene: a) le locazioni di memoria dei parametri
formali (se presenti), b) le locazioni di memoria per le variabili
locali (se presenti), c) lindirizzo di ritorno (indirizzo della
prossima istruzione della funzione chiamante). Allinizio
dellesecuzione presente nello stack solo il RDA della funzione
main. Se durante lesecuzione viene attivata una funzione f(),
viene creato ed aggiunto allo stack il RDA corrispondente.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Record di attivazione
Ogni RDA contiene: a) le locazioni di memoria dei parametri
formali (se presenti), b) le locazioni di memoria per le variabili
locali (se presenti), c) lindirizzo di ritorno (indirizzo della
prossima istruzione della funzione chiamante).
Allinizio dellesecuzione presente nello stack solo il RDA della
funzione main. Se durante lesecuzione viene attivata una
funzione f(), viene creato ed aggiunto allo stack il RDA
corrispondente.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Outline
1
Funzioni in C
Dichiarazione di Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Esercizi
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi
Esercizi
Trovate 7 esercizi nella piattaforma di autovalutazione:
Esercizio 1: Funzione Media;
Esercizio 2: Funzione Multipli;
Esercizio 3: Somma di Potenze;
Esercizio 4: MCD e mcm;
Esercizio 5: Metodo Babilonese.
Esercizio 6: Calcolo Pi Greco.
Esercizio 7: Numeri maggiori.
Funzioni in C
Dichiarazione di Funzioni in C
Definizione delle Funzioni in C
Chiamata a Funzione
Regole di Visibilit
Cenni al funzionamento dello Stack
Esercizi