Kurs starten

**** DIM ****

DIM: Felder und Arrays

DIM legt ein Feld an: viele Werte unter einem Namen, angesprochen über eine Nummer in Klammern.

Schreibweise

FormBedeutung
DIM A(10)Feld mit den Plätzen A(0) bis A(10).
DIM N$(20)Feld für Text.
DIM A(5),B(3)Mehrere Felder auf einmal anlegen.
DIM A(3,4)Zweidimensional, wie eine Tabelle.

Warum Felder praktisch sind

Ohne Felder bräuchte man für zehn Werte zehn Variablennamen. Mit einem Feld genügt ein Name, und die Nummer in Klammern, der Index, wählt den Platz aus. Der grosse Vorteil: Der Index darf eine Variable sein, also kann eine Schleife das ganze Feld durchlaufen.

Feld füllen und auslesen 10 DIM A(5) 20 FOR I=1 TO 5 30 A(I)=I*I 40 NEXT 50 PRINT "A(3) IST";A(3) A(3) IST 9

Die Schleife legt in jeden Platz das Quadrat seiner Nummer.

Das Feld als Zähler

Ein häufiges Muster: Der Index steht für ein Ereignis, der Inhalt zählt, wie oft es eingetreten ist. Bei einem Würfel entspricht Platz 1 der Augenzahl 1 und so weiter.

Würfel-Statistik 10 DIM Z(6) 20 FOR I=1 TO 60 30 W=INT(RND(1)*6)+1 40 Z(W)=Z(W)+1 50 NEXT 60 FOR S=1 TO 6 70 PRINT S,Z(S) 80 NEXT

Nach 60 Würfen zeigt die Tabelle, wie oft jede Augenzahl fiel. Die Summe ergibt 60.

Platz 0 gibt es auch

DIM A(5) legt sechs Plätze an: A(0) bis A(5). Das überrascht oft. In der Praxis lässt man A(0) meist ungenutzt und zählt ab 1, weil sich das natürlicher liest.

Zwei Dimensionen

Mit zwei Zahlen in Klammern entsteht eine Tabelle: DIM S(3,4) hat Zeilen und Spalten. Angesprochen wird ein Platz mit S(2,3). Das eignet sich für Spielfelder und Matrizen.

Typische Stolperfallen

Index ausserhalb des Feldes

Ein Zugriff auf einen Platz, den es nicht gibt, meldet ?BAD SUBSCRIPT ERROR. Prüfe die Obergrenze in der Schleife.

DIM vergessen

Ohne DIM legt BASIC beim ersten Zugriff automatisch ein Feld mit elf Plätzen an, also 0 bis 10. Wer mehr braucht, muss DIM benutzen.

Feld zweimal anlegen

Ein Feld darf nur einmal dimensioniert werden. Steht das DIM versehentlich in einer Schleife, ist das ein Fehler.

Passt dazu

Im Kurs lernst du DIM in Lektion 17: DIM: ein Feld anlegen. Die vollständige Referenz aller Befehle steht im Befehls-Lexikon.

HAEUFIGE FRAGEN

Fragen zu DIM

Wie gross darf ein Feld sein?

Begrenzt wird es nur vom freien Speicher. Auf dem echten C64 waren das knapp 39 Kilobyte für Programm und Daten zusammen, also einige tausend Zahlen.

Wie lösche ich ein Feld wieder?

Mit CLR. Das löscht allerdings alle Variablen und Felder auf einmal.

Gleich selbst ausprobieren

Tippe die Beispiele in den freien Editor und sieh dir an, was passiert.

Freien Editor oeffnen →