Startseite | Serie 3 a / c / mx

Teil 1 - OPL für Anfänger

Teil 1 - OPL für Anfänger

Allgemeines

Dieser Kurs ist angelehnt (und großteils Übernommen) von Steve Litchfield

Dieser Kurs ist für absolute OPL-Anfänger gedacht. Da es jedoch meines Erachtens nach nicht viel Sinn macht, Befehle zu lernen ohne eine Anwendung zu haben, werden wir hier ein Programm Schritt für Schritt entwickeln. Für den Anfang ist es auch übertrieben DOOM für den S5 zu entwerfen, so das wir uns etwas einfacherem zuwenden.

Es wird ein Programm entworfen, mit dem Zufallszahlen für das Lottospiel vom Psion vorgeschlagen werden. Als erstes muß nun also eine leere Programmdatei erzeugt werden. Dazu muß einfach in der rechten Symbolleiste das Feld "Neue Datei" angetippt werden. Als Name vergeben wir "Lotto" und bei Programm muß "Programm" selektiert werden. Sind diese Eingaben komplett, so kann die "Enter" Taste betätigt werden. 

Jetzt sollte folgendes Bild zu sehen sein:

K0101 Display

Ab jetzt können wir in die Programmierung unseres Zwerges eintauchen........

OPL ist eine sehr einfache Sprache, die prozedural zu programmieren ist. Jede Prozedur sollte einen möglichst bezeichnenden Namen bekommen. In unseren ersten Gehversuchen werden wir nur mit einer Prozedur arbeiten, der wir den Namen "Lotto" geben. Der Name muß vor dem Doppelpunkt eingesetzt werden. Eine Prozedur beginnt immer mit dem Befehl PROC und endet mit dem Befehl ENDP.

Als erstes werden wir folgende Zeile in unser Programm eingeben:

RANDOMIZE MINUTE + SECOND

Diese Programmzeile initialisiert den Zufallsgenerator. Das ist nur dazu nötig, das vom Programm nicht immer die gleichen "Zufallszahlen" geliefert werden. Da die Uhrzeit jedesmal ein bischen anders ist, bekommen wir so die gewünschten Zahlen. Ach ja, die Groß- und Kleinschreibung spielt beim Programmieren keine Rolle. Es sollte jedoch der Übersichtlichkeit halber eine konvention eingehalten werden. Hier bei uns ist dies folgende: Eigene Variablen werden klein geschrieben, alle Befehle und Systemvariablen groß.

Nach Eingabe der obigen Zeile sollte folgendes auf dem Psion zu sehen sein:

K0102 Display

[In den Geräten mit der ROM Version 1.00 (Serie5) war ein Fehler in der Erzeugung der Zufallsnummern vorhanden. Es wurde immer die selbe Zufallsnummer erzeugt. Also unbedingt upgraden!]

Jetzt ist der Zufallsgenerator initialisiert, wir werden also versuchen dem Psion ein paar Zufallszahlen zu entlocken. Das wird mit folgenden Programmzeilen bewerkstelligt:

PRINT RND
GET

Die Print Anweisung ist dazu da, Informationen auf dem Bildschirm auszudrucken. Es ist eine sehr einfache Anweisung mit der Variablen oder feste Texte ausgegeben werden können. Die Anweisung "PRINT "HALLO WELT" " druckt die Worte "Hallo Welt" aus. Texte müssen immer in Anführungszeichen gesetzt werden! So ist es z.B. möglich unserem Programm eine Überschrift auszudrucken. (Kleine eingeschobene Übungsaufgabe)
Die Anweisung "PRINT 30+40" druckt "70" aus. Es können also auch Berechnungen (Funktionen) hinter der Printanweisung stehen.

Die Funktion RND erzeugt eine Zufallszahl, die also mit dem vorangestellten Printbefehl ausgedruckt wird.

Die Funktion GET wird dazu benötigt, das der Psion am Ende auf einen Tastendruck wartet. Wenn dieser Befehl weggelassen wird, so wird die Zufallszahl nur schnell ausgedruckt, und das Programm danach verlassen. In diesem Falle werden wir die Zufallszahl wohl nicht lesen können.....

Jetzt muß folgendes Bild zu sehen sein (abgesehen von der Uhrzeit....):

K0103 Display

Jetzt kommt der spannende Moment! Arbeitet das Programm, oder sind hier noch irgendwelche Fehler vorhanden.....
Als erstes müssen wir unser Programm Compilieren (Übersetzen). Der Psion versteht den Text wie wir ihn eingegeben haben nämlich leider nicht. Er braucht seine internen Befehle. Die Übersetzung wird gestartet indem auf der Symbolleiste die Taste "Übers" angetippt wird.
Bei diesem kurzem Programm wird die Übersetzung keine Sekunde benötigen. Wenn das Programm ordnungsgemäß eingegeben wurde, so ist jetzt folgendes Bild zu sehen:

K0104 Display

Wenn nicht, so gibt es irgendwo noch einen Tippfehler......

Ansonsten muß jetzt die Taste "J" gedrückt werden um das Programm zu starten. Jetzt ist eine Zahl in sehr kleiner Schrift auf dem Display zu sehen. Die Zahl ist normalerweise eine sehr lange Zahl wie z.B. "0,45003423". Also das absolute Optimum für einen Vorschlag zum Mittwochslotto.

Das ist jedoch kein Problem. Der Zufallszahlengenerator liefert immer eine Zahl zwischen 0 und 1. Er ist jedoch immer kleiner als 1! Somit können wir diese Zahl also mit 49 multiplizieren und bekommen so ein Ergebnis zwischen 0 und 48,9999. Jetzt zählen wir noch 1 dazu und schneiden die Nachkommastellen ab. Mit dieser einfachen Formel ist es möglich sich seinen eigenen Bereich zu definieren.
Der Befehl um obiges zu erreiche lautet wie folgt:

PRINT INT(RND*50)+1

RND*50 multipliziert den Zufallswert mit 50. Das Symbol "*" ist also das Malzeichen. Der Befehl INT( ) schneidet bei dem Wert der in der Klammer steht (oder errechnet wird) die Nachkommastellen ab. Am Ende zählen wir Eins zum Ergebnis dazu. Die alte Zeile mit der PRINT Anweisung muß also mit der neuen überschrieben werden.

Nach der anschließenden Übersetzung ist auf dem Display folgendes zu sehen:

K0105 Display

Nach drücken der "J" Taste bekommen wir unsere Zahl zwischen 1 und 49!

 

Das nächste Kapitel unserer Programmiereinführung wird auf dem heutigen Programm aufbauen und sich unter anderem mit Schleifen befassen. Ferner werden wir mit Kommentaren das Programm lesbarer gestalten!