Problem

1 /12


Cos'è una matrice? Creazione, esposizione

Theory Click to read/hide

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.

È 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.

Problem

Compila una matrice binaria (composta solo da 0 e 1) in una scacchiera modello. Dovrebbe esserci un elemento nullo nell'angolo in alto a sinistra.

Dati di input: la riga di input contiene dimensioni di matrice separate da spazi: numero di righe  e numero di colonne ( 1 <= M < ;=< /em> 100 ).

Risultato: il programma dovrebbe restituire una matrice binaria riga per riga.

Esempio.
# Ingresso Uscita
1 4 5 0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
10101