Problem

1 /12


Was ist eine Matrix? Erstellen, Anzeigen

Theory Click to read/hide

Einleitung
Es ist sehr häufig, sich mit tabellarischen Daten zu befassen, wenn es um Informationen geht. Heute ' s Programme arbeiten oft mit solchen Daten. Das einfachste Beispiel ist das Schieduling von Spielen auf einem Käfigbrett: Vernetzer, Schach, Schuh, etc.

In der Mathematik werden solche Strukturen Mathematik genannt.
Matrix - das ist ein rechteckiger Tisch, der aus den Elementen eines Typs (Chis, Linien, etc.) gezogen wird.

Solche Daten in Pascal können in Form von zweistöckigen Massen gespeichert und verarbeitet werden.
Um die Daten in der Tabelle zu verarbeiten, muss der Zustand jeder Zelle erinnert werden. Jede Zelle hat zwei Zahlen: die Zeilennummer und die Spaltennummer.
In der Matrix weist jedes Element zwei Indizes auf: zuerst wird die Zeilennummer angegeben, dann die Spaltennummer. Die Nummerierung von Zeilen und Spalten beginnt bei Null.
Das Element A[1][2] ist beispielsweise ein Element in der zweiten Zeile und der dritten Spalte.

Wie bei konventionellen Massen (Listen), um mit den Matrizen zu arbeiten, ist es notwendig, zu lernen, wie sie zu erstellen, injizieren, zu verarbeiten und abzuschirmen.
Errichtung einer Matrix
Ziel
Erstellen Sie eine Null-gefüllte Karte.

Um die richtige Matrix zu erstellen, ist es notwendig, den Compiler dazu zu zwingen, alle Zeilen im Speicher als verschiedene Objekte zu erstellen.
Es ist notwendig, zunächst einen leeren Raum zu schaffen, dann die Anzahl der Zeilen in der Matrix angeben und dann im Zyklus die Anzahl der Elemente in jeder Zeile mit dem Verfahren angeben setLength():
N := 3
M := 2
setLength(A, N);
für i : = 0 bis N - 1
setLength(A[i], M);

Wiederholen der Matrix mit beliebigen Werten
Sobald die Matrix festgelegt ist, kann sie mit beliebigen Werten gefüllt werden. Da jedes Element zwei Indizes aufweist, ist es notwendig, die angewandten Zyklen zu verwenden.
für i := 0 bis N beginnen
Für j := 0 bis M beginnen
A[i][j] := ...
Ende;
Ende;
Entladung der Matrix auf dem Bildschirm

Zwei Zyklen werden in der Regel verwendet, um die Liste zu bearbeiten und zurückzuziehen. erster Zyklus auf der Zeilennummer, zweiter Zyklus auf den Elementen innerhalb der Zeile.
Um die Matrix scharf auf den Bildschirm zu stellen, indem die Anzahl der Lücken innerhalb einer Zeile geteilt wird, muss ein solches Fragment geschrieben werden:

für i:= 0 bis Länge(A) - 1 beginnen / Länge(A) - gibt die Anzahl der Zeilen in Matrix A zurück
für j := 0 bis Länge(A[i]) - 1 do // Länge(A[i]) - die Anzahl der Elemente in Zeile i zurückgeben
Schreib(a[i][j],
Schreibln(); // den Übergang zu einer neuen Zeile machen, nachdem die Zeile auf dem Bildschirm platziert ist
Ende;

Dasselbe, aber die Zyklen sind nicht durch Index, sondern durch Listenwerte (der Zyklus für kann alle Elemente in die Liste(n), Zeile umwandeln):

für Zeile in a do beginnen // alle Zeilen der Matrix a
für elem in Reihe tun // alle Elemente in Reihe zurücksetzen
schriftlich(elem, ');
Schreibln();
Ende;

Problem

Füllen Sie die binäre Matrix (die nur Null und Einheit ist) in Schachreihenfolge. Die linke obere Ecke hat ein Nullelement.

Eingangsdaten
In der Eingangsleitung werden die Abmessungen der Matrix durch den Spalt aufgezeichnet: Anzahl der LinienNAnzahl der SpaltenM( 1 Exemplar = N, M PO = 100).

Ausgangsdaten
Das Programm sollte die duale Matrix auf den Linien entfernen.

Beispiele
NeinEingangsdatenAusgangsdaten
15.
0 0 0 1 0
1 0 0 0 0 1
0 0 0 1 0
1 0 0 0 0 1