Die folgenden Beispiele zeigen, wie Sie ARexx zur Anzeige von Textzeichenfolgen am Bildschirm, zur Ausführung von Berechnungen und zum Aktivieren der Fehlerprüfroutine einsetzen können.
Programme können über jeden beliebigen Texteditor (z.B. ED oder MEMacs) oder ein Textverarbeitungsprogramm eingegeben werden. Bei Verwendung eines Textverarbeitungsprogramms speichern Sie Ihr Programm bitte als ASCII-Datei. ARexx unterstützt den erweiterten ASCII-Zeichensatz (BITTE ZEICHEN EINFÜGEN, Umlaute). Diese erweiterten Zeichen werden als gewöhnliche Druckzeichen erkannt und auch korrekt von Klein- in Großschreibung umgewandelt.
Die Beispiele zeigen auch die Verwendung einiger syntaktischer Erfordernisse von ARexx, z.B.:
Jedes ARexx-Programm besteht mindestens aus einer das Programm beschreibenden Kommentarzeile und einem Befehl, der Text im Konsolenfenster anzeigt. ARexx-Programme müssen stets mit einer Kommentarzeile beginnen. Die einleitende Zeichenfolge /* (zu der stets eine Abschlußzeichenfolge */ vorhanden sein muß) teilt dem RexxMast-Interpreter mit, daß es sich um ein ARexx-Programm handelt. Ohne die Zeichenfolge /* und */ erkennt RexxMast die Datei nicht als ARexx-Programm. Nach Beginn der Programmausführung ignoriert ARexx alle weiteren Kommentarzeilen in der Datei. Die Kommentarzeilen sind jedoch zum Verstehen des Programms ausgesprochen hilfreich, da sie das Verständnis der Logik und des Aufbaus des Programms wesentlich erleichtern.
Dieses Programm zeigt, wie das Wort SAY in einem ARexx-Befehl zur Anzeige von Textzeichenfolgen am Bildschirm eingesetzt wird. Befehle sind Sprachanweisungen, die eine bestimmte auszuführende Aktion näher bestimmen. Jede Anweisung beginnt mit einem Symbol, im folgenden Beispiel mit dem Wort SAY. (Symbole werden beim Programmablauf grundsätzlich in Großbuchstaben umgewandelt.) Auf SAY folgt ein Beispiel für eine Zeichenfolge. Unter einer Zeichenfolge versteht man eine Reihe von Zeichen, die in ein Paar von einfachen (Apostroph, Alt-Ä) oder doppelten Anführungszeichen eingeschlossen sind (` oder ").
/*Ein einfaches Programm*/
SAY `Amiga, der Kreativ-Computer.'
Geben Sie den obigen Programmtext ein und speichern Sie ihn unter dem Namen REXX:Amiga.rexx. Zum Aufrufen des Programms öffnen Sie nun ein Shell-Fenster und geben folgendes ein:
Der vollständige Pfad- und Programmname lautet zwar Rexx:Amiga.rexx, Sie brauchen aber weder den Verzeichnisnamen REXX: noch die Namenserweiterung .rexx einzugeben, wenn Sie das Programm im Verzeichnis REXX: gespeichert haben.
In Ihrem Shell-Fenster sollte nun der folgende Text erscheinen:
Dieses Programm zeigt eine Eingabeaufforderung an und liest dann die eingegebenen Daten.
/*Alter in Tagen berechnen*/
SAY `Bitte Ihr Alter eingeben:'
PULL alter
SAY `Sie sind etwa' alter*365 `Tage alt.'
Speichern Sie dieses Programm unter dem Namen REXX: Alters.rexx und rufen Sie es mit dem folgenden Kommando auf:
Dieses Programm beginnt mit einer Kommentarzeile, die die Aufgabe des Programms beschreibt. Alle ARexx-Programme beginnen mit einem Kommentar. Der Befehl SAY dient zu Anzeige einer Eingabeaufforderung im Konsolenfenster.
Der Befehl PULL liest die Eingabe des Benutzers - in diesem Fall also das Alter. PULL nimmt die Eingabe auf, wandelt sie gegebenenfalls in Großbuchstaben um und speichert sie in einer Variablen ab. Variablen sind Symbole, denen ein Wert zugewiesen werden kann. Es empfiehlt sich, beschreibende Variablennamen zu wählen. Hier wird der Name "alter" als Platzhalter für die vom Benutzer einzugebende Zahl verwendet.
Die letzte Zeile multipliziert die Variable "alter" mit 365 (Anzahl der Tage pro Jahr - Schaltjahre werden in diesem Beispiel ignoriert) und zeigt über den Befehl SAY das Ergebnis an. Beachten Sie, daß die Variable "alter" nicht als Zahl deklariert werden mußte, da ihr Wert zum Zeitpunkt der Verwendung im Ausdruck überprüft wird. (Hierbei handelt es sich um ein Beispiel für typenlose Daten.) Wenn Sie sehen möchten, was passiert, wenn sie für "alter" keine Zahl angeben, rufen Sie das Programm noch einmal auf und geben diesmal Buchstaben statt numerischer Zeichen für das Alter ein. Es erscheint eine Fehlermeldung, die die Zeilennummer und die Art des aufgetretenen Fehlers angibt.
In diesem Programm wird der Befehl DO vorgestellt, mit dem Programmanweisungen wiederholt ausgeführt werden können. Ferner veranschaulicht es auch den Exponentialoperator (**). Geben Sie das Programm über den Texteditor bzw. das Textverarbeitungsprogramm ein und speichern Sie es unter dem Namen REXX:Calc.rexx. Verwenden Sie das Kommando ""X calc""zum Aufrufen des Programms.
/*Berechnung von Quadraten
und Kuben.*/
DO i = 1 to 10 /*Schleifenkopf - 10 Durchläufe*/
SAY i i**2 i**3 /*Berechnungen und Ausgabe*/
END /*Schleifenende*/
SAY `fertig.'
Der Befehl DO bewirkt, daß die zwischen den Befehlen DO und END stehenden Anweisungen wiederholt ausgeführt werden. Die Variable "i" ist die Indexvariable für die Programmschleife und erhöht sich bei jeder Wiederholung (Iteration) um 1. Die Zahl, die auf das Symbol TO folgt, ist der Endwert für den Befehl DO und könnte statt der Konstanten 10 auch eine Variable oder ein vollständiger Ausdruck sein.
Allgemein verwenden ARexx-Programme einzelne Leerzeichen zwischen verschiedenen Befehlsbestandteilen. In Programm 3 wurde allerdings auf Leerzeichen zwischen den Exponentialzeichen (**) und den Variablen und Konstanten (i und 2, i und 3) verzichtet.
Beachten Sie, daß die Anweisungen in der Schleife eingerückt sind. Für die Programmiersprache ist dies nicht erforderlich, es verbessert jedoch die Lesbarkeit des Programms, da Sie Anfang und Ende der Programmschleife auf einen Blick erkennen können.
Der Befehl IF ermöglicht die Ausführung einer Anweisung unter einer bestimmten Bedingung. Im vorliegenden Beispiel werden die Zahlen von 1 bis 10 als gerade oder ungerade klassifiziert, indem sie durch zwei dividiert und der Rest anschließend überprüft wird. Der arithmetische Operator // berechnet den Rest (Modulo), der nach Ausführung der Division verbleibt.
/*Gerade oder ungerade?*/
DO i = 1 to 10 /*Schleife beginnen - 10 Durchläufe*/
IF i // 2 = 0 THEN typ = `gerade'
ELSE Typ = `ungerade'
SAY i `ist' typ
END /*Schleife beenden*/
Die IF-Zeile gibt an, daß im Falle eines Rests von 0 bei Division der Variable "i" durch 2 die Variable "typ" auf gerade gesetzt wird. Ist der Rest ungleich 0, überspringt das Programm den THEN-Zweig und führt stattdessen den ELSE-Zweig aus, d.h. die Variable "typ" wird auf ungerade gesetzt.