Prgm
Local a, i, j, nz ClrIO For i, 1, 6 false ® nz While nz = false rand(45) ® a[ i ] true ® nz For j, 1, i - 1 If a[ i ] = a[ j ] false ® nz EndFor EndWhile EndFor Disp a EndPrgm |
Selbstverständlich gelten alle Verschachtelungsvarianten auch für die Loop-Schleife. |
Weiters erkennt man, dass die sechs Zufallszahlen, die das Programm berechnet, auf einer einzelnen Variablen mit dem Namen a gespeichert werden. Diesen Variablentyp, auf dem mehrere Werte gleichen Typs gespeichert werden können, bezeichnet man zumeist als Feldvariable. Am TI-92 steht dafür der Variablentyp "Liste" zur Verfügung. Wie man anhand des obigen Beispiels erkennt, kann dieser Variablentyp besonders elegant innerhalb einer Schleife mit Werten belegt werden. Zum besseren Verständnis kann man sich diesen Datentyp in Form einer Tabelle vorstellen, deren Zellen von oben nach unten durchnummeriert sind und nach der Belegung mit Zufallszahlen folgendes Aussehen haben könnte:
Die Wertzuweisung der einzelnen Zellen im vorliegenden Programm erfolgt
mit dem Befehl
Der Zugriff auf einzelne Listenelemente erfolgt durch den Variablennamen
mit anschließender eckiger Klammer, die die Platznummer des Listenelements
enthält. Will man also beispielsweise die 4.Zelle mit dem Wert 33
belegen, verwendet man den Befehl
Die WHILE-Schleife und die darin enthaltene FOR-Schleife stellen sicher, dass in der Liste keine Zufallszahl mehrfach auftreten kann. Dabei wird zunächst die Boolean-Variable nz (= Neue Zahl) auf false gesetzt und dann die WHILE-Schleife solange wiederholt, bis nz den Wert true hat. Dafür wird innerhalb der WHILE-Schleife die Varible nz nach dem Erzeugen einer neuen Zufallszahl auf true gesetzt und anschließend die neue Zufallszahl mit den bereits erzeugten Zufallszahlen innerhalb der (blauen) FOR-Schleife verglichen. Tritt eine Übereinstimmung der neuen Zufallszahl mit einem bereits vorhanden Listenelement auf, wird nz wieder auf false gesetzt und das Erzeugen einer neuen Zufallszahl beginnt von vorne.
[Lösungsvorschlag] |
|