Grundlegendes zu und Implementieren von Array-Datentypen in Delphi

click fraud protection

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

Statische Arrays

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 Termineund jede Nummer kann als Termine [1], Termine [2] usw. gespeichert werden.

Um die Liste zu verwenden, müssen wir sie zuerst deklarieren. Beispielsweise:

instagram viewer
 var Termine: Array [0..6] von Integer; 

deklariert eine Variable namens Termine, die ein eindimensionales Array (Vektor) mit 7 ganzzahligen Werten enthält. In Anbetracht dieser Erklärung bezeichnet Termine [3] den vierten ganzzahligen Wert in Terminen. Die Zahl in Klammern wird als Index bezeichnet.

Wenn wir eine erstellen statisches Array Weisen Sie jedoch nicht allen Elementen Werte zu. Die nicht verwendeten Elemente enthalten zufällige Daten. Sie sind wie nicht initialisierte Variablen. Der folgende Code kann verwendet werden, um alle Elemente im Appointments-Array auf 0 zu setzen.

 für k: = 0 bis 6 Termine [k]: = 0; 

Manchmal müssen wir verwandte Informationen in einem Array verfolgen. Um beispielsweise jedes Pixel auf Ihrem Computerbildschirm zu verfolgen, müssen Sie mit a auf seine X- und Y-Koordinaten verweisen 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 DayHour: Array [1..7, 1..24] von Real; 

Um die Anzahl der Elemente in einem mehrdimensionalen Array zu berechnen, multiplizieren Sie die Anzahl der Elemente in jedem Index. Die oben deklarierte DayHour-Variable legt 168 (7 * 24) Elemente in 7 Zeilen und 24 Spalten beiseite. Um den Wert aus der Zelle in der dritten Zeile und siebten Spalte abzurufen, verwenden wir: DayHour [3,7] oder DayHour [3] [7]. Mit dem folgenden Code können alle Elemente im DayHour-Array auf 0 gesetzt werden.

 für i: = 1 bis 7 tun
für j: = 1 bis 24 tun
DayHour [i, j]: = 0;

Dynamische Arrays

Möglicherweise wissen Sie nicht genau, wie groß ein Array sein soll. Möglicherweise möchten Sie die Fähigkeit von 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 von geändert werden SetLength Verfahren.

 var Students: Array von Zeichenfolgen; 

Erstellt ein eindimensionales dynamisches Array von Zeichenfolgen. Die Deklaration reserviert keinen Speicher für Studenten. Um das Array im Speicher zu erstellen, rufen wir die SetLength-Prozedur auf. Zum Beispiel angesichts der obigen Erklärung,

 SetLength (Studenten, 14); 

Ordnet ein Array von 14 Zeichenfolgen zu, die mit 0 bis 13 indiziert sind. Dynamische Arrays sind immer ganzzahlig indiziert und beginnen immer von 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 Double;
Start
SetLength (Matrix, 10, 20)
Ende;

Hiermit wird Platz für ein zweidimensionales 10 x 20-Array von doppelten Gleitkommawerten zugewiesen.

Um den Speicherplatz eines dynamischen Arrays zu entfernen, weisen Sie der Arrayvariablen null zu, z.

 Matrix: = null; 

Sehr oft weiß Ihr Programm zur Kompilierungszeit nicht, wie viele Elemente benötigt werden. Diese Nummer wird erst zur Laufzeit bekannt. Mit 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. Dies ist einer der Hauptvorteile dynamischer Arrays.

Im nächsten Beispiel wird ein Array mit ganzzahligen Werten erstellt und anschließend die Kopierfunktion aufgerufen, um die Größe des Arrays zu ändern.

 var
Vektor: Array von Integer;
k: ganze Zahl;
Start
SetLength (Vector, 10);
für k: = Niedrig (Vektor) bis Hoch (Vektor) tun
Vektor [k]: = i * 10;
...
// Jetzt brauchen wir mehr Platz
SetLength (Vector, 20);
// hier kann das Vektorarray bis zu 20 Elemente enthalten // (es hat bereits 10 davon) end;

Die SetLength-Funktion erstellt ein größeres (oder kleineres) Array und kopiert die vorhandenen Werte in das neues Array. Die Funktionen "Niedrig" und "Hoch" stellen sicher, dass Sie auf jedes Array-Element zugreifen können, ohne in Ihrem Code nach den richtigen Werten für den unteren und oberen Index zu suchen.

instagram story viewer