Mit Arrays können wir auf eine Reihe von Variablen mit demselben Namen verweisen und eine Zahl (einen Index) verwenden, um einzelne Elemente in dieser Reihe aufzurufen. Arrays haben sowohl obere als auch untere Grenzen und die Elemente des Arrays sind innerhalb dieser Grenzen zusammenhängend.
Elemente des Arrays sind Werte, die alle vom selben Typ sind (Zeichenfolge, Ganzzahl, Datensatz, benutzerdefiniertes Objekt)..
In Delphi gibt es zwei Arten von Arrays: Ein Array mit fester Größe, das immer dieselbe Größe hat - ein statisches Array - und ein dynamisches Array, dessen Größe sich zur Laufzeit ändern kann.
Angenommen, wir schreiben ein Programm, mit dem ein Benutzer zu Beginn eines jeden Tages einige Werte (z. B. die Anzahl der Termine) eingeben kann. Wir würden uns dafür entscheiden, die Informationen in einer Liste zu speichern. Wir könnten diese Liste nennen Termine, und jede Nummer kann als Termine [1], Termine [2] usw. gespeichert werden.
Um die Liste zu verwenden, müssen wir sie zuerst deklarieren. Beispielsweise:
var Termine: Array[0… 6] von Ganze Zahl;
deklariert eine Variable namens Appointments, die ein eindimensionales Array (Vektor) mit 7 Ganzzahlwerten enthält. In Anbetracht dieser Deklaration gibt Appointments [3] den vierten ganzzahligen Wert in Appointments an. Die Zahl in Klammern heißt Index.
Wenn wir ein statisches Array erstellen, aber nicht allen Elementen Werte zuweisen, enthalten die nicht verwendeten Elemente zufällige Daten. Sie sind wie nicht initialisierte Variablen. Mit dem folgenden Code können Sie alle Elemente im Array Appointments auf 0 setzen.
zum k: = 0 zu 6 tun Termine [k]: = 0;
Manchmal müssen wir verwandte Informationen in einem Array nachverfolgen. Um beispielsweise jedes Pixel auf Ihrem Computerbildschirm im Auge zu behalten, müssen Sie die X- und Y-Koordinaten mit a angeben mehrdimensional Array zum Speichern der Werte.
Mit Delphi können wir Arrays mit mehreren Dimensionen deklarieren. Die folgende Anweisung deklariert beispielsweise ein zweidimensionales 7 x 24-Array:
var Tageszeit: Array[1… 7, 1… 24] von Echt;
Multiplizieren Sie die Anzahl der Elemente in jedem Index, um die Anzahl der Elemente in einem mehrdimensionalen Array zu berechnen. Die oben deklarierte Variable DayHour legt 168 (7 * 24) Elemente in 7 Zeilen und 24 Spalten beiseite. Um den Wert aus der Zelle in der dritten Zeile und der siebten Spalte abzurufen, verwenden wir: DayHour [3,7] oder DayHour [3] [7]. Mit dem folgenden Code können Sie alle Elemente im DayHour-Array auf 0 setzen.
für i: = 1 bis 7 für j: = 1 bis 24 für DayHour [i, j]: = 0;
Möglicherweise wissen Sie nicht genau, wie groß ein Array sein soll. Vielleicht möchten Sie die Fähigkeit haben, Ändern der Größe des Arrays zur Laufzeit. Ein dynamisches Array deklariert seinen Typ, aber nicht seine Größe. Die tatsächliche Größe eines dynamischen Arrays kann zur Laufzeit mithilfe der SetLength-Prozedur geändert werden.
var Studenten : Array von Zeichenfolge;
Erzeugt ein eindimensionales dynamisches Array von Strings. Die Deklaration reserviert keinen Speicher für Schüler. Um das Array im Speicher zu erstellen, rufen wir die SetLength-Prozedur auf. Zum Beispiel mit der obigen Erklärung,
SetLength (Schüler, 14);
Weist ein Array mit 14 Zeichenfolgen zu, die mit 0 bis 13 indiziert sind. Dynamische Arrays sind immer ganzzahlig und beginnen immer mit 0 bis eins weniger als ihre Größe in Elementen.
Verwenden Sie den folgenden Code, um ein zweidimensionales dynamisches Array zu erstellen:
var Matrix: Array von Array von Doppelt; Start SetLength (Matrix, 10, 20) Ende;
Hiermit wird Platz für ein zweidimensionales Array von Double-Gleitkommawerten im Format 10 x 20 zugewiesen.
Um den Speicherplatz eines dynamischen Arrays zu entfernen, weisen Sie der Array-Variablen den Wert nil zu, z.
Matrix: = Null;
Sehr oft weiß Ihr Programm beim Kompilieren nicht, wie viele Elemente benötigt werden. Diese Nummer wird erst zur Laufzeit bekannt sein. Bei dynamischen Arrays können Sie nur so viel Speicher zuweisen, wie zu einem bestimmten Zeitpunkt erforderlich ist. Mit anderen Worten, die Größe dynamischer Arrays kann zur Laufzeit geändert werden, was einer der Hauptvorteile dynamischer Arrays ist.
Im nächsten Beispiel wird ein Array mit Ganzzahlwerten erstellt und anschließend die Funktion Kopieren aufgerufen, um die Größe des Arrays zu ändern.
var Vektor: Anordnung von Ganze Zahl; k: ganze Zahl; Start SetLength (Vector, 10); zum k: = Low (Vektor) zu Hoch (Vektor) tun Vektor [k]: = i * 10;… // Jetzt brauchen wir mehr Platz SetLength (Vector, 20); // hier kann das Vektorarray bis zu 20 Elemente aufnehmen // (davon sind bereits 10 vorhanden)Ende;
Die SetLength-Funktion erstellt ein größeres (oder kleineres) Array und kopiert die vorhandenen Werte in das neue Array. Mit den Funktionen Low und High können Sie auf jedes Array-Element zugreifen, ohne im Code nach den richtigen unteren und oberen Indexwerten zu suchen.