Arduino IDE: che cos’è un array o vettore #8

Arduino IDE

Negli articoli precedenti di codesta guida sono state utilizzate nei vari sketch variabili semplici, cioè corrispondenti a un solo valore.

In molti problemi si ha la necessità di aggregare molti dati (variabili) di tipo semplice, in tal modo da facilitarne la rappresentazione.

Questi dati sono organizzati in una struttura dati definita array (o vettore).

Si può immaginare un array come una sorta di contenitore, le cui caselle sono dette celle (o elementi) dell’array stesso. Ciascuna delle celle si comporta come una variabile tradizionale; tutte le celle sono variabili di uno stesso tipo preesistente, detto tipo base dell’array. Si parlerà perciò di tipi come “array di interi”, “array di stringhe”, “array di caratteri” e così via. Quello che si ottiene dichiarandolo è dunque un contenitore statico ed omogeneo di valori, variabili o oggetti.

L’array è un insieme di elementi omogenei tra loro. Con una variabile possiamo indicare un solo dato, con l’array possiamo indicare tanti dati dello stesso tipo con un solo nome collettivo di variabile: l’identificatore dell’array. Gli elementi si distinguono uno dall’altro attraversi l’indice che viene assegnato nell’array, e che viene posto accanto all’identificatore dell’array.

Per dichiarare un vettore si utilizza la seguente sintassi:

tipo nomeArray [dimensioneVettore];

Le componenti di un array possono essere non solo numeriche, ma di uno qualsiasi dei tipi standard del linguaggio di programmazione utilizzato da Arduino IDE.

Se una variabile è definita di tipo array, deve essere sempre usata all’interno del programma accompagnando l’identificatore della variabile con un indice intero. La numerazione degli indici inizia da 0.

Inoltre è possibile inizializzare un array assegnando i valori alle componenti in fase di dichiarazione. I valori sono indicati all’interno delle parentesi graffe e separati dalla virgola.

La possibilità di accedere agli elementi attraverso un indice è la principale caratteristica di un array. In aggiunta è possibile scorrere tra i vari valori del vettore identificati dal quel determinato indice tramite l’ausilio di un ciclo iterativo.

vettore

Una volta dichiarato un array è possibile assegnare il valore alla posizione corrispondente, richiamandola tramite l’indice, ad esempio se volessi inserire il valore 98 nell’array di int alla posizione di indice 10, basta scrivere:

int v [100];

v[10]=98;

Nota: Quando si richiama l’ultimo elemento di un array, bisogna sempre considerare che il contatore dell’array comincia da 0 e non da 1, ciò significa che in un vettore di 3 elementi di nome “numeri” contenente i valori 1,2 e 3 per richiamare 1 bisogna scrivere numeri[0], mentre per richiamare 3 si deve scrivere numeri[2].

Un array (o vettore) può anche essere inizializzato in fase di definizione, nel qual caso la dimensione può essere omessa perché calcolata implicitamente dal compilatore.

Spesso non è necessario gestire tutti gli elementi del vettore: di solito le celle a partire dal fondo non vengono utilizzate, perciò bisogna definire il numero di elementi utili, ossia quanti elementi saranno effettivamente utilizzati.

Per esempio: dato un vettore di 100 elementi, quelli utili potranno essere i primi N (ovviamente 0<=100). Il numero di elementi utili è variabile, e normalmente viene definito tramite acquisizione.

Il vantaggio di utilizzare un vettore rispetto a un numero indefinito di variabile consiste in:

  • una sola dichiarazione
  • posso fare dei cicli per accedere al valore di tutte le variabili

Nel prossimo articolo vi sarà un progetto che riporterà il modo in cui utilizzare gli array nei progetti Arduino.

Link guida:

Link utili

Seguici per non perdere le prossime novità!

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.