Vediamo il meccanismo delle funzioni con un programma con 2 funzioni una vuota e l' altra con il passaggio di parametri
Dentro le funzioni possiamo metterci il lavoro sporco , per poi richiamarle dentro il programma o funzione principale il MAIN con un semplice ( nome (); ) come potete capire anzi che fare delle grandi operazioni dentro il main è bene farle dentro le funzioni poi le funzioni evita di fare i doppi lavori se serve un’ istruzione più di una volta allora la funzione basta richiamarla dove desideriamo, anche il printf e scanf sono funzioni del compilatore che noi richiamiamo ogni file .H eader contiene le sue funzioni che poi noi richiamiamo dentro i nostri programmi proprio per questo che dentro questo linguaggio C c’è pochissimi comandi o istruzioni grazie allefunzioni già costruite La prima cosa che si fa per le funzioni , devono essere dichiarate con il prototipo in globale come si dichiara le variabili o le costanti, per dichiarare una Funzione abbiamo: tipo_restituito nome_funzione (parametro1, parametro2);Questo prototipo serve per dire al programma che c’è questa funzione che usa i parametri1 e 2 e mi viene restituito un tipo di calcolo i tipi sono proprio il tipo di variabili int, double, float o void che è vuoto , senza questa dichiarazione sarebbe come utilizzare una variabile senza averla prima dichiarata cosi il compilatore da errori se non viene inserito nessun tipo allora viene considerata int per uscire da queste funzioni non void si usa il RETURN come già detto le variabili o le costanti globali vanno inserite prima del MAIN () e dopo i comandi delpreprocessore ecco come si dichiara una funzione vediamola da vicino il primo int è quello che cirestituisce (tipo_restituito )la funzione somma , (somma è il nome della funzione ) (int , int) sono i (parametri 1 e 2) che la funzione prende per fare i suoi calcoliint somma (int,int );Creata questo prototipo della funzione il compilatore stesso VS2015 ci fa creare la funzione e la colloca alla fine del programma generale giù in fondo dopo la graffa che chiude tutto il programma, (questo se il (main () {istruzioni }) è stato già creato), altrimenti viene collegata direttamente sotto la dichiarazione della stessa e il compilatore da errore perché non vedeil programma principale , costruita la funzione prototipo vedrete il nome della funzione sottolineata in verde , portate il mouse sopra il nome compare una lampadina con la scelta (creala definizione) questo fatelo dopo che avete inserito il programma principale cosi create la vera funzione che è il nome del prototipo con 2 graffe sotto , nella parte parametro 1e 2 dobbiamo inserire il nome delle variabili se non lo abbiamo fatto su nel prototipo e questo è il passaggioper valore , possiamo anche fare il passaggio per riferimento che vedremo poi con i puntatori Al compilatore gli interessa sapere su cosa lavorare, ovvero deve sapere che tipo di variabili o costanti usiamo int, double, float, oppure void vuoto , se non scriviamo nulla il compilatore considera tutto int e lavora su i numeri interi ecco un esempio di una funzione vuotainserisce solo una intestazione quando chiamiamo la stessa funzione, nello stesso programma inserisco una seconda funzione per una somma di numeri reali float e qui come spiegatoprima si esce dalla funzione grazie al RETURN ecco il programmmino funzionante : <---------------------- inizio programma --------------->#include<stdio.h>#include<stdlib.h> //i 2 prototipi delle 2 funzioni inseriti nella voidintestazione(); //sezione globale che rimane tra #include e il main float somma(float, float); //le 2 funzioni una è void l'altra tutto float main() { float aa, bb, cc; intestazione(); //richiamo della prima funzione che è l'intestazione //si richiede 2 numeri che dobbiamo sommarli dentro la funzione printf("\n Inseriamo un numero reale AA "); scanf("%f",&aa); printf("\n Inserisci un numero reale BB "); scanf("%f",&bb); cc = somma(aa,bb); /* cc è il risultato che devo riprendere dalla funzione per poi ristamparlo qui sotto con la printf */ printf("\n La somma e' di %.2f\n ", cc);
printf("\n Fine "); intestazione(); //di nuovo la mia intestazione come su system("pause"); } //fine del programma main ora qui sotto troviamo le funzioni void intestazione() // funzione dell' intestazione { printf(" [ ByMpt-Zorobabele ] PROVA LE FUNZIONI LA SOMMA AA + BB \n\n");}float somma(float a, float b) //funzione della somma guardate le variabili { //sono tutte diverse da quelle usate nella funzione float c; //principale del main su si usa AA, BB,CC contro A,B,C c= a + b; return c ; //come spiegato prima nella lezione 9 ecco il RETURN } <----------------------- fine programma ---------------------------->
Ecco il video stampato dove troviamo le 2 intestazioni , inserimento dei numeri12.30 e 5.70 e la somma 18 : [ ByMpt-Zorobabele ] PROVA LEFUNZIONI LA SOMMA AA + BB
Inseriamo un numero reale AA 12.30
Inserisci un numero reale BB 5.70 La somma e' di 18.00
Fine [ByMpt-Zorobabele ] PROVA LE FUNZIONI LA SOMMA AA + BBPremere un tasto per continuare . . .
Ciao grazie ByMpt-Zorobabele