Funktion:
Den Variablen der READ-Anweisung(en) werden Konstanten aus DATA-
Anweisungen als aktueller Wert zugewiesen. Die Zuweisung erfolgt
fortlaufend in der Reihenfolge des Auftretens der READ-Anweisungen und
der Variablennamen in ihnen. Dabei werden die Konstanten der DATA-
Anweisungen in ihrer Folge gemäß aufsteigender Zeilennumerierung zu-
gewiesen.
Hinweis:
Der Typ der Variablen (numerisch oder Zeichenkette) muß mit dem Typ
der ihr zugewiesenen Konstanten aus der DATA-Anweisung überein-
stimmen.
Beispiel:
10 DATA 1065,75, "MEYER, FRITZ"
20 DATA 960,35, "ENDER, SYLVIA"
30 READ M,N$
40 PRINT: PRINT N$;" verdient";M; "MARK": PRINT
Bei Abarbeitung dieses Programms erhalten Sie zunächst auf dem
Bildschirm
MEYER, FRITZ verdient 1065,75 MARK
Geben Sie nun GOTO 30 ein und überprüfen Sie das Ergebnis!
Format:
RESTORE [zeilennummer]
zeilennummer - BASIC-Zeilennummer einer DATA-Anweisung (Standard:
niedrigste Zeilennummer einer DATA-Anweisung)
Funktion:
Die Wertzuweisung für die nächsten READ-Anweisungen erfolgt,
beginnend mit dem ersten Datenelement der DATA-Anweisung, in der
angegebenen BASIC-Zeile bzw. der ersten
Programm.
Beispiel:
Vielleicht haben Sie beim vorigen Beispiel ein zweites Mal versucht, das
Programm mit GOTO 30 fortzusetzen und einen OD-Fehler erhalten, da
keine weiteren Daten verfügbar waren.
70
In diesem Falle hätte
oder einfach
genügt, um mit
erneut beginnen zu können.
Was passiert, wenn sie
eingeben, bevor Sie mit
oder [RUN] fortsetzen?
Wenden Sie sich nun noch einmal dem Beispiel aus Abschnitt 4.8 zu.
Angenommen, Sie wollen die „Personaldaten" gemeinsam mit Ihrem
Programm speichern und nicht vor jeder „Re- cherche" neu eingeben.
Dann ersetzen Sie, wie im folgenden Programm gezeigt, die INPUT-
Dateneingabe durch DATA-Anweisungen, deren Daten Sie mittels READ
einlesen.
DATA-Anweisung
im
";PRINT:
RESTORE 10
RESTORE
GOTO 20
RESTORE 20
GOTO 30
10 DATA 8 :!ANZAHL PERSONEN
20 READ N :! EINLESEN PERSONENANZAHL
30 DIM NAME$(N-1,1),ALTER(N-1)
40 ! EINLESEN DATEN
50 FOR I=0 TO N-1
60 READ NAME$(I,0),NAME$(I,1),ALTER(I)
70 NEXT I
80 ! AUSWERTUNG DATEN
90 INPUT "ALTERSGRENZE?";AG
100 IF AG<1 THEN BEEP: GOTO 90
110
PRINT
"AELTER
KP=0
120 FOR I=0 TO N-1
130 IF ALTER(I)>AG THEN PRINT NAME$(I,1);" ";
NAME$(I,0):KP=1
140 NEXT I
150 IF KP=0 THEN PRINT "KEINE PERSONEN"
ALS";AG;
"JAHRE
SIND:
71