Arduino IDE: variabili, costanti e macro #2

Arduino IDE

Il “trasferimento” di un problema sul sistema di elaborazione viene indicato nel linguaggio informatico con il termine implementazione.

Si parla di implementazione di un problema nel momento in cui la soluzione viene affrontata attraverso la costruzione di un modello.

Per esempio le previsioni del tempo atmosferico richiedono la disponibilità dei dati riguardante temperatura e pressione rilevate in molte località. Il luogo al quale si riferiscono le previsioni, le grandezze fisiche e le misurazioni costituiscono le entità.

Ogni entità possiede una o più proprietà. Per esempio le proprietà di un luogo sono: nome, latitudine, l’altezza rispetto al livello del mare e così via. Per quanto concerne la misurazione le proprietà possono essere le seguenti: ora del rilevamento ed i valori di ciascuna misurazione di una determinata grandezza fisica.

Queste proprietà possono assumere valori diversi per misurazioni diverse, si comportano come variabili. Le variabili sono proprietà delle entità che possono assumere valori diversi per diversi esemplari della stessa entità. Nelle formule matematiche l’uso delle variabili è prassi comune.

Come il nome stesso dice, il valore ad esse attribuito può cambiare, e ad ogni aggiornamento del valore di una variabile corrisponde un cambiamento dello stato del programma

Una variabile è simile a una scatola che può contenere un solo oggetto ( dato ). Ogni variabile ha un nome univoco che la distingue da tutte le altre.

Le variabili utilizzate nel programma devono essere dichiarate, all’inizio del programma o comunque prima del loro impiego, indicando il tipo e il nome assegnato alla variabile. La dichiarazione di una variabile deve contenere il tipo ad essa associato, come mostra la sintassi seguente:

Tipo nome;

Il nome per identificare una variabile (o una funzione o una costante) viene comunemente riferito come identificatore.

Nella seguente tabella sono riportati i tipi di dati del linguaggio di programmazione utilizzato da Arduino IDE:

Tipo/TypeIntervallo/LimitsBit size
Booleani/Booleansbooltrue/false8
Caratteri/Characterscharda -128 a 1278
Interi/IntegersShort int da -32.768 a 32.76716
intda -2.147.483.648 a 2.147.483.64732
Reali/RealFloatda 1,17549435 * 10^-38 a 3,40282347 * 10^3832
doubleda 2,2250738585072014 * 10^-308 a 1,7976931348623157 * 10^30864
long doubleda 3,4 * 10^-4932 a 1,1*10?493280

Esempi di dichiarazione di variabili:
• int numero;
• int anno;
• float statura;
• double Area;
• char risposta;
• bool trovato;

In seguito alla dichiarazione la variabile deve essere inizializzata, cioè le deve essere assegnato un valore, operazione che generalmente viene fatta contemporaneamente alla dichiarazione.

Per assegnare un valore si utilizza il simbolo =, utilizzato per associare un valore a una determinata variabile. Il valore assegnato può essere una costante, un’altra variabile, il risultato di una espressione o il valore di ritorno di una funzione e cosi via.

Esempi:
• int numero = 10;
• int anno = 2020;
• char risposta = ‘si’;
• bool trovato = ‘true’;

Non possono esistere più variabili dichiarate con lo stesso nome.

Il linguaggio di programmazione utilizzato in Arduino IDE è case sensitive, nel senso che distingue tra lettere maiuscole e minuscole. La variabile “numero” è diversa dalla variabile “Numero”.

Nella risoluzione di un problema è possibile spesso identificare delle proprietà che assumono sempre gli stessi valori. Queste proprietà vengono definite costanti.

Una variabile è constante nel momento in cui non cambia il proprio valore durante l’esecuzione del programma.

Le costanti utilizzate nel programma vengono dichiarate attraverso la parole chiave const secondo la seguente sintassi:

const tipo nome = valore;

L’uso delle costanti garantisce che il valore assegnato all’inzio venga mantenuto inalterato per tutta l’esecuzione del programma, evitando modifiche indesiderate.

Esempio:

  • Const float pigreco;
  • const float numero_di_nepero;
  • const int anno_nascita;

Esiste un altro modo per definire un valore costante nel tempo. La direttiva #define.

La direttiva serve a definire una MACRO, ovvero un simbolo. La sintassi con cui utilizzare la direttiva è la seguente:

#define nome_macro valore_macro

Il #define crea una macro. Con il #define non si dichiarano le variabili ma attraverso di essa si imposta una macro. Il compilatore prima dell’esecuzione assocerà a “nome_macro” il “valore_macro”.

macro

Il compilatore prima dell’esecuzione assocerà a ledpin il valore 3. Accade un fenomeno simile a questo:

macro

Qual è la differenza con const? La macro #define sostituisce il valore nel codice prima della compilazione, pertanto non ha necessità di una locazione di appoggio in memoria, mentre la variabile const si.

In genere l’esecuzione di una macro è più veloce rispetto all’utilizzo di una variabile, const, ma è anche soggetta ad effetti collaterali dovuti ad una errata valutazione delle espressioni da parte del preprocessore (il sistema che si occupa di tradurre le macro prima della compilazione).

Ne parleremo in un prossimo articolo.

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.