Informatica 4 Funzioni
FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un solo elemento di B: f : A B INFORMATICA Un insieme di istruzioni definito e descritto una sola volta per essere eseguito più volte (eventualmente) su dati diversi
Funzione Dichiarazione o prototipo tipo nome (parametri) ; Definizione o implementazione tipo nome (parametri) { istruzioni return variabile o costante; } Chiamata variabile = nome (parametri); Il prototipo deve sempre precedere la chiamata
Funzioni: implementazione in assenza di parametri: tipo nome() oppure tipo nome(void) in presenza di parametri: tipo nome(tipo nome) tipo nome(tipo nome, tipo nome=default)
25/11/ /11/08 Le funzioni nei calcolatori CHIAMANTE … x = 35; y = f(x); … CHIAMATO (funzione) f(int a) … output? parametro attuale parametro formale (input)
Parametri di una funzione Nella definizione della funzione si parla di parametri formali: tipo f( tipo parametro_formale ) Nella chiamata della funzione si parla di parametri attuali: y = f( parametro_attuale ); 6
Quando utilizzare parametri by value e quando by reference? “Per valore” quando dobbiamo utilizzare il dato passato per elaborare SENZA che le modifiche siano utilizzabili dal chiamante (solo INPUT). “Per indirizzo” quando il contenuto dei parametri formali al termine dell'elaborazione del chiamato è necessario al chiamante. 7
Terminologia default: assunto dal sistema se non specificato
Min() Prototipo double Min(double a, double b); Implementazione double Min(double a, double b) { double r; if (a>b) r = b; else r = a; return r; } // fine Min Chiamata... min = Min(x, y); // chiamata...
Esercizio Riordinare due numeri in ordine crescente a,b a>b V t a a b b t a,b a>b V Scambia(a, b) a,b
Domande Di che tipo è la variabile o costante specificata dopo return? Come fa il programma a riconoscere una funzione prima che sia definita? Cosa contengono gli header files (.h)? Come vengono associati i parametri tra chiamante e funzione: –quando hanno nomi uguali –quando hanno nomi diversi?