PC/GEOS auf dem Mac R-Basic GEOS-PCs Dateien GeoStream

Erste Schritte in R-Basic

... von Rainer Bettsteller

Einführung

Dieses Tutorial ist als Schnelleinstieg in R-BASIC konzipiert. Es basiert auf dem Anfänger-Tutorial von www.qbasicstation.com und wurde an die Besonderheiten von R-BASIC angepasst. Um die Beispiele des Tutorials nachvollziehen zu können, sollten Sie ein neues Dokument als "Klassisches BASIC Programm" geöffnet haben. Alles was in diesem Tutorial beschrieben wird, ist auch für "Objekt BASIC" Programme anwendbar. Rainer Bettsteller

Ein R-BASIC Programm wird in drei Schritten geschrieben:

  • Schreiben Sie den Programm-Code. Unten finden Sie ein paar Beispiele.

  • Compilieren Sie das Programm. Das kann man mit der Taste F8 bzw. mit dem Menüpunkt "Compilieren" aus dem Programm-Menü.

  • Starten Sie das Programm. Das kann man mit der Taste F9 bzw. mit dem Menüpunkt "Programm Starten" aus dem Programm-Menü. Wenn R-BASIC feststellt, das das Programm vorher compiliert werden muss, tut es dies.

Kommando: PRINT

PRINT kann auf verschieden Art und Weise benutzt werden. Wenn Sie PRINT ohne Parameter benutzen, wird der Cursor (d.h. die nächste Ausgabeposition für Text) einfach an den Anfang der nächsten Zeile gesetzt. Um das Wort R-BASIC auf den Schirm zu bringen, müssen Sie in Ihrem Programm nur PRINT "R-BASIC" schreiben. Einfach, oder? Zahlen können auf zwei verschiedenen Wegen ausgegeben werden. Der erste ist PRINT "2000". Der zweite ist PRINT 2000. Im ersten Fall wird 2000 als Text ausgegeben, im zweiten als Zahl. Die Ausgaben von einfachen Zahlen auf diese Weise kommt nicht sehr oft vor, häufiger werden Werte ausgegeben, die Variablen zugewiesen wurden. Mehr über die Verwendung von Variablen erfahren Sie unten.

   PRINT "Beispiele für das PRINT Kommando"
   PRINT
   PRINT "Es ist wunderbar!"
   PRINT 2000
   PRINT "Die Zahl lautet: "; 2000

Drücken Sie F9 um das Programm zu compilieren und zu starten.

Ausgabe:
   Beispiele für das PRINT Kommando

   Es ist wunderbar!
   2000
   Die Zahl lautet: 2000

Kommandos: CLS, PAUSE

Manchmal hat man den ganzen Bildschirm voll mit irgendwelchem Text oder Grafik. Um den Bildschirm wieder frei zu bekommen, gibt es ein einfaches Kommando: CLS. CLS steht für "Clear Screen" und ist möglicherweise das einfachste Kommando in R-BASIC. Wenn R-BASIC dieses Kommando ausführt wird der Bilschirm gelöscht und der Cursor nach links oben gesetzt.
Das Kommando PAUSE unterbricht die Programmausführung für eine bestimmte Zeit. Im Beispiel ist es eine Sekunde.

   PRINT "Diese Zeile wird wieder gelöscht"
   PAUSE 10
   CLS
   PRINT "Nur diese Worte bleiben auf dem Schirm."

Ausgabe: (Links oben)
   Diese Zeile wird wieder gelöscht
   (Der Schirm wird nach einer Sekunde gelöscht)
   Nur diese Worte bleiben auf dem Schirm.

Kommando: BEEP

Natürlich kann man mehr als Textausgaben programmieren. Das Kommando BEEP erzeugt einen kurzen Signalton. BEEP ist ein sehr altes Kommando, aber es ist leicht zu erklären. R-BASIC verfügt auch über die Möglichkeit, verschiedene Tonhöhen und Längen auszugeben. Aber das ist Thema für ein anderes Tutorial.

   CLS
   PRINT "Sie höhren einen Ton!"
   BEEP
   PRINT "Cool!"

Ausgabe:
   Sie höhren einen Ton!
   (es piept)
   Cool!

Tool: REM

Bevor wir weitermachen ist es eine gute Idee, eine Weg zu kennen, das Kommentare innerhalb eines Programms ermöglicht, ohne das Programm selbst zu beeinflussen. Dafür gibt es das Kommando REM (Remark, dt.: Anmerkung). Um einen Kommentar einzugeben tippen Sie REM, gefolgt von dem Kommentartext. Alles was in dieser Zeile hinter REM steht, wird von R-BASIC ignoriert. Schauen Sie sich das Beispiel an:

   REM Dieses Programm demonstriert Kommentare mit REM
   PRINT "REM wirkt nicht innerhalb von Anführungsstrichen"
   REM Hier ist eine andere Kommatarzeile
   REM Sie können beliebig viele Kommentare in einem Programm haben

Ausgabe:
   REM wirkt nicht innerhalb von Anführungsstrichen
Das Wort REM kann mit ! (Ausrufungszeichen) der ' (Hochkomma) abgekürzt werden.
   ' Dieses Programm demonstriert Kommentare
   PRINT "Die Zeichen ! und ' wirken genau wie REM"
   ! Hier ist eine andere Kommetarzeile

Ausgabe:
   Die Zeichen ! und ' wirken genau wie REM

Kommando: END

Wenn Sie Ihr Programm anhalten wollen, obwohl noch viele Programmzeilen folgen, können Sie das END Kommando verwenden. END gaukelt R-BASIC vor, dass keine Programmzeilen mehr folgen und R-BASIC kehrt zum Editor zurück. Sie werden das END-Kommando wahrscheinlich nur selten brauchen, aber z.B. bei der Fehlersuche ist es sehr hilfreich.

   REM Das END Kommando hält das Programm an"
   PRINT "Erste Textzeile"
   PRINT "Zweite Textzeile"
   END
   PRINT "Dritte Textzeile"
   PRINT "Die dritte und vierte Zeile werden nicht angezeigt"

Ausgabe:
   Erste Textzeile
   Zweite Textzeile

Kommandos: GOTO, LABEL

Nun kommen wir zum etwas komplexeren Teil von R-BASIC. Das GOTO (gehe zu) Kommando erlaubt es, Programmzeilen in anderer Reihenfolge abzuarbeiten, als sie geschireben wurden. Monentan erscheint das nicht so sehr wichtig, aber Sie werden sehen, dass es sehr wichtig ist. Das GOTO Kommando erfordert ein Sprungziel, eine Stelle, an der die Abarbeitung des Programms fortgesetzt werden soll. In R-BASIC gibt es dafür das Kommando LABEL. Beachten Sie im Beispiel, dass die Labels unabhängig von Groß- und Kleinschreibung sind, so wie auch bei allen BASIC Kommandos nicht zwischen Groß- und Kleinschreibung unterschieden wird.

   PRINT "Textzeile #1"
   GOTO Dest1
   PRINT "Diese Zeile wird übersprungen"
   LABEL Dest1:
   PRINT "Textzeile #2"
   PRINT
   GOTO abcd
   PRINT "R-BASIC führt auch diese Zeile nicht aus"
   LABEL AbcD
   PRINT "Textzeile #3"

Output:
   Textzeile #1
   Textzeile #2

   Textzeile #3

Wie Sie sehen können, kann das Label mit einen Doppelpunkt abgeschlossen werden, er muss aber sein. Die Labels "Dest1" und "abcd" dürfen nur einmal im Programm vorkommen, was aber nicht heist, dass sie nur einmal angesprungen werden dürfen. Sie können so viele GOTO Dest1 Anweisungen in Ihrem Programm haben, wie Sie wollen.

Konzept: Numerische Variablen

Bevor wir weitere Kommandos kennen lernen, müssen wir etwas über Variablen erfahren. Eine Variable in ihrer einfachsten Form ist ein Buchstabe oder ein Wort, das eine Zahl repräsentiert. Diese Zahl wurde der Variablen "zugewiesen". Beispiel für numerische Variablen in R-BASIC sind x, y, num, hjk1, d45. Eine Variable (d.h ihr Name) kann Zifferen enthalten, aber sie muss mit einem Buchstaben beginnen. Auch bei R-BASIC Variablen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Beispielsweise ist x=X und hjk1=hJK1. Wenn einer Variablen eine Zahl zugewiesen wurde, ist diese Variable äquivalent zu dieser Zahl.
In R-BASIC müssen Sie alle Variablen vereinbaren, bevor Sie sie benutzen können. Dazu verwendet man das DIM Kommando.

   REM Syntax für Variablen-Zuweisungen
   DIM x, q, op1
   x = 25
   q = 4
   op1 = 17

   (Dieses Programm gibt nichts aus)

Sobald diese Zeilen ausgeführt wurden, sind die Variablen x, q und op1 äquivalent zu den numerischen Werten 25, 4 bzw. 17. Man sagt, diese Werte wurden den Variablen "zugewiesen". Was können wir nun damit anstellen? Erinnern Sie sich an das PRINT Kommando? Damit kann man die Variablen auf den Schirm ausgeben. Im Beispiel wird den Variablen x und y mit dem = Zeichen Werte zugewiesen und diese Werte dann mit PRINT ausgegeben.

   DIM x, q
   CLS
   x = 25
   q = 4
   PRINT x
   PRINT q

Ausgabe:
   25
   4

Natürlich kann man mit Variabeln auch rechnen. Das Komma in der Argumentliste von RPINT sorgt für eine tabulierte Ausgabe, das Semikolon bewirkt eine Ausgabe direkt hintereinander.

   DIM x, q
   CLS
   x = 25
   q = 4*x
   PRINT x, q
   PRINT q; q * x

Output:
   25                   100
   100  2500

Konzept: String Variablen

Der zweite wichtige Variablentyp sind Stringvariablen, kurz "Strings". String bedeutet soviel wie Schnur oder Faden, in Programmiersprachen ist damit eine Zeichenkette (eine Kette aus einzelnen Buchstaben) gemeint. In Stringvariablen speichert man also Worte oder ganze Sätze. Um sie von numerischen Variablen abzugrenzen, haben sie häufig ein $ (Dollarzeichen) am Ende, z.B. a$ (Sprechweise A-String).

   DIM a$, b$
   CLS
   a$ = "Hallo"
   b$ = "Welt!"
   PRINT a$
   PRINT a$; " " ;b$
   PRINT a$ + " " + b$
   b$ = a$ + " BASIC"
   PRINT b$

Ausgabe:
   Hallo
   Hallo Welt!
   Hallo Welt!
   Hallo BASIC

Wie Sie sehen, kann man Strings mit + verbinden. Zusätzlich gibt eine ganze Reihe von String-Funktionen.

Kommandos: IF. . .THEN. . .ELSE

Die "IF...THEN...ELSE" Kombination bringt Abwechslung in Ihr Programm. IF ist der am häufigsten verwendete Weg, den Programm-Ablauf, d.h. in welcher Reihenfolge die Programmteile abgearbeitet werden, zu beeinflussen. Wenn eine IF..THEN Anweisung abgearbeitet wird, untersucht R-BASIC die Bedingung zwischen IF und THEN, um zu entschieden, welche Programmteile abgearbeitet werden. Schauen Sie sich das folgende Beispiel an:

   IF A = 1 THEN 
     BEEP
     PRINT "OK."
   END IF

Das Kriterium für IF-THEN ist, ob die Variable A den Wert 1 enthält. Ist es erfüllt (d.h. die Variable A enthält den Wert 1), wird der Code zwischen THEN und END IF ausgeführt, dh. das Programm piepst und schreibt OK auf den Bildschirm. Enthält die Variable A einen anderen Wert als 1, dann wird das Programm mit der auf END IF folgenden Anweisung fortgesetzt. Die END IF Anweisung ist auch dann erforderlich, wenn sich nur eine Programmzeile zwischen THEN und END IF befindet.
Nun wollen wir einen Alternativ-Zweig hinzufügen. Dazu verwendet man das ELSE Kommando.

   IF B = 1 THEN 
      BEEP
      PRINT "OK."
    ELSE 
      PRINT "Nächster Durchlauf .."
   END IF

Lassen Sie uns annehmen, dass im obigen Beispiel die Variable B den Wert 3 enthält. Weil dieser Wert nicht 1 ist, werden die Anweisungen zwischen THEN und ELSE (BEEP und PRINT "OK.") nicht ausgeführt. Statt dessen führt R-BASIC die Anweisungen zwischen ELSE und END IF (PRINT "Nächster Durchlauf ..") aus. Die komplette sprachliche Ausformulierung dieses Beispiels liest sich so:
Wenn die Variable B den Wert Eins enthält, dann piepse und schreibe "OK." auf den Bildschirm, andernfalls schreibe "Nächster Durchlauf .." auf den Bildschirm. In beiden Fällen arbeite mit der auf END IF folgenden Zeile weiter.
Sie können auch das GOTO Kommando innerhalb von IF..THEN..ELSE..END IF verwenden. Allerdings tendieren Programme, die häufig ein GOTO verwenden, dazu, sehr unübersichtlich zu sein. Sie sollten deshalb die Verwendung von GOTO in Ihren Programmen vermeiden.
Der ELSE-Zweig des IF Kommandos ist optional, falls es für diesen Fall nichts zu tun gibt.
Hier finden Sie einige weitere Möglichkeiten, das Entscheidungskriterium zwischen IF und THEN zu formulieren:

   IF A = 1  THEN... Wenn `A' gleich 1 ist
   IF A > 1  THEN... ist größer als 1
   IF A <= 1 THEN... ist kleiner oder gleich 1
   IF A <> 1 THEN... ist ungleich 1

Gelegentlich ist es nur eine einzige Anweisung, die nach IF..THEN auszuführen ist. In diesem Fall können Sie diese Anweisung in die gleiche Zeile wie das IF schreiben. Dabei ist kein END IF erforderlich und es müssen ALLE betroffenen Anweisungen in der gleiche Zeile stehen, auch ein eventuell vorhandenes ELSE. Hier sind einige Beispiele dafür:

   IF A = 1 THEN PRINT "Genial! A = 1"
   IF A = 2 THEN BEEP
   IF A = 3 THEN N = 15 ELSE N = 0

Wenn Sie möchten, können Sie diese drei Beispielzeilen in ein Programm kopieren. Wenn R-BASIC diese Zeilen ausführt untersucht es die Variable A und prüft, welche Bedingung zutrifft. Wenn A den Wert 1 hat, wird der Text "Genial! A = 1" ausgegeben, wenn A zwei ist, piepst das Programm. Ist A jedoch 3, dann wird die Variable N auf den Wert 15 gesetzt, ist A aber ungleich drei, so wird N auf Null gesetzt. Das mag zunächst kompliziert erscheinen, aber wenn Sie es erst einmal verstanden haben, ist es sehr einfach.

Kommando: FOR. . .NEXT

Eines der zeitsparensten Kommandos - sowohl beim Programmieren als auch beim Programmablauf - ist die FOR..NEXT Schleife. Für eine einfach FOR..NEXT-Schleife ist nur eine einzige Variable nötig. Aber der Wert der Variablen ändert sich bei jedem Durchgang. Die Syntax für dieses Kommando ist:

   FOR variable = start_nummer TO end_nummer
   .
   .
   .
   NEXT variable

Zum Beispiel:

   FOR N = 1 to 5		' Lies: Für jedes N von N = 1 bis 5
   PRINT N
   NEXT N

Ausgabe: 
   1
   2
   3
   4
   5

Die Variable N wird als Schleifenzähler bezeichnet und bei jedem Durchlauf um 1 erhöht. Jede Anweisung innerhalb der Schleife, die die Variable N verwendet, wird beeinflusst. Im obigen Beispiel wird einfach der aktuelle Wert von N ausgegeben. Jedes Mal, wenn die NEXT Anweisung ereicht wird, wird N um Eins hochgezählt. Deswegen wird die FOR..NEXT Schleife auch als Zählschleife bezeichnet. Das scheint vielleicht etwas kompliziert, aber die FOR..NEXT Schleife ermöglicht es zum Beispiel, eine Spielfigur einfach von links nach rechts über den Bildschirm zu bewegen. Aber das ist etwas für fortgeschrittene Programmierer.

Wenn Sie der Typ sind, der es genauer wissen will, hier ist etwas für Sie. Um die Variable rüchwärts zu zählen, tun Sie folgendes:

   FOR N = 10 to 1 STEP -1
   .
   .
   NEXT N

Oder sie können die Schrittweite direkt vorgeben. Auch hier sind negative Schrittweiten zulässig.

   FOR N = 1 to 100 STEP 10
   .
   .
   NEXT N

So bekommen Sie Hilfe

R-BASIC kennt hunderte von Kommandos. Sehr oft werden Sie Hilfe über ein Kommando, seine Syntax oder seine Wirkungsweise benötigen. Es gibt mehrere Wege dafür. Der wichtigste und schnellste ist der Code Wizzard. Platzieren Sie den Cursor (die Schreibmarke) an dem Kommando, für das Sie Hilfe benötigen (z.B. IF) und drücken Sie F2. Es erscheint ein Fenster, dass die Syntax und grundlegende Informationen zum IF Kommando enthält. Alle anderen Kommandos, die R-BAISC kennt, sind ebenfalls in der Liste. Wenn Sie einen Eintrag auf der linken Seite auswählen, können Sie eine Kommando-Übersicht und Hilfen dazu für eine spezielle Gruppe von Kommandos, z.B. Grafik-Kommandos, erhalten.
Der zweite Weg ist die Hilfe-Datei. Wählen Sie das "Hilfe"-Menü und daraus einen Eintrag.
Zusätzlich gibt es im Ordner "R-BASIC\Dokumente" einige Dateien über R-BASIC und im Ordner "R-BASIC\Beispiele" finden Sie eine Menge Beispiele.

Zum Abschluss

Dieses Tutorial kann Ihnen nur einen kurzen Einblick in die grundlegenden Kommandos von R-BASIC bieten. Es gibt hunderte von Kommandos und Funktionen in R-BASIC. Schauen Sie in die Hilfe oder den Code Wizzard, um Details über diese Kommandos zu erfahren.

© Bernd Mützel Aktualisiert 21.04.2015 Impressum Zum Seitenanfang