Scarica Funzioni - Informatica seconda e terza liceo e più Schemi e mappe concettuali in PDF di Informatica solo su Docsity!
Le funzioni
Uso delle funzioni, dichiarazione, variabili, pro e contro.
Cosa sono le funzioni?
- (^) Una funzione è un blocco di istruzioni con un nome che viene
eseguito in ogni punto del programma in cui viene richiamata la
funzione usando il nome.
- (^) In particolare:
- (^) Sono strumenti presenti in molti linguaggi di programmazione che
permettono il riuso del codice e il risparmio di codice analogo
all'interno del programma. Esse contengono istruzioni che vengono
eseguite ogni tal volta che viene chiamata la funzione in riguardo. Le
funzioni possono tornare un valore oppure no (void). Quando si chiama
una funzione all'interno del programma, a seconda di come è
strutturata la funzione e a seconda del suo scopo, essa puo' richiedere
che gli vengano passati dei valori da usare all'interno della
funzione. Questi valori si chiamano PARAMETRI.
Variabili locali e globali Esistono due tipi di variabili: locali e globali.
- (^) Queste ultime sono riutilizzabili anche all’interno delle funzioni, quindi senza dover riscrivere ad esempio: int a, int b, int c, ecc…
- (^) Nello specifico:
- (^) Le variabili globali si possono usare in tutto il programma dal punto in cui sono dichiarate fino alla fine. Lo scopo delle variabili locali è invece limitato al blocco in cui sono dichiarate. Se sono dichiarate all'inizio di una funzione (come in main) il loro scopo è l'intero corpo della funzione. Questo significa che se nell'esempio ci fosse un'altra funzione diversa da main(), le variabili locali dichiarate in main non sarebbero visibili all'interno di tale funzione e viceversa.
- (^) In C++ lo scopo di una variabile locale è limitato alla parte del blocco in cui esse sono dichiarate che segue la dichiarazione stessa (un blocco è un gruppo di istruzioni racchiuse tra parentesi graffe {}.
- (^) Oltre allo scopo locale e globale esiste anche uno scopo esterno (external ) che non solo è visibile in tutto il file che contiene il programma ma è visibile anche in ogni altro file di programma che venga collegato con esso.
Perché utilizzare le funzioni?
- Quando è necessario ripetere un certo numero di istruzioni è possibile
incapsularle in un blocco di codice a cui viene associato un nome. In
questo modo, è possibile invocare lo stesso blocco di codice in più
parti del programma con un’unica istruzione, anzichè ripetere il suo
contenuto.
- Il beneficio che ne deriva va oltre il fatto di rendere più snello il nostro
codice. La definizione di funzioni costituisce infatti una prima
realizzazione del concetto di incapsulamento , uno dei capi saldi della
programmazione moderna, soprattutto di quella orientata agli oggetti.
- Una funzione, infatti, può essere vista come un oggetto di cui non
necessariamente conosciamo il funzionamento interno, che produce
un risultato a partire da un insieme di argomenti in input.
- Per modificare (o correggere) il comportamento di una funzione che
viene invocata in molteplici parti del programma, ci basta agire sul
blocco di codice di cui è composta, lasciando intatto il resto. Si può
cioè produrre un impatto notevole su tutto il codice modificandone
solo una piccola parte. Da questo deriva la potenza semantica di
questo costrutto e la sua importanza nella programmazione a tutti i
livelli.
Esempio di funzione
- (^) …
- (^) Int media ()
- (^) {int somma= vet [0] + … + vet [3];
- (^) int risultato= somma /3;
- (^) return risultato;
- (^) }
- (^) Questa funzione serve per calcolare la media e viene richiamata dal main, in un programma dove occorre fare la media degli array utilizzando le funzioni.
Un esempio di programma che calcola la media degli array con l’utilizzo delle funzioni.
#include #include <stdio.h> #include <stdlib.h> using namespace std; float media (int vet []){ int somma; variabile locale float media; variabile locale somma =vet[0]+ vet[1]+ vet [2]+ vet [3]+ vet[4]; FUNZIONE media=somma/5; return media; } Int main () { Int vet [], x, y; For (y=0; y<5; y++){ Cin>> vet [y]; CICLO FOR }
x= media (vet);
cout << x;
system (“Pause”)
return 0;