in questa sesta parte del corso completo di C che tengo su questo sito, voglio parlarvi delle funzioni che si possono creare in C, e di come è possibile costruire programmi su più file, in modo da separare funzioni e altre definizioni dal resto del programma.
INDICE
Parte 1: Introduzione.
Parte 2: Fasi, variabili, operatori e software.
Parte 3: Tipi di dato, direttive e primo programma.
Parte 4: Tipi di formato, prinft e scanf.
Parte 5: Istruzioni condizionali e di iterazione.
Parte 6: Funzioni e progetti su più file.
Parte 7: Puntatori e passaggio dei parametri.
Parte 8: Array, stringhe e strutture.
Parte 9: Gestione file: file di testo.
Parte 10: Gestione file: file binari.
Parte 11: Allocazione dinamica della memoria.
Parte 12: Creare ed utilizzare le liste nel C.
Parte 13: Algoritmi di ordinamento di Array.
Parte 14: Esercizi sul linguaggio C.
LE FUNZIONI
Le funzioni permettono al programmatore di costruire nuove istruzioni, che risolvono un determinato problema e svolgono solo specifiche operazioni. Le funzioni sono così composte:
- Hanno un nome univoco;
- Sono determinate da un tipo di formato, che denota il tipo di risultato che si otterrà;
- Hanno al loro interno delle istruzioni;
- Ritornano un risultato, in base al tipo di formato specificato.
Le funzioni vengono invocate attraverso il passaggio di parametri da parte dell’utente; è necessario adesso però specificare che ci sono due tipi di parametri:
- I parametri formali, che sono specificati nella definizione della funzione e comprendono anche il tipo che rappresentano;
- I parametri attuali, che vengono indicati dal programmatore al momento della chiamata della funzione e devono corrispondere ai parametri formali in numero, posizione e tipo, mentre il loro nome può essere differente.
void scrittaRisultato(int result){
printf(“Il numero maggiore e’ il numero %d”, result);
}
Le funzioni possono essere ricorsive o iterative:
- Le funzioni ricorsive prevedono un caso base, dove la ricorsione finisce, e si prevede di riuscire a soddisfare il problema usando i termini dello stesso problema (ovvero richiamando più volte la stessa funzione);
- Un iterazione si definisce un processo computazionale iterativo, ovvero un processo che si completa per accumulo e per gradi, fornendo sempre risultati parziali.
Per capire la ricorsione, bisogna analizzare per gradi tutto il programma; alla prima chiamata (n=4), si entra nell’else e sirichiama nuovamente la funzione, questa volta con n=3, moltiplicata per l’attuale valore di n. E così si procede fino al caso base (ossia n<=0), ritornando il numero 1;
|
Nelle funzioni iterative non si richiama sempre la stessa funzione, ma si procede con le istruzioni creando continuamente risultatiparziali, fino a un valore finale (n).
|
Sempre in riferimento a programmi futuri molto corposi, programmare su più file diversi è una cosa veramente obbligatoria, in quanto permette di riutilizzare il codice tantissime volte e di dichiarare strutture o variabili una sola volta.Per poter fare questo, occorre creare (oltre al file principale) altri due file, solitamente con lo stesso nome (ma estensione diversa):
- Un file Header, con estensione .h, dove si dichiarano le funzioni;
- Un altro file con estensione .c, dove si definiscono le funzioni.
File header “esempio.h” |
File “esempio.c” |
File principale, chiamato in questo “main.c”
Dottore in Ingegneria Informatica.
Contattatemi sui miei Social Network e sul mio Sito personale per collaborazioni, proposte di lavoro e altre informazioni!