Teil 2 - OPL für Anfänger
Kommentare und Schleifen, oder wie wird eine reale Anwendung erstellt.
Im
ersten Teil haben wir gelernt wie eine Zufallszahl zwischen 1 und 49 erzeugt
wird. Jedoch benötigen wir im normalen Lotto 6 Zahlen, und es ist kein
guter Weg das Programm so oft aufzurufen. Heute werden wir lernen, wie
eine solche Anwendung erstellt wird, und vor allem auch noch nach einiger
Zeit zu lesen ist.
Im letzten Kapitel war das unser Ergebnis:
Nun,
wir können nun natürlich einen sehr einfachen Weg gehen, wir kopieren
die "PRINT" Anweisung sechs mal. Funktioniert prima! Somit ist
die Anwendung also fertiggestellt.
Aber
was ist wenn wir die Zahl 100 mal oder gar 1000 mal benötigen? Mit der
Kopiermethode sind wir natürlich nicht unbedingt elegant, und verschwenden
auch ein wenig Speicher. Aber es gibt ja Schleifen, und diese wollen wir
einsetzen.
In
OPL gibt es einige Schleifenarten, hier werden wir uns mit der "WHILE"
Anweisung beschäftigen. Aber zuerst ein paar Worte zur Logik:
Setze
einen Zähler auf 1
Während
der Zähler kleiner oder gleich 6
Erzeuge
eine Zufallszahl und drucke Sie aus
Addiere
1 zum Zähler
Gehe
zurück zu Schleifenanfang und prüfe erneut die Bedingung
Die
obige Beschreibung muß verstanden werden! Das ist die Basis für jegliches
Verständnis in der Programmierung (nicht nur in OPL). Gegebenenfalls sollte
man ruhig einige Zeit mit der Beschreibung verbringen.
Der
erste Schritt ist die Erstellung eines Zählers. Dieser wird hier i% genannt.
Warum? Alle Computer Programm benötigen diese Zähler, und es sind eigentlich
Variablen. In Variablen können Informationen gespeichert werden. In OPL
gibt es drei Arten von Variablen:
-
'Integer' Variablen (Ganze Zahlen, so wie unser Zähler im Programm),
mit
einem "%" hinter dem Bezeichner
-
'Floating point' Variablen (Real Zahlen wie z.B.: 2.5983 oder 0.0290565)
-
'String' Variablen (Zeichen/ketten wie z.B.: "Hallo Welt"),
mit einem "$"
hinter
dem Bezeichner
So
ist "i%" eine Integer-Variable, "Wert" ist eine Floating-Point(Fließkomma)-Variable
und "Name$" ist ein String. Hier werden wir das "i%"
benutzen. Dieser Buchstabe ist für solche Zwecke durchaus gebräuchlich,
und schnell zu schreiben :))
So fügen wir also vor der Zeile "RANDOMIZE" folgendes ein:
LOCAL
i%
Danach sollten auf dem Display folgendes zu sehen sein:
Das
Wort Local bedeutet, das diese Variable nur innerhalb der Funktion gilt,
in unserem Fall besteht das ganze Programm jedoch nur aus einer Funktion
(Lotto).
Aber nun fügen wir die Befehle für die Schleife ein. Nach der Zeile "RANDOMIZE"
wird folgendes eingefügt:
i%=1
WHILE
i%<=6
Nach der "PRINT" Anweisung muß folgendes eingefügt werden:
i%=i%+1
ENDWH
Das
sind nun schon einige Änderungen. Die Zeilen sollten so eingerückt sein,
wie auf dem Bildschirmbild zu sehen. Das Programm funktioniert natürlich
auch ohne jede Einrückung, aber es ist bei weitem nicht so gut lesbar.
Gerade bei größeren Projekten ist die Lesbarkeit jedoch äußerst wichtig!
Das Display sollte wie folgt aussehen:
Nun
ist zu erkennen, das wir die oben beschriebene Schleife eingefügt haben.
Der Zähler startet mit dem Wert 1 und wird mit jedem Schleifendurchlauf
(WHILE.....ENDWH) um eins erhöht. Das geschieht solange, wie die Bedingung
erfüllt ist. Ist die Bedingung nicht erfüllt (in unserem Fall bei 7) verläßt
das Programm die Schleife und macht bei "GET" weiter.
Nachdem
wir unseren Code (hoffentlich) verstanden haben, ist es Zeit das Programm
zu starten. Nach dem Start sollte ähnliches zu sehen sein:
Hier
haben wir sechs Zufallszahlen. Mit unserem Programm sind wir noch lange
nicht fertig, da natürlich einige Nummern doppelt sein können (Wie im
Beispiel deutlich zu erkennen). Doch das ist ein Thema für ein anderes
Kapitel.
Nachdem
die Zahlen auf dem Display stehen, kommen wir zum Programm zurück, nachdem
eine Taste gedrückt wird.
So,
nun machen wir das Programm ein wenig "lesbarer". Denn ein Programm
(vor allem ein größeres) hat den Nachteil, das man schon nach kurzer Zeit
nicht mehr weiß wo was geschieht......
Hier
gibt es im allgemeinen zwei Verschiedene Sorten von Programmierern, solche
die jede Zeile mit Kommentaren versehen, am Anfang jeder Prozedur alles
bis in letzte Detail beschreiben, und solche die nichts tun.
Wir
sollten also ein vernünftiges Mittelmaß finden. Es sollten alle Details
beschrieben werden die wir als wichtig für das spätere Verständnis empfinden.
Natürlich kann am Anfang des Programmes auch das Alter, die Adresse, die
Augenfarbe, Name der Freundin ...... angegeben werden, wir gehen in unserem
Projekt jedoch einen anderen Weg:
Zum Beispiel beschreiben wir die Variable i%:
LOCAL
i% rem Zählervariable für die Schleife
Der
Befehl "rem" bewirkt, das OPL dahinter nicht mehr nach Befehlen
sucht. Mann kann also seine Kommentare immer hinter dem Befehl: "rem"
unterbringen! Genauso sollte man mit Leerzeilen arbeiten um Programmteile
zu trennen. In unserem Beispiel die Variablendeklaration, dann Initialisierung
und schließlich Hauptprogramm! Um dieses zu erreichen fügen wir Leerzeilen
nach den Befehlen: "RANDOMIZE" und "PRINT" ein. Ferner
ergänzen wir die Folgende Zeile mit einem Kommentar:
PRINT
INT(RND*49)+1 rem Addiere 1 um die Zahl zwischen 1 und 49 zu erhalten
Jetzt sollte das Display folgendermaßen aussehen:
Das
nächste Kapitel unserer Programmiereinführung wird auf dem heutigen Programm
aufbauen und sich unter anderem mit Überschriften und Feldern beschäftigen.
< Zurück | Weiter > |
---|