Introduzione.
Molto spesso, quando si lavora con qualsiasi informazione, si ha a che fare con dati tabulari. I programmi moderni lavorano molto spesso con tali dati. L'esempio più semplice è la programmazione di giochi su una scacchiera: tris, scacchi, dama, ecc.
In matematica, tali strutture sono chiamate matrici.
Matrix è una tabella rettangolare composta da elementi dello stesso tipo (numeri, stringhe, ecc.).< /span>
Tali dati in C# possono essere archiviati ed elaborati come array bidimensionali - "array di array"
Per elaborare i dati nella tabella, è necessario ricordare lo stato di ogni cella (cella). Ogni cella ha due numeri: un numero di riga e un numero di colonna.
Nella matrice ogni elemento ha due indici: prima viene indicato il numero di riga, poi il numero di colonna. La numerazione delle righe e delle colonne parte da zero.
Ad esempio, l'elemento A[1, 2]
è l'elemento che si trova nella seconda riga e nella terza colonna.
Proprio come con gli array regolari, per lavorare con le matrici, devi imparare a crearle, inserire, elaborare e visualizzare.
Crea una matrice. span >
È possibile creare una matrice in memoria di una data dimensione riempita con alcuni valori iniziali.
int[,] array = new int[4, 2]; // 4 righe, 2 colonne
Dopo aver creato una matrice, puoi riempirla con valori arbitrari. Poiché ogni elemento ha due indici, è necessario utilizzare cicli annidati
for (int i=1; i <= N, i++) { / / N - numero di righe
for (int j=1; j <= N, j++) { // M è il numero di colonne
A[i, j] = ...
}
}
Visualizzazione della matrice.
Di solito vengono utilizzati due loop nidificati per elaborare e visualizzare l'elenco. Il primo loop è sul numero di riga, il secondo loop sugli elementi all'interno della riga. Per visualizzare la matrice sullo schermo riga per riga, separando i numeri con spazi all'interno di una riga, è necessario scrivere il seguente frammento:
for (int i=1; i <= N, i++) {
for (int j=1; j <= N, j++) {
Console. Write(A[i, j] + " ");
}
Console.WriteLine(); // passa a una nuova riga
}
Puoi fare lo stesso, ma usa i loop di elenco invece dell'indice ( foreach
). Prova a scrivere tu stesso una subroutine che lo implementi.