Arrays
Es werden ein-, zwei-, und dreidimensionale Felder (Arrays) von elementaren Datentypen unterstützt. Arrays können im Deklarationsteil eines Bausteins und in den globalen Variablenlisten definiert werden.
Syntax:
<Feld_Name>:ARRAY
[<ug1>..<og1>,<ug2>..<og2>] OF <elem.
Typ>
ug1, ug2 geben die untere Grenze des Feldbereichs an, og1, og2 die obere Grenze. Die Grenzwerte müssen ganzzahlig sein.
Beispiel:
Kartenspiel : ARRAY [1..13, 1..4] OF INT;
Initialisierung von Arrays
Entweder werden alle Elemente eines Array initialisiert oder keines.
Beispiele für Initialisierungen von Arrays:
arr1 : ARRAY [1..5] OF INT := 1,2,3,4,5;
arr2 : ARRAY [1..2,3..4] OF INT := 1,3(7); (* kurz für 1,7,7,7
*)
arr3 : ARRAY [1..2,2..3,3..4] OF INT := 2(0),4(4),2,3; (* kurz für
0,0,4,4,4,4,2,3 *)
Beispiel für die Initialisierung eines Arrays einer Struktur:
TYPE STRUCT1
STRUCT
p1:int;
p2:int;
p3:dword;
END_STRUCT
arr1 : ARRAY[1..3] OF STRUCT1:=[(p1:=1,p2:=10,p3:=4723),(p1:=2,p2=0,p3:=299),(p1:=14,p2:=5,p3:=112)];
Beispiel für eine teilweise Initialisierung eines Arrays:
arr1 : ARRAY [1..10] OF INT := 1,2;
Elemente, für die kein Wert vorgegeben wird, werden mit dem Default-Initialwert des Basistypen initialisiert. Im obigen Beispiel werden also die Elemente arr1[3] bis arr1[10] mit 0 initialisiert.
Auf Komponenten von Arrays greift man bei einem zweidimensionalen Feld mit folgender Syntax zu:
<Feld_Name>[Index1,Index2]
Beispiel:
Kartenspiel[9,2]
Wenn Sie in Ihrem Projekt eine Funktion mit Namen CheckBounds definieren, können Sie damit Bereichsüberschreitungen bei Arrays automatisch überprüfen! Der Name der Funktion ist festgelegt und darf nur diese Bezeichnung besitzen. |