Arduino

Minivocabolario: le funzioni

Alessandro Oppo 2 min di lettura

Le funzioni sono molto simili alla procedure ma differiscono visivamente in due particolari:
– hanno, anziché void, un tipo, proprio come se fossero delle variabili
– in fondo al corpo, appena prima della fine, hanno un return

tipo nomeFunzione (primoParametro, secondoParamentro, etc){

corpo della funzione;

return nomeVariabile; }

La funzione, esattamente come una procedura, viene chiamata ed esegue il codice contenuto nel proprio corpo. Una volta arrivata al return prende la variabile posta alla sua destra e la restituisce a chi ha chiamato la funzione.

Il tipo posto in testa alla dichiarazione della funzione è il tipo che corrisponde alla variabile che verrà ‘ritornata’ dalla funzione.

Il seguente esempio è basato sul precedente ma leggermente modificato.
La variabile numero viene incrementata di 0,5 ad ogni ciclo e allo stesso tempo viene eseguita una divisione per due di numero.
Entrambi i risultati vengono stampati.

//Funzioni 9minuti.it

float numero = 0; float incremento = 0.5; float numDiviso;

float aggiungiNumero(float incremento){

numero += incremento;

return numero / 2;

}

void setup() {

Serial.begin(9600); }

void loop() {

Serial.print(“Numero incrementato: ”); Serial.println(numero);

numDiviso = aggiungiNumero(incremento);

Serial.print(“Numero diviso 2: ”); Serial.println(numDiviso);

delay(1000);
}

3 – 5 Dichiarazione di tre variabili di tipo float. Questo tipo serve quando necessitiamo di salvare dei numeri reali, ovvero quelli con la virgola.
7 – Dichiarazione della funzione, usiamo anche qui float come tipo perché il nostro incremento sarà di 0,5
9 – Sommiamo incremento a numero.
11 – return di numero / 2   Questa operazione non viene effettuata veramente su numero.
22 – Stampa della stringa  Numero incrementato:
23 – Stampa della variabile numero
25 – Alla variabile numDiviso viene assegnato il valore del nostro return
27 – Stampa della stringa Numero diviso 2:
29 – Stampa della variabile numDiviso

Vi ripropongo ora lo stesso esempio pulito un po’. L’effetto prodotto è il medesimo ma è stata rimossa la variabile numDiviso.

//Funzioni 9minuti.it

float numero = 0; float incremento = 0.5;

float aggiungiNumero(float incremento){

numero += incremento;

return numero / 2; }

void setup() {

Serial.begin(9600); }

void loop() {

Serial.print(“Numero incrementato: ”); Serial.println(numero);

Serial.print(“Numero diviso 2: ”); Serial.println(aggiungiNumero(incremento));

delay(1000);
}

24 – Si può notare il passaggio cruciale, ovvero una chiamata alla funzione come parametro di un’altra chiamata alla funzione.
Il codice va letto dall’interno verso l’esterno, ovvero prima

aggiungiNumero(incremento)

e il return diventa il parametro di

Serial.println(returnDiAggiungiNumero);

in aggiornamento

Leggi anche

Arduino

Minivocabolario: i parametri

In questa breve guida ti spiegherò cosa sono i parametri, in particolar modo applicate alla programmazione del micro controllore Arduino. Parametri Vediamo ora i parametri e per farlo ci lanceremo immediatamente con…