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.
 
Una matrice è una tabella rettangolare composta da elementi dello stesso tipo (numeri, stringhe, ecc. .)< /div>
Tali dati in Pascal possono essere memorizzati 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 i normali array (liste), per lavorare con le matrici, devi imparare a crearle, inserirle, elaborarle e visualizzarle.
 
Creazione di matrici
Attività
Crea in memoria una matrice della dimensione data riempita di zeri.

Per creare correttamente una matrice, devi forzare il compilatore a creare tutte le stringhe in memoria come oggetti diversi.
Per fare ciò, devi prima creare un array vuoto, quindi specificare il numero di righe nella matrice, quindi specificare il numero di elementi in ogni riga utilizzando il metodo setLength() in un ciclo: N:= 3 M:= 2 setLunghezza(A, N); per i := da 0 a N - 1 do   setLunghezza(A[i], M);

 

Riempimento di una matrice con valori arbitrari
Dopo aver creato una matrice, puoi riempirla con valori arbitrari. Poiché ogni elemento ha due indici, è necessario utilizzare cicli nidificati per i := da 0 a N inizia per j := da 0 a M inizia A[i][j] := ...   FINE; FINE;  
Visualizzazione della matrice

Di solito vengono utilizzati due cicli nidificati per elaborare e visualizzare l'elenco. Il primo ciclo è per il numero di riga, il secondo ciclo è per gli elementi all'interno della riga.
Per visualizzare la matrice riga per riga, separando i numeri con spazi all'interno di una riga, è necessario scrivere il seguente frammento:

for i := 0 to length(A) - 1 do begin // length(A) - restituisce il numero di righe nella matrice A     for j := 0 to length(A[i]) - 1 do // length(A[i]) - restituisce il numero di elementi nella stringa i         write(a[i][j], ' ');     scriviln(); // esegue una nuova riga dopo che la riga è stata visualizzata FINE;

Lo stesso, ma scorre non per indice, ma per valori di elenco (il ciclo for può iterare su tutti gli elementi nell'elenco (array), stringa):

for riga in a do begin // itera su tutte le righe della matrice a     for elem in row do // scorre tutti gli elementi in riga         write(elem, ' ');     scriviln(); fine;

Problem

Riempi una matrice binaria (composta solo da zeri e uno) in uno schema a scacchiera. Dovrebbe esserci un elemento nullo nell'angolo in alto a sinistra.
 

Inserimento
La stringa di input contiene le dimensioni della matrice separate da spazi: il numero di righe N e il numero di colonne M ( 1 < = N ,  ;M <= 100 ).
 

Impronta 
Il programma dovrebbe emettere la matrice binaria riga per riga.
 

Esempi
# Input Uscita
1 4 5
0 1 0 1 0
10101
0 1 0 1 0
10101