3. Die Menüs des Editors Inhalt | 5. Der Befehlssatz: & bis @

Kapitel 4

Grundlagen

Benutzeroberflächen

Programme mit grafischer Benutzeroberfläche
Programme ohne grafische Benutzeroberfläche

Befehle und Syntax

Basic-Befehle
Syntaxerklärung
Zu den Beispielen
Weitere Erklärungen

Variablentypen

Integer
Float
String
Konstanten

Operatoren

Mathematische Operatoren
Priorität der Operatoren
Vergleichsoperatoren
Pointer und Adressoperatoren





Benutzeroberflächen

In Omikron Basic haben Sie grundsätzlich zwei Möglichkeiten, Programme zu schreiben:


Programme mit grafischer Benutzeroberfläche

Unter einer grafischen Benutzeroberfläche versteht man die Verwendung von grafischen Objekten wie Menüs, Dialogboxen und Fenstern, über die das Programm mit dem Anwender kommuniziert. Praktisch alle kommerziellen Programme, die eine Benutzerschnittstelle benötigen, verfügen heutzutage über eine solche grafische Benutzeroberfläche. In Omikron Basic programmieren Sie grafische Benutzeroberflächen für Ihre eigenen Programme am besten mit der EasyGem Library, die zusammen mit Omikron Basic ausgeliefert wird. Theoretisch ist es auch möglich, die entsprechenden MacOS Toolboxfunktionen mit dem MAC_OS Befehl direkt aufzurufen. Dies ist jedoch wesentlich aufwendiger als die Verwendung der EasyGem Library und nur in speziellen Ausnahmefällen sinnvoll.
Bei größeren Projekten oder wenn Ihre Programme auch von anderen Personen benutzt werden sollen, empfiehlt es sich, eine grafische Benutzeroberfläche zu installieren, da die Bedienung des Programms dadurch wesentlich vereinfacht wird.


Programme ohne grafische Benutzeroberfläche

Im Unterschied zu vielen anderen modernen BASIC Implementationen ist es in Omikron Basic auch möglich, kleine, kompakte Programme ohne grafische Benutzeroberfläche zu schreiben. Für die Eingaben und Ausgaben werden dabei Befehle wie INPUT und PRINT verwendet. Solche Programme sind besonders geeignet, um beim Erlernen von Omikron Basic die im nächsten Kapitel besprochenen Befehl mal schnell auszuprobieren oder wenn man eben einfach nur ein kleines Programm schreiben möchte, das eine spezielle Aufgabe erledigt, für die gerade keine Standardsoftware zur Verfügung steht.
Damit Ihre Programme ohne grafische Benutzeroberfläche trotzdem noch sauber in der Multitasking-Umgebung des MacOS laufen, sollten Sie dafür unbedingt die Omikron Basic Ausgabefenster verwenden, die wir jetzt besprechen wollen.


Die Omikron Basic Ausgabefenster

Omikron Basic stellt auf Wunsch sogenannte Ausgabefenster zur Verfügung, in welche alle Ausgaben umgeleitet werden, die sonst direkt auf dem Bildschirm landen würden. Die Verwaltung dieser Fenster wird automatisch vom Omikron Basic übernommen. Dadurch laufen auch Programme, die keine Fensterverwaltung haben und zur Ein- und Ausgabe PRINT und INPUT benutzen, sauber in einer Multitasking-Umgebung. Die Omikron Basic Ausgabefenster können Sie mit dem Befehl COMPILER "OUTPUT_WINDOW X*Y" einschalten, wobei für X (Breite) und Y (Höhe) die Werte in Pixel eingesetzt werden müssen, die das erste Fenster maximal annehmen soll. Der Inhalt der Ausgabefenster wird im Application-Heap des Programms gepuffert, es muß also je nach Größe und Farbtiefe genügend Speicher vorhanden sein. Gegebenenfalls müssen Sie im Finder oder mit COMPILER "PRE_SIZE X" mehr Speicher für Ihr Programm reservieren.

Wenn die Ausgabefenster aktiv sind, wird ausserdem eine Menüzeile eingerichtet, die Ihnen den Zugriff auf das Apfel-Menü an der linken Seite sowie das Help- und Programm-Menü an der rechten Seite ermöglicht. Damit das Omikron Basic auch die Eventmeldungen erhält, die die Ausgabefenster oder die Menüleiste betreffen, müssen Sie mit COMPILER "EVENT" an geeigneter Stelle dafür sorgen, dass ein WaitNextEvent-Aufruf in Ihr Programm hineincompiliert wird. Siehe auch das Demoprogramm 'Mandelbrot.BAS'.
Wenn sich Ihr Programm in einer INPUT- oder INPUT$-Anweisung befindet, so werden automatisch immer WaitNextEvent-Aufrufe an das MacOS abgesetzt, da ja ständig auf Tastendrücke geachtet werden muß. Das Gleiche gilt für den FORM_ALERT Befehl.
Die Ausgabefenster verfügen auch über Scrollbalken, so dass sie auch größer als der physikalische Bildschirm angelegt werden können. Bedenken Sie aber bitte, daß der Fensterinhalt im Application-Heap gepuffert werden muß. Ein Fenster mit 1280 x 960 Bildpunkten benötigt z.B. bei 256 Farben 1.2 MB Speicher.
Die Schrittweite, mit der der Fensterinhalt weiterscrollt, wenn Sie die Pfeile an den Schiebebalken anklicken, kann mit der Prozedur Set_Scroll_Parameter aus der ExtensionLibrary eingestellt werden.

Hinweis: Mit dem Befehl SCREEN können Sie weitere Omikron Basic Ausgabefenster öffnen.


Das Menü zu den Omikron Basic Ausgabefenstern

Wenn die Omikron Basic Ausgabefenster eingeschaltet sind, so wird zusätzlich eine Menüleiste eingerichtet. Über das Menü 'Datei' können Sie nun einige Grundfunktionen aufrufen

Öffnen ...
Das oberste Omikron Basic Ausgabefenster wird mit einer Datei geladen, die zuvor mit 'Speichern als ...' eingerichtet wurde. Wenn das zu ladende Bild andere Abmessungen oder eine andere Farbtiefe hat, wird es automatisch an das Omikron Basic Ausgabefenster angepasst. Die Datei muß im 'PICT'-Format vorliegen. Sie kann daher auch mit anderen Programmen erstellt worden sein.

Speichern als ...
Der Inhalt des Puffers für das oberste Omikron Basic Ausgabefenster wird im 'PICT'-Format gespeichert. Dadurch ist es möglich, das gespeicherte Bild in andere Programme zu laden und dort weiterzubearbeiten.

Drucker einstellen ...
Es wird die Layout-Dialogbox aufgerufen, in der Sie Einstellungen für den Drucker vornehmen können.

Drucken ...
Es wird die eigentliche Drucken-Dialogbox aufgerufen. Hier können Sie zunächst weitere Einstellungen vornehmen. Wenn Sie dann 'OK' anklicken, wird der Puffer für das Omikron Basic Ausgabefenster gedruckt.

Beenden
Das Programm wird beendet. Die gleiche Wirkung hat ein Anklicken des Schließfelds im Omikron Basic Ausgabefenster, wenn es sich um das letzte Fenster handelt. Vorher erfolgt allerdings noch eine Sicherheitsabfrage.


Befehle und Syntax


BASIC-Befehle

Der Omikron Basic Editor akzeptiert eine ganze Reihe von BASIC-Befehlen, die Überbleibsel älterer Versionen sind und dort unter anderem zur Steuerung des alten Editors und des alten Interpreters dienten. Diese Funktionen werden jetzt entweder vom Editor selbst ausgeführt (z.B. LIBRARY, DEFINT, RENUM usw.) oder sie haben wegen der neuen Benutzeroberfläche überhaupt keine sinnvolle Bedeutung. Bei einigen handelt es sich auch um typische Interpreterbefehle, die darum vom Compiler schon immer ignoriert wurden. Andere wiederum benutzten spezielle Eigenschaften der ATARI-Hardware oder des ATARI-Betriebssystems und spielen deswegen auf dem MAC keine Rolle.
Um die Kompatibilitätsprobleme mit alten Programm gering zu halten (meist reicht es schon, wenn die besagten Befehle einfach ignoriet werden), wurde Omikron Basic so programmiert, daß der Editor auch die ungültigen Befehle versteht, diese vom Compiler aber übersprungen werden.
In dem Kapitel 'Der Befehlssatz' sind die bedeutungslosen Befehle in grauer Schrift dargestellt. Diese Schlüsselwörter dürfen Sie für eigene Zwecke nicht verwenden.


Syntaxerklärung

Angaben in spitzen Klammern <...> sind durch entsprechende Ausdrücke zu ersetzen.
Angaben in eckigen Klammern [...] sind, je nach gewünschter Anwendung, wegzulassende Ergänzungen.
Sind um einen Ausdruck zwei eckige Klammern [[...]] gesetzt, so kann, je nach Anwendung, dieser Ausdruck weggelassen werden, einmal oder mehrmals erscheinen.
Angaben in geschweiften Klammern {...|...} stellen eine Auswahl dar, aus der eine der durch "|" getrennten Alternativen auszuwählen ist.


Zu den Beispielen

Zu vielen Befehlen sind kurze Beispielprogramme in einem hellgelb hinterlegtem Feld angegeben. Die meisten dieser Programme können direkt abgetippt oder einfacher aus dem Online-Handbuch ausgeschnitten und in ein Programm-Fenster wieder eingesetzt werden. Um ein compilierbares Programm zu erhalten, müssen allerdings in vielen Fällen noch einige Compiler Steuerwörter gesetzt werden. (Siehe das Programm Mandelbrot.BAS im Ordner DEMO). Bei einigen Programmen werden auch Funktionen aus der Extension Library verwendet. In diesen Fällen muß die Library vom Editor aus mit 'Library zuladen ...' vorher in das Programm integriert werden.
Bildschirmergebnisse stehen darunter in einem etwas dunklerem Gelb, sofern es sich nicht um Grafiken etc. handelt. In diesen Fällen wird das Verhalten des Programms verbal beschrieben.


Weitere Erklärungen

<num.Ausdruck>
Ein numerischer Ausdruck ist ein beliebiger Term, der ein numerisches Ergebnis liefert. Dabei spielt der Typ (ganzzahlig, einfach- oder doppeltgenau) keine Rolle. Der Compiler führt bei der Übersetzung eine automatische Typconvertierung durch. Wenn jedoch z.B. von einem Befehl immer nur ein Integertyp erwartet wird, sollten Sie darauf achten, dass auch immer nur Integer übergeben werden. Dadurch wird das compilierte Programm kürzer und schneller.

<String-Ausdruck>
Ein Ausdruck vom Typ String.

<Dateiname>
Ein Dateiname ist ein String, der einen FileSpezificationRecord enthält und folgenden Aufbau hat:
 
  2 Byte VolumeReferenceNumber oder 0, wenn diese nicht bekannt ist.  
  4 Byte DirectoryIdentificationNumber oder 0, wenn diese nicht bekannt ist.  
  1 Byte Länge des nachfolgenden Dateinamens,Dateipfades oder Teilpfades.  
  1-63 Byte Dateiname, Dateipfad oder Teilpfad. 
 
Eine Datei kann auf dem Macintosh auf verschiedne Weise spezifiziert werden. Wenn die VolumeReferenceNumber und die DirectoryIdentificationNumber bekannt sind, so sollten sie auch unbedingt angegeben werden, da nur dadurch eine absolute Eindeutigkeit gesichert ist. Man kann eine Datei aber auch über einen Pfadnamen identifizieren. Dabei müssen die einzelnen Ordner durch Doppelpunkte getrennt werden. Am Schluß steht der eigentliche Dateiname.
(z.B. "MacintoshHD:Omikron Basic:DEMO:Mandelbrot.BAS"). Um einen FilespecificationRecord aufzubauen, benutzen Sie am besten die Funktion Get_Fsspec$ aus der Extension Library.
Wenn Angaben über das Volume oder die Directory fehlen, muß der Pfadname vollständig sein, wenn sich die gesuchte Datei nicht im aktuellen Ordner befindet. Sonst reicht auch die Angabe eines Teilpfads, wobei darauf zu achten ist, dass der erste Buchstabe eines Teilpfades ein Doppelpunkt sein muß. In diesem Fall setzen Sie die VolumeReferenceNumber und die DirectoryIdentificationNumber einfach auf null und geben nur einen Teilpfad mit einem vorangestellten Doppelpunkt oder einen Dateinamen ohne Doppelpunkt an. Dann wird ausgehend vom aktuellen Pfad nach der Datei in dem Teilpfad gesucht.
Um die aktuelle VolumeReferenceNumber und DirectoryIdentificationNumber zu erfahren, können Sie die Prozedur
Get_Cur_Dir aus der Extension Library benutzen.

<num.Variable>
Numerische Variable gleich welchen Typs. In Einzelfällen sind möglicherweise nur einfache Variablen zugelassen und keine Felder.

<Rückgabe-Variable>
Liefert den Ergebniswert eines Befehls oder einer Funktion zurück. Z.B. bei INPUT USING Art der Abbruchbedingung.

<Parameter>
Die an eine Funktion oder Prozedur übergebenen Werte. Bei Aufrufen mit CALL kann durch ein vorangestelltes "L" eine Übergabe als Long-Integer bewirkt werden.

<Bitnummer>
Vorzeichenlose Zahl zwischen 0 und 31. Die Wertigkeit des entsprechenden Bits ist 2^<Bitnummer>

<Integer-Variable>
Ganzzahlige Variable (Word=16Bit oder Long=32Bit), auch Feldvariablen sind zulässig.

<Speicheradresse>
32 Bit breite Long-Integer-Zahl, die eine bestimmte Speicherzelle benennt.

<Marke>
Eine Marke bezeichnet eine bestimmte Stelle eines Programms und kann alle für Variablennamen zugelassenen Zeichen enthalten. Eine Marke kann sein:

1. Eine bestimmte Zeile:
Wenn mit Zeilennummern gearbeitet wird, kann man durch Nennung der Nummer eine bestimmte Zeile erreichen. Die Zeilennummer kann auch berechnet werden, d.h. als Marke ist auch ein beliebiger numerischer Ausdruck zugelassen. Wenn der Ausdruck jedoch aus einer einzigen numerischen Variablen besteht, so ist diese in Klammern zu setzen, um nicht mit einem Label verwechselt zu werden.

2. Ein bestimmtes Programm-Label:
An jeder Stelle des Programms kann mit "-<Bezeichner>" ein Label vereinbart werden. Der Bezeichner darf alle für Variablennamen zugelassenen Zeichen enthalten (alle Buchstaben, Ziffern, "_" und die Zeichen von 128 bis 255). Will man sich auf ein solches Label beziehen, wird einfach der Bezeichner genannt, das vorangestellte Minuszeichen unterbleibt. Man kann stattdessen das Label auch über einen String-Ausdruck benennen. Er muß den Bezeichner des Labels enthalten und sollte nicht länger als acht Zeichen sein, da der Compiler nur die ersten 8 Zeichen zur Identifikation auswertet. (Gilt nur, wenn über einen String-Ausdruck auf das Label zugegriffen wird).

Insgesamt empfiehlt es sich, auf numerische oder String-Ausdrücke für Zeilennummern bzw. Label zu verzichten, da diese zur Laufzeit erst ausgewertet werden müssen und der Programmablauf dadurch verlangsamt wird.

<Laufwerk>
Laufwerk steht für ein Volume (z.B. Festplatte, CD-ROM oder Diskette) und kann beliebige Namen haben gefolgt von einem Doppelpunkt.

<Winkel>
Winkelangaben bei Grafikbefehlen sind stets in 1/10 Grad vorzunehmen, d.h. z.B. 900 entspricht 90 Grad.

<Dateinummer>
Eine vorzeichenlose Zahl zwischen 1 und 16. Die Zahl steht in fester Verbindung mit der zugehörigen Datei (siehe OPEN). Alle Befehle und Funktionen wirken auf die Datei, die der Dateinummer durch OPEN zugeordnet wurde.
 

 

Variablentypen

Omikron Basic stellt eine ganze Reihe verschiedener Variablentypen zur Verfügung, die für die unterschiedlichen Zwecke nützlich sind. Im Interesse der Schnelligkeit des Programms sollte nach Möglichkeit immer mit Integer-Variablen gearbeitet werden, wenn als Variablenwert nur ganze Zahlen in Betracht kommen. Da Strings ganz besonders kompliziert sind, sollten sie vermieden werden, wenn es irgendwie geht.

Die Variablennamen können fast beliebig gebildet werden. Ein Variablenname kann auch mehrmals im gleichen Programm mit verschiedenen Postfixen (also verschiedenen Wertebereichen) vorkommen. Sie werden vollständig unabhängig voneinander verwaltet. Dafür sorgt das Postfix. Für Variablennamen sind die ASCII-Zeichen von 48-57, 65-90, 95, 97-122 und 128-255 erlaubt. Die Namen dürfen allerdings nicht mit einer Zahl beginnen, damit das BASIC sie von Konstanten unterscheiden kann.

Die Zeichen ab 128 können auf verschiedene Weise erreicht werden:

1. Mit einer Vortaste. Sie drücken zunächst F1 und geben dann ein normales Zeichen ein. Durch F1 wird zu dem ASCII-Code dieses Zeichens 64 addiert. Das gleiche bewirkt F2, nur daß 128 addiert wird.

2. Bei gedrückter [Alt] Taste kann der ASCII-Code des Zeichens direkt über die Tasten des Zehnerblocks eingegeben werden. Sobald man die [Alt] Taste loslässt oder 3 Ziffern eingegeben wurden, erscheint das Zeichen auf dem Bildschirm.

3. Durch eine Kombination der Modifier-Keys mit normalen Tasten können die länderspezifischen Sonderzeichen erreicht werden.

Damit läßt sich jetzt z.B. schreiben:

Länge = Höhe * SIN(ß)

Ein geeigneter Zeichensatz vorausgesetzt.

siehe auch ASCII-Codes

Die Variable A soll nur ein Beispiel sein. Omikron Basic unterscheidet jede einzelne Variable voneinander, obwohl sie alle A heißen. Durch die Postfixe für die einzelnen Variablentypen unterscheiden sie sich bereits. Wenn Sie die Variable A%L bereits verwendet haben, können Sie sogar noch ein davon unabhängiges Feld A%L(1) und eines A%L(1,2) verwenden. Hier besteht nämlich der Unterschied in der Dimension der Felder. Es ist jedoch besser, solche Namensgleichheiten zu vermeiden, sonst kann ein Progarmm schnell unübersichtlich werden.
Sie können übrigens für jedes als erstes Zeichen erlaubte Variablenzeichen einen Standard-Variablentyp vergeben. Jede Variable, die mit eben diesem Buchstaben beginnt, hat dann automatisch den Standard-Variablentyp, es sei denn, Sie geben das Postfix eines anderen Variablentyps explizit an (s.a. Modus/Einstellungen>Programm).

Im Einzelnen sind folgende Variablentypen möglich:


Integer (ganze Zahl)

Integerzahlen sind ganze Zahlen, also Zahlen ohne Nachkommastellen. Ihr Zahlenbereich ist auf die unten angegebenen Werte beschränkt. Der Vorteil von Integer-Zahlen ist die schnelle Abarbeitung und dass es keine Rundungsfehler gibt.
 
Long-Integer: Rechenbereich: -2147483648 bis +2147483647
Speicherplatzbedarf: 4 Bytes (= 4 Zeichen)
Postfix: %L z.B. A%L, A%L(1)
Short-Integer: Rechenbereich: -32768 bis +32767
Speicherplatzbedarf: 2 Bytes (= 2 Zeichen)
Postfix: % z.B. A%, A%(1)
Byte-Integer: Rechenbereich: 0 bis 255 
Speicherplatzbedarf: 1 Byte (= 1 Zeichen)
Postfix:  %B z.B. A%B(1)
Flag/Boolean: Rechenbereich: "falsch" (0) und "wahr" (-1)
Speicherplatzbedarf: 1 Bit (= ein achtel Zeichen) 
Postfix:  %F z.B. A%F(1)
 
Hinweis: Die Variablentypen Byte-Integer und Flag/Boolean können nur in Feldern und nicht als eigenständige Variablen benutzt werden.


Float (Fließkomma)

Fließkommazahlen sind Zahlen mit Nachkommastellen. Ihr Zahlenbereich ist (fast) gar nicht begrenzt, da sie einen Zehnerexponenten besitzen. Reicht der Zahlenbereich der Mantisse nicht aus, so wird der Exponent jeweils um eins erhöht und die Mantisse wird um eine Stelle nach rechts geschoben. Je größer die Zahl ist, desto ungenauer ist sie deshalb auch. Die Stellenanzahl bleibt aber immer gleich. Eine Fließkommazahl sieht z.B. so aus: 
123.45678 mal  10 hoch 2
Mantisse  Exponent
Vorteile dieser Zahlen sind die Nachkommastellen und dass sich die Genauigkeit der Größenordnung anpasst.
Nachteilig sind die bei Float-Zahlen möglichen Rundungsfehler. 1/3 ist eben doch etwas anderes als 0.33333333333333. Denn nicht alle reellen Zahlen lassen sich durch eine Float-Zahl exakt darstellen. Die Rechengeschwindigkeit kann bei Fließkommazahlen noch größer sein als bei Integerzahlen, da der PowerPC Prozessor über eine sehr leistungsfähige Fließkommarecheneinheit verfügt.
 
Single-Float: Rechenbereich: +/-1.4x10^-45 bis 3.4x10^+38
Genauigkeit:  7-8 Stellen
Speicherplatzbedarf: 4 Byte (= 4 Zeichen) 
Postfix:  ! z.B. A!, A!(1)
Double-Float: Rechenbereich: +/-4.9x10^-324 bis 1.8x10^+308 
Genauigkeit:  15-16 Stellen 
Speicherplatzbedarf:  8 Byte (= 8 Zeichen)
Postfix: # z.B. A#, A#(1)
 

String (Zeichenkette)

Ein String ist eine Zeichenkette, d.h. ein Text von bis zu 2147483648 Zeichen Länge. Der Text kann alle beliebigen Zeichen von 0 bis 255 enthalten. Strings werden vom Omikron Basic sehr effektiv verwalt, woraus eine gegenüber anderen BASIC-Varianten sehr hohe Verarbeitungsgeschwindigkeit resultiert.Die Länge eines Strings kann sich während des Programmablaufs beliebig ändern (Dynamische Stringverwaltung). Strings brauchen deshalb in Omikron Basic nicht, wie in vielen anderen BASIC-Dialekten und Programmiersprachen, dimensioniert zu werden.
Da trotz der hochoptimierten Verwaltung die Verwendung von Strings niemals so schnell sein kann, wie die Arbeit mit Integern, sollten Sie Strings nur benutzen, wenn das Problem nicht genau so gut mit Integern zu bewältigen wäre.
Wenn Sie z.B. nur einen einzelnen Buchstaben benötigen, ist es - besonders in Schleifen, die häufig durchlaufen werden - sinnvoll, statt des Buchstabens den entsprechenden ASCII-Wert einer Integervariablen zuzuweisen (siehe ASC) und dann damit zu arbeiten.
 
String:  Speicherplatzbedarf:  16 Bytes (= 16 Zeichen) plus die Länge des Strings.
Postfix: $ z.B. A$, A$(1)

  
Konstanten

Konstanten sind Zahlen, die sich nicht verändern, also keine Variablen. Aber auch sie haben einen Typ, der den Variablentypen entspricht und von der Schreibweise und dem Wert der Konstanten abhängt: 
 
123  Short-Integer 
35000  Long-Integer 
123.  Double-Float
1.3  Double-Float 
1E20  Single-Float 
123!  Single-Float 
123#  Double-Float 
1D20  Double-Float 
1.23456789  Double-Float 
"hallo"  String. 
 
Eine Zahl, die eines der folgenden Zeichen enthält, ist automatisch eine Fließkommazahl:
. ! # E D
Die Postfixe ! und #  können also auch hinter Zahlen stehen.
Der Buchstabe E steht für Zehnerexponent einer Single-Float-Zahl und D für Zehnerexponent einer Double-Float-Zahl.


 

Operatoren

Omikron Basic stellt eine große Anzahl von Operatoren zur Verfügung, die nach Funktionsgruppen gegliedert nachfolgend besprochen werden.


Mathematische Operatoren
Zeichen: Bedeutung: 

+ 

Addition 

Subtraktion 

Multiplikation 

Division

^ 

Potenzieren 

+= 

Addition mit Zuweisung 

-= 

Subtraktion mit Zuweisung 

*= 

Multiplikation mit Zuweisung 

/= 

Division mit Zuweisung
\ Integer-Division: Liefert das auf eine ganze Zahl abgerundete Ergebnis einer Division zurück

MOD 

Modulo-Operator: Liefert den Rest einer ganzzahligen Division

Vergleichsoperatoren

Omikron Basic stellt die folgenden Vergleichs-Operatoren zur Verfügung:  
Zeichen:  Bedeutung: 
größer als 
kleiner als 
gleich 
>=  größer oder gleich 
<=  kleiner oder gleich 
<>  ungleich 

 
Pointer und Adressoperatoren
 
"&" ermittelt die Adresse einer Variablen, eines Feldes oder einer Funktion.

"*" greift auf ein Objekt zu (dereferenziert es). Direkt hinter dem Operator muß die Zeigervariable folgen. Welcher Typ gemeint ist, muß auch hier, wie bei einer normalen Variablen, noch mit einem Postfix angegeben werden. Speziell wenn es sich um einen Zeiger auf Funktionen handelt, ruft "*" die Funktion auf, auf die die Zeigervariable zeigt.


Priorität der Operatoren

Alle hier aufgeführten Operatoren sind in Kapitel 5 im Einzelnen erklärt und nach Ihrer Priorität (Rangfolge) aufgelistet. Die weiter oben stehenden Operatoren haben eine höhere Priorität, als die darunter stehenden. Alle Operatoren in einer Zeile haben die gleiche Priorität.

( , ) (Klammern) (höchste Priorität)
& (Adressoperator), *(Pointeroperator), FN (Funktion)
NOT, +, - (als Vorzeichen)
^ (Potenzieren)
SHL, SHR
*, /
\, MOD
+, -
<, <=, >, >=, <>
AND
OR
EQV, IMP, NAND, NOR, XOR (niedrigste Priorität)  
 
Beispiel:  PRINT -3^2, (-3)^2, 3*1 SHL 2, (3*1) SHL 2
Ergebnis:  -9   9   12   12 
Beispiel:  PRINT -1>=2 OR 1<2, -1>=((2 OR 1)<2)
Ergebnis:   -1   0

 

3. Die Menüs des Editors Inhalt | 5. Der Befehlssatz: & bis @

Support | Bestellen | Start | Home: http://www.berkhan.de


© 1997-2001 Berkhan-Software