Corsi registrati su
C, C++, Python, JavaScript
Corsi in diretta per la formazione di Front End Developer e Back End Developer
Un array multidimensionale è un vettore i cui elementi sono a loro volta degli array, che a loro volta possono essere degli array multidimensionali.
Quindi i vettori che abbiamo visto in precedenza sono monodimensionali.
Invece ad esempio i vettori di vettori sono bidimensionali; i vettori di vettori di vettori sono tridimensionali, ecc…
In genere, sebbene non vi sia alcun limite, non si utilizzano più di tre dimensioni.
Sintassi – array multidimensionale
La sintassi è la seguente:
<TipoElementi><NomeArray>[<Costante>]…[<Costante>];
Il numero dei valori Costante coincide con il numero di dimensioni del vettore.
Una matrice ad esempio richiede due costanti, un vettore tridimensionale richiede tre costanti e così via.
Facciamo degli esempi:
vettore – int a[M]
matrice – int a[M][N]
vettore tridimensionale int a[M][N][P]
Rappresentazione di una matrice
Per rappresentare una matrice facciamo riferimento ad una tabella in cui il primo indice rappresenta la riga, il secondo la colonna.
<TipoElementi><NomeArray>[<Righe>] [ <Colonne>]
dove righe e colonne indicano rispettivamente il numero di righe e di colonne della matrice.
Guardiamo questa matrice di esempio, ho omesso gli indici di riga e colonna.
12 | 21 | 33 | 44 | 67 |
1 | 6 | 11 | 58 | 34 |
23 | 2 | 45 | 8 | 6 |
11 | 4 | 7 | 18 | 3 |
1 | 7 | 9 | 34 | 78 |
In questa matrice il numero 8, in grassetto è l’elemento (2,3) cioè di riga 2 e colonna 3 (ricordiamo che gli indici di riga e di colonna partono da 0). L’ultimo numero, 78, sarà l’elemento (4,4) cioè di riga e colonna 4.
Quindi si può accedere ad un singolo elemento di un array bidimensionale usando i doppi indici (per righe e colonne).
Ad esempio A[2][3] seleziona il quarto elemento della terza riga.
Se invece utilizziamo un solo indice, ad esempio A[2], selezioniamo tutta la terza riga, che rappresenta un array monodimensionale.
Facciamo alcuni esempi di array bidimensionali:
int a[20][30];
float a[M][N];
char a[2][3]={{‘a’, ‘b’, ‘c’},{‘d’, ‘e’, ‘f’}}
Alcuni link utili:
Somma elementi diagonale principale di una matrice
Somma elementi cornice esterna
Sommare i numeri di una matrice
Ricerca elementi in una matrice