a) Anweisung zum Festlegen von Feld-Dimensionen und zum Reservieren von Speicherplatz.
b) Funktion zur *bergabe von Informationen über ein Feld (array).
Syntax:
DIM dim-Teil[,dim-Teil], usw.
wobei
dim-Teil folgendes ist:
a) 1)
Bezeichner[
% oder
$]
(Ausdruck[
,Ausdruck] usw.
oder
2)
num-Variable Leerzeichen Ausdruck
oder als eine Funktion:
b) 3)
DIM (Feld)
4)
DIM (Feld,Ausdruck)
Argument: a) 1) Der
Bezeichner kann jeder beliebige Name einer reellen, ganzzahligen oder String-Variablen sein. Die Ausdrücke sind Ganzzahlen, die größer oder gleich Null sein müssen. Sie definieren die obere Grenze der Indexzahlen; die untere Grenze ist immer 0. Die DIMensionierung dient in BASIC zum Erklären von Feldern (Tabellen, arrays). Felder können mehrere Dimensionen aufweisen; die obere Grenze ist lediglich eine Frage des verfügbaren Speicherplatzes. Die Elemente von numerischen Tabellen werden mit Anfangswerten von Null versehen, die Elemente von String-Tabellen mit null-Strings.
2) Die
num.-Variable ist ein beliebiger ganzzahliger oder reeller Name. Der
Ausdruck gibt die Anzahl Byte des erforderlichen Speicherplatzes minus eins und sollte -1 oder größer sein. Die einzige Beschränkung ist durch den Speicherplatz auferlegt. Der Zweck dieser Form von DIM ist es, im Speicher eine bestimmte Anzahl von Bytes zu reservieren, um dort z.B. Maschienencode abzulegen. Die Adresse des ersten reservierten Byte (ein Mehrfaches von 4) wird in die
num.-Variable übergeben. Das Byte-array ist nicht initialisiert.
b) 3) Das
Feld ist der Name eines vorher DIMensionierten oder vorher als formaler Parameter in einer Prozedur oder Funktion verwendeten Feldes. Das Ergebnis der Funktion ist die Anzahl der Dimensionen des Feldes.
4) Das
Feld ist der Name eines vorher DIMensionierten oder vorher als formaler Parameter in einer Prozedur oder Funktion verwendeten Feldes. Der
Ausdruck ist eine Zahl zwischen 1 und der Anzahl der Felddimensionen. Das Ergebnis der Funktion ist eine Indexzahl des höchsten Elements dieser Dimension, d.h. des Wertes, der für die Indexzahl in der ursprünglichen DIM Anweisung verwendet wurde.
Hinweis: Es ist möglich, lokale Felder zu haben, deren Inhalt geleert wird, sobald die Prozedur oder Funktion, in der sie definiert werden, zurückspringt. Siehe unter
LOCAL.
Beispiele:
DIM name$(num_names%)
DIM sin(90)
DIM matrix%(4,4)
DIM A(64), A%(12,4), C$(2,8,3)
DIM bytes% size*10+overhead
PRINT DIM(name$())
PRINT DIM(name$(),1)