Arrays
- Aktualisiert2026-07-22
- 4 Minute(n) Lesezeit
Verwenden Sie den Datentyp array, um eine Reihe von Zahlen- oder Textwerten zusammen zu speichern. Alle Elemente in einem Array haben denselben Datentyp.
Definieren Sie Arrays nach folgendem Muster:
type [] identifier
Verwenden Sie einen der folgenden Typen als Datentyp:
Definitionsoptionen
| Datentyp | Global | Lokal |
|---|---|---|
| int32[] | ✔ | ✔ |
| int16[] | — | ✔ |
| int8[] | — | ✔ |
| uint32[] | — | ✔ |
| uint16[] | — | ✔ |
| uint8[] | — | ✔ |
| real64[] | ✔ | ✔ |
| real32[] | — | ✔ |
| text | — | ✔ |
Definieren globaler Arrays
Wenn Sie eine globale Array-Variable in PAscript definieren möchten, geben Sie den Datentyp int32[] oder real64[] in einen section globals-Codeblock ein. Geben Sie dann den Variablennamen ein.
Beispiel
program
section globals
int32[] intArray // int32 array
real64[] realArray // real64 array
endsection
intArray[0] = 1
realArray[0] = 1.2
endprogramDefinieren lokaler Arrays
Definieren Sie lokale Arrays nach folgendem Muster:
type[size] identifier [=initialization]
Definieren von Array-Dimensionen
Wählen Sie eine Dimension, zwei Dimensionen oder drei Dimensionen für die Array-Form aus.
type[n] identifier // Array with n elements type[m,n] identifier // Array with m rows and n columns type[p,m,n] identifier // Array with p pages, m rows and n columns
In diesem Fall ist die Initialisierung optional. Wenn nicht initialisiert, werden die Elemente im Array auf 0 oder den leeren String "" gesetzt.
Initialisieren von Arrays
Die Initialisierung von Arrays ist optional.
Arrays werden nach folgenden Regeln initialisiert:
- Werte in einer Spalte werden durch ein Komma (,) getrennt
- Werte in Zeilen sind durch ein Semikolon (;) getrennt
- Elemente einer Seite sind durch eckige Klammern ([ ]) getrennt
type[n] identifier = [Element_1, ... element_n]
type[m,n] identifier = [Element_11, ... element_1n;
Element_21, ... element_2n;
...
Element_m1, ... element_mn]
type[p,m,n] identifier = [Element_111, ... element_11n;
Element_121, ... element_12n;
...
Element_1m1, ... element_1mn]
[...]
[Element_p11, ... element_p1n;
Element_p21, ... element_p2n;
...
Element_pm1, ... element_pmn]
- Wenn Sie die Arrays initialisieren, ist die Angabe der Array-Dimensionen optional.
- Bei der Initialisierung von Typdimensionen und Arrays muss Folgendes übereinstimmen:
- Zeile
- Spalte
- Seitenzahl
- Die Spaltenanzahl pro Zeile darf nicht variieren.
- Die Zeilenanzahl pro Seite darf nicht variieren.
Beispiel
program
section globals
...
endsection
int32[2] array1 // empty integer array with two elements
int32[2,3] array2 = [ 1,2,2; 4,5,6 ] // integer array with two rows and three columns
int32[2,2,2] array3 = [ 1,2; 3,4] [5,6; 7,8] //integer array with two pages, two rows, and two columns
...
endprogram
Zugriff auf ein Array-Element
Greifen Sie auf ein Array-Element mit eckigen Klammern [] und dem relevanten Index für die entsprechende Spalte, Zeile und Seite zu.
Beispiel 1: Lesen und Schreiben von Arrays
program int32 value int32[2,3] array2 = [1,2,3; 4,5,6] // integer array with two rows and three columns int23[2,2,2] array3 = [1,2; 3,4][5,6; 7,8] // integer array with two pages, two rows, and two columns value = array2[0,2]; // accesses element in first row, thrid column; value is now 3 value = array2[0,1,1]; // accesses element in first page, second row, second column; value is now 4 array3[0,1,1] = 10; // array3 is now [1,2; 3,10][5,6; 7,8] endprogram
Sie können kleinere Dimensionen verwenden, als für das Array definiert wurden. Sie müssen nicht alle Indizes angeben. Die Indizes umfassen Seitenindex, Zeilenindex und Spaltenindex. Sie können beispielsweise nur den Spaltenindex angeben. Sie können auch nur den Spalten- und den Zeilenindex angeben. In diesem Fall wird 0 für die undefinierten Indizes verwendet.
Beispiel 2: Lesen und Schreiben von Arrays
program int32 value int32[2,3] array2 = [1,2,3; 4,5,6] // integer array with two rows and three columns int23[2,2,2] array3 = [1,2; 3,4][5,6; 7,8] // integer array with two pages, two rows, and two columns value = array2[2] // row index is implied as 0; accesses element in first row, third column; value is now 3 value = array3[1,0]; // page index is implied as 0; accesses element in first page, second row, first column; value is now 4 value = array3[1]; // page and row index are implied as 0; access element in first page, first row, second column; value is now 2 array2[2] = 10; // row index is implied as 0; accesses element in first row, third column; array2 is now [1,2,10; 4,5,6] endprogram
Kopieren von Arrays
Mit der Typfunktion :copyFrom() können Sie den Inhalt eines Arrays in ein anderes Array kopieren.
Die Dimensionen des Zielsystems passen sich an die Dimensionen der Quelle an.
Eine nachträgliche Änderung der Dimension oder des Werts in einem Array hat keine Auswirkung auf die Dimension oder den Wert im anderen Array.
Beispiel: Kopieren von Arrays
int32[2,2] target=[9,8;7,6] int32[3] source=[1,2,3] target:copyFrom(source) // target is now a 1x3 array with values [1,2,3]
Referenzieren von Arrays
Der Operator = veranlasst das Ziel-Array, das Quell-Array zu referenzieren.
Die Dimension des Zielsystems passt sich an die Dimension der Quelle an.
Eine nachträgliche Änderung der Dimension oder des Werts in einem Array wirkt sich auf die Dimension oder den Wert im anderen Array aus.
Beispiel: Referenzieren von Arrays
program
int32[2,3] source = [1,2,3; 4,5,6]
int32[2,2,3] target
// copy the array
target = source // target and source now have a shape of [2,3] and a value of [1,2,3; 4,5,6]
source[0,1] = 10 // target and source now have a value of [1,10,3; 4,5,6]
endprogram