VERSCHIEDENE
TECHNIKEN
Programmentwurf
MODIFIZIERTES
PROGRAMM
100
vergl$
die gerade verglichene Farbe
p
zeigt auf die Position, bei der wir testen, ob sie für die Farbe in vergl$ die
richtige ist.
2. Eine FOR-Schleife konzentriert sich nacheinander auf die Positionen 2 bis 8 (ein
Posten ist schon sortiert).
Positionen 2 bis 8 (ein Posten ist schon sortiert).
3. Mit einer REPeat-Schleife werden Vergleiche vorgenommen, bis festliegt, wo der
Wert von vergl$ stehen soll.
REPeat vergleich
IF vergl$ nicht weiter links
EXIT
Eine Farbe in die Position rechts davon kopieren
und p um 1 vermindern
END REPeat vergleich
4. Nachdem die REPeat-Schleife mit EXIT beendet wurde, wird die Farbe in vergl$
in Position p geschrieben und die FOR-Schleife wird fortgesetzt.
1. Deklaration der Tabelle farbe$
2. Einlesen der Farben in die Tabelle
3. FOR posten
2 TO 8
=
LET P
posten
=
LET vergl$
farbe$(p)
=
REPEAT vergleich
>
IF vergl$
farbe$(p-1) : EXIT vergleich
=
LETfarbe$(p)
farbe$(p-1)
=
=
LETp
p-1
END REPeat vergleich
LET farbe$(p)
vergl$
=
END FOR posten
4. PRINTsortierte Tabellefarbe$
5. DATA
Durch weitere Überlegungen wird ein Fehler entdeckt. Er wird problemlos ersicht-
lich, wenn wir Daten eingeben, bei denen der erste Posten nicht von Anfang an in der
richtigen Position steht. Dann wird vom Programm farbe$(o) getestet - ein Tabellen-
element, das wir bisher nicht besetzt haben.
Dies ist ein wohlbekanntes
besten dadurch gelöst, indem das Ende der Tabelle gekennzeichnet wird. Direkt vor
Eintritt in die REPeat-Schleife wird folgender Befehl benötigt:
LET farbe$(O)
vergL$
=
Glücklicherweise
läßt SuperBASIC Null-Indizes zu, ansonsten hätte das Problem
auf Kosten der Lesbarkeit gelöst werden müssen.
100 REMark Einsortieren
110 DIM fa rbe$ (8,7)
120 FOR posten
=
=
130 FOR posten
140
LET P
posten
=
=
150
LET vergL$
160
LET farbe$(O)
170
REPeat
vergLeich
180
IF vergL$
190
LET farbe$(p)
=
200
LET P
P - 1
210
END REPeat
220
LET farbe$(p)
230 END FOR posten
240 PRINT "Sortiert.
250 DATA "Schwarz",
260 DATA "Grün",
Problem beim Arbeiten mit Computern. Es wird am
1 TO 8 : READ farbe$(posten)
2 TO 8
farbe$(p)
vergL$
=
>= farbe$(p
- 1) : EXIT vergLeich
farbe$(p
- 1)
=
verg Lei ch
=
vergL$
•• "
: PRINT farbe$(1
"BLau",
"Magenta",
"Cyan",
"GeLb",
TO 8)
"Rot"
"Weiß"
3/85