int m[N][M]; |
[0][0] | [0][1] | ... | [0][M] |
[1][0] | [1][M] | ||
[N][0] | [N][1] | ... | [N][M] |
Le matrici trovano applicazioni in molti programmi, soprattutto in quelli di grafica bidimensionale e tridimensionale, ma anche per tutte le strutture dati che sono intrinsecamente definite in tabella; alcuni esempi possono essere scacchiere o diagrammi tabulari. Vediamo un esempio che permette di stampare una matrice 3 4:
// ex6_7_1 #include <iostream.h> void main() { const int R = 3; // numero di righe const int C = 4; // numero di colonne int m[R][C] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; for (int i = 0; i < R; i++) { for (int j = 0; j < C; j++) cout << m[i][j] << "\t"; cout << "\n"; } }
output:
0 | 1 | 2 | 3 | |
4 | 5 | 6 | 7 | |
8 | 9 | 10 | 11 |
Come avevamo già accennato, per scorrere gli elementi di una matrice è sufficiente utilizzare due indici, per righe e colonne. Il seguente esempio calcola la somma degli elementi di una matrice 3 3 immessa dall'utente:
// ex6_7_2 #include <iostream.h> void ingresso (int m[3][3]) { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { cout << "(" << i << " , " << j << ")? "; cin >> m[i][j]; } } void stampa (int m[3][3]) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) cout << m[i][j] << "\t"; cout << "\n"; } } int somma (int m[3][3]) { int somma = 0; for (int i = 0; i < 3 ; i++) for (int j = 0; j < 3; j++) somma += m[i][j]; return somma; } void main() { int m[3][3]; ingresso (m); stampa (m); cout << "somma: " << somma (m); }
esempio di output:
(0 , 0)? 0
(0 , 1)? 2
(0 , 2)? 5
(1 , 0)? 3
(1 , 1)? 0
(1 , 2)? -5
(2 , 0)? -1
(2 , 1)? 2
(2 , 2)? 7
0 | 2 | 5 | |||
3 | 0 | -5 | |||
-1 | 2 | 7 |