| Hauptmenü | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Eine Matrix erzeugen und darauf zugreifen |
|
|
| Geschrieben von Lemmy | |
| Sonntag, 19. Februar 2006 | |
|
Wie es geht? Matrizen (Mehrzahl von Matrix) werden in der Mathematik verwendet. Eine 2D-Matix ist wie eine Tabelle, die aus Zeilen und Spalten besteht. Die dadurch entstehenden Zellen können bestimmte Daten enthalten. Es gibt aber auch 3D-Matrizen, die man sich räumlich wie einen Würfel vorstellen kann. Hinweis: Mehrdimensionale Arrays (4,5,...) sind selbstverständlich auch möglich Erzeugen der Matrix (dynamisch und statische Variante): So erzeugt man eine dynamische 4x3-Matrix, dessen Größe man zur Programmlaufzeit noch ändern kann: var matrix1: array of array of integer; //es werden Ganzzahlen in der Matrix gespeichert i,hoehe,breite:integer; begin hoehe:=4; breite:=3; //Zeilenanzahl setzen (also die Länge des senkrechten Arrays): setlength(matrix1,hoehe); //jetzt müssen wir jede Zeile einzeln auf die jeweils gleiche Länge setzen: for i:=0 to high(matrix1) do setlength(matrix1[i],breite); So erzeugt man eine statische 4x3-Matrix, dessen Größe man zur Programmlaufzeit nicht mehr ändern kann: var matrix2: array[0..3] of array[0..2] of integer; //das war es auch schon :-) matrix3: array[0..3, 0..2] of integer; //so gehts noch einfacher! Auf die Matrix zugreifen: Hat man erst mal verstanden, wie Matrizen in Pascal aufgebaut sind und hat man es geschafft, eine zu erzeugen, ist das Zugreifen darauf ganz einfach. So setzt man das Element (2,3) (3. Zeile, 4. Spalte) in einer der oben erzeugten Matrix: Matrix2[2,3]:=123; So liest man das Element (2,3) (3. Zeile, 4. Spalte) aus einer der oben erzeugten Matrix: showmessage(inttostr(Matrix2[2,3] )); //zeigt das Element in einer Message-Box an Höhe und Breite ermitteln: (dabei ist darauf zu achten, jeweils der Index des höchsten Elements zurückgeliefert wird. Haben die Zeilen die Indizies von 0..4, so gibt es 5 Zeilen - die 5. Zeile hat dabei den Index 4.) var hoehe, breite:integer; ... hoehe:=high(matrix2); //ermittelt wird die Anzahl der Unter-Arrays im Haupt-Array (siehe Skizze oben) breite:=high(matrix2[high(matrix2)]); //ermittelt wird die Länge des Unter-Arrays, dass in der letzten Zeile steht |
| Weiter > |
|---|