Programm-Syntax
Ein Basic256-Programm besteht aus einer Folge von Anweisungen, die durch Zeilenumbrüche getrennt sind und die der Reihe nach ausgeführt werden.
Numerische Konstanten
Numerische Konstanten sind sämtliche Zahlenzeichen. Ein optionales Minus-Zeichen kann vorangestellt werden, um negative Zahlen darzustellen. Ein optionaler Dezimalpunkt, gefolgt von mehr Zahlen, kann folgen, um Fließkommazahlen zu erhalten.
Zeichenketten-Konstanten (auch Text-Konstanten)
Zeichenkettenkonstanten sind null oder mehr Zeichen, die in doppelte Hochkommata (", Gänsefüßchen oben) eingeschlossen sind.
Variablen
Die Namen von Variablen, die numerische Werte speichern (numerische Variablen), müssen mit einem Buchstaben beginnen; danach können beliebig vielen alphanumerischen Zeichen folgen. Umlaute sind nicht erlaubt.
Variablennamen für Zeichenketenvariablen folgen den gleichen Regeln wie numerische Variablen, sie müssen jedoch mit einem Dollar-Zeichen ($) enden.
Felder
Felder werden mit dem DIM-Befehl definiert. Sie können numerische Daten oder Zeichenketten enthalten. Die einzelnen Elemente können mittels mittels des Indexes, der in eckige Klammern eingeschlossen ist, zugegriffen werden. Der Index des ersten Elementes hat die Nummer 0. Beispiel:
meinFeld[4]
greift auf das 5. Element von 'meinFeld' zu.
Anonyme Felder
Ein anonymes Feld ist eine Reihe von numerischen Werten oder Zeichenketten-Werten, die mit Kommata abgetrennt und in geschweifte Klammern eingeschlossen sind.
Ein anonymes Feld kann anstelle von Feldvariablen oder zur Initialisierung von Feldvariablen benutzt werden:
dim myarray(4)
mayarray = {1, 2, 3, 4}
Operatoren
Die Operatoren +,-,*,/ werden für die Addition, Subtraktion, Multiplikation und Division genutzt. Gültige Operanden sind numerische Konstanten und/oder numerische Variablen.
Der = Operator wird zur Zuweisung von Werten zu Variablen und zum Testen auf Gleichheit verwendet.
Der + Operator kann benutzt werden, um jegliche Kombination von Zeichenketten-Konstanten und Zeichenketten-Variablen aneinanderzufügen.
Der : Operator trennt mehrere Befehle in einer Zeile voneinander.
Der ; Operator unterdrückt den Zeilenvorschub, der normalerweise nach einem PRINT erfolgt. Beispiel:
print "Hallo";
Der # Operator ist eine Abkürzung für den REM-Befehl, und ist mit ihm austauschbar.
Befehlsreferenz
| Befehl |
Abs |
| Format |
abs ( Ausdruck ) |
| Beschreibung |
Gibt den absoluten Wert von Ausdruck zurück. |
| Beispiel |
c = abs(a-b) |
| Befehl |
Ceil |
| Format |
ceil ( Ausdruck ) |
| Beschreibung |
Gibt die kleinste ganze Zahl zurück, die größer oder gleich Ausdruck ist. |
| Siehe auch |
Floor |
| Beispiel |
i = floor(-1.25) rem i ist -1 |
| Befehl |
Circle |
| Format |
circle x,y,r |
| Beschreibung |
Zeichnet einen mit der aktuellen Farbe ausgefüllten Kreis mit Mittelpunkt x,y und Radius r. |
| Beispiel |
color yellow : circle 20,20,10 |
| Befehl |
Clg |
| Format |
clg |
| Beschreibung |
Löscht den Inhalt des Grafikfensters. |
| Befehl |
Close |
| Format |
close |
| Beschreibung |
Schließt die aktuell geöffnete Datei. Wenn gerade keine Datei offen ist, hat der Befehl keine Wirkung. |
| Siehe auch |
Open, Read, Write, Reset |
| Befehl |
Cls |
| Format |
cls |
| Beschreibung |
Löscht den Inhalt des Textfensters. |
| Befehl |
Color |
| Format |
color Farbname |
| Beschreibung |
Setzt die aktuelle Farbe auf Farbname. |
| Beispiel |
color blue |
| Befehl |
Cos |
| Format |
cos ( Ausdruck ) |
| Beschreibung |
Berechnet den Kosinus von Ausdruck. Ausdruck muss ein Bogenmaß sein. |
| Note |
Die cos-Funktion liefert kein besonders genaues Ergebnis. |
| Siehe auch |
Sin, Tan |
| Beispiel |
c = cos( 2*PI*deg/360) |
| Befehl |
Dim |
| Format |
dim Variable ( AnzahlElemente ) |
| Beschreibung |
Liefert ein neu erzeugtes Feld der Länge AnzahlElemente zurück. Der Typ des erzeugten Feldes (Zeichenkettenfeld oder numerisches Feld) wird durch den Typ von Variable bestimmt. |
| Note |
Auf Elemente des Feldes wird via Variable[Index] zugegriffen. Index läuft von 0 bis (AnzahlElemente - 1) |
| Beispiel |
dim f(100) : f[0] = 1 : dim c$(5) : c$[4] = "Hi!" |
| Befehl |
End |
| Format |
end |
| Beschreibung |
Beendet die Ausführung des Programmes. |
| Befehl |
FastGraphics |
| Format |
fastgraphics |
| Beschreibung |
Schaltet in den FastGraphics-Modus, bis das Programm beendet wird. Der FastGraphics-Modus bedeutet, dass der Inhalt des Grafikfensters erst beim nächsten REFRESH-Befehl aktualisiert wird. Dadurch können komplexe Animationen deutlich beschleunigt und Flimmern vermieden werden. |
| Note |
Bei Animationen wird empfohlen, alle Grafikbefehle in Unterprogramme auszulagern und einen einziges REFRESH-Befehl zu benutzen, sobald das Einzelbild fertig ist. |
| Befehl |
Floor |
| Format |
floor ( Ausdruck ) |
| Beschreibung |
Gibt die größte ganze Zahl zurück, die kleiner oder gleich Ausdruck ist. |
| Siehe auch |
Ceil |
| Beispiel |
i = floor(-1.25) rem i ist -2 |
| Befehl |
For/Next |
| Format |
for Variable = Ausdruck1 to Ausdruck2 [ step Ausdruck3 ] ... next Variable |
| Beschreibung |
Die Befehle FOR und NEXT werden zusammen benutzt, um einen Befehl oder eine Gruppe von Befehlen eine bestimmte Anzahl mal hintereinander auszuführen. Beim Betreten der FOR-Schleife wird Variable auf das Ergebnis von Ausdruck1 gesetzt. Nach jedem NEXT Kommando wird Variable entweder um 1 erhöht (Standard), oder, bei Benutzung des optionalen STEP Befehls, um den Wert von Ausdruck3 erhöht. Für Werte von STEP größer null wird die Schleife so oft durchlaufen, bis Variable größer oder gleich Ausdruck2 ist. Bei negativen STEP-Werten ist die Abbruchbedingung erreicht, wenn Variable kleiner oder gleich Ausdruck2 ist |
| Beispiel |
for i = 1 to 10 print i next i |
| Befehl |
Goto |
| Format |
goto Sprungmarke |
| Beschreibung |
Springt zu Sprungmarke. |
| Note |
Eine Sprungmarke wird mit Bezeichner>: erzeugt, z.B. nochmal:. Basic-Befehle sind als Bezeichner nicht zulässig. |
| Beispiel |
goto nochmal |
| Befehl |
Gosub / Return |
| Format |
gosub Spungmarke ... return |
| Beschreibung |
Springt zu Sprungmarke Marke. Beim nächsten auf Marke folgenden RETURN-Befehl wird die Programmausführung in der unmittelbar auf das GOSUB folgenden Zeile fortgesetzt. GOSUB-Befehle können geschachtelt werden. |
| Befehl |
Instr |
| Format |
instr Zeichenkette1, Zeichenkette2 |
| Beschreibung |
Prüft, ob Zeichenkette2 in Zeichenkette1 enthalten ist. Wenn ja, wird der Index des Anfangszeichens des ersten Vorkommens von Zeichenkette2 zurückgeliefert. Anderenfalls gibt der Befehl 0 zurück. |
| Note |
Alle Indexe/Positionen innerhalb von Zeichenketten beginnen mit 1. |
| Beispiel |
Die Zeile print instr("Hallo", "lo") gibt 4 im Textfenster aus. |
| Befehl |
Int |
| Format |
int ( Ausdruck ) int ( Zeichenkettenausdruck ) |
| Beschreibung |
Umwandlung in eine ganze Zahl (Integer). Int() schneidet die Dezimalstellen einer Fließkommazahl ab oder wandelt eine Zeichenkette (String) in eine ganze Zahl um. |
| Beispiel |
c$ = "12" : i = int( c ) |
| Befehl |
If / Then |
| Format |
if LogischerAusdruck then Befehl |
| Beschreibung |
Wertet Log. Ausdruck aus. Wenn der Ausdruck wahr ist (true), dann wird Befehl ausgeführt. Wenn er falsch (false) ist, wird Befehl ignoriert und die Programmauführung bei der nächsten Zeile fortgesetzt. |
| Note |
Vergleichsoperatoren sind =,<>,<,>,<=,>=. Logische Verknüpfungen sind mittels AND und OR möglich. |
| Beispiel |
if a <> b then goto ende |
| Befehl |
Input |
| Format |
input Zeichenkette, Stringvariable |
| Beschreibung |
Gibt Zeichenkette aus und erwartet eine Texteingabe im Textfenster. Die Eingabe muß mit der Eingabe-Taste abgeschlossen werden. Die eingelesene Zeile wird in Variable Stringvariable gespeichert. |
| Beispiel |
input "Bitte gib Deinen Namen ein: ", name$ |
| Befehl |
Key |
| Format |
key |
| Beschreibung |
Liefert sofort den zur gerade gedrückten Taste gehörenden ganzzahligen Wert zurück. Wenn keine Taste gedrückt ist, wird der Wert 0 zurückgeliefert |
| Note |
Dieses Programmstück
if key = 47 then print key tut nicht das gewünschte, denn der KEY-Befehl wird 2 Mal hintereinander aufgerufen, liefert im allgemeinen also 2 verschiedene Werte zurück. Richtig müßte der Quelltext so aussehen:
a = key
if a = 47 then print a |
| Befehl |
Length |
| Format |
length ( Zeichenkette ) |
| Beschreibung |
Liefert die Anzahl von Zeichen in Zeichenkette zurück. |
| Beispiel |
i = length( "Hallo" ) rem i ist 5 |
| Befehl |
Line |
| Format |
line x0, y0, x1, y1 |
| Beschreibung |
Zeichnet eine Linie von Punkt x0,y0 zu Punkt x1, y1. |
| Beispiel |
line 0,0,299,299 |
| Befehl |
Mid |
| Format |
mid ( Zeichenkette, Startindex, Länge ) |
| Beschreibung |
Gibt ein Länge Zeichen langes Teilstück der Zeichenkette zurück, startend beiStartindex. |
| Beispiel |
Die Zeile print mid("Hello", 2, 3) gibt im Textfenster ell aus. |
| Befehl |
Open |
| Format |
open Dateiname |
| Beschreibung |
Öffnet eine Datei zum Lesen und Schreiben. Der Dateiname muß als Zeichenkette angegeben werden
und kann eine absolute oder relative Pfadangabe enthalten. |
| Note |
Zu einem gegebenen Zeitpunkt kann nur eine Datei geöffnet sein. Wenn eine neue Datei geöffnet wird, während eine andere Datei bereits offen ist, wird diese andere Datei geschlossen. |
| Siehe auch |
Close, Read, Write, Reset |
| Befehl |
Pause |
| Format |
pause Sekunden |
| Beschreibung |
Hält die Programmausführung für die angegebene Anzahl Sekunden an. Der Sekunden-Wert kann eine Fließkommazahl sein, damit sind auch Pausen kleiner als eine Sekunde möglich. |
| Beispiel |
pause 0.1 |
| Befehl |
Plot |
| Format |
plot x, y |
| Beschreibung |
Gibt dem Pixel an der Koordinatenposition x,y im Grafikfenster die aktuelle Farbe. |
| Beispiel |
plot 10,10 |
| Befehl |
Poly |
| Format |
poly Feld |
| Beschreibung |
Zeichnet ein Polygon. Die Seiten des Polygons werden durch die Werte im Feld bestimmt, welche immer abwechselnd x-Werte und y-Werte sein sollten. |
| Beispiel |
dim a(6) ... poly a |
| Befehl |
Print |
| Format |
print Ausdruck [ ; ] |
| Beschreibung |
Gibt einen Text im Textfenster aus, gefolgt von einem Zeilenumbruch. Wenn das optionale Semikolon am Ende vorhanden ist, erfolgt kein Zeilenumbruch. |
| Beispiel |
print "Hallo "; : print"Du !" |
| Befehl |
Rand |
| Format |
rand |
| Beschreibung |
Liefert eine Zufallszahl zwischen 0 und 1 zurück. Die Werteverteilung ist gleichförmig. |
| Note |
Um Zufallszahlem mit einem anderen Wertebereich zu erzeugen, können die notwendigen Zahlen zum RAND-Ergebnis addiert oder damit multipliziert werden. Um zum Beispiel eine ganzahlige Zufallszahl zwischen 0 und 10 (einschließlich) zu erzeugen, kann int(rand * 10) benutzt werden. |
| Befehl |
Read |
| Format |
read |
| Beschreibung |
Liest einen Token von der gerade geöffneten Datei ein und gibt ihn zurück. Ein Token ist jegliche Zeichenkette, die mit einem Leerzeichen, einem Tabulator oder dem Zeilenende endet. |
| Siehe auch |
Open, Close, Write, Reset |
| Befehl |
Rect |
| Format |
rect x,y,b,h |
| Beschreibung |
Zeichnet ein mit der aktuellen Farbe ausgefülltes Rechteck mit der Höhe h Pixel und der Breite b Pixel. Die obere linke Ecke hat die Koodinaten x,y. |
| Befehl |
Refresh |
| Format |
refresh |
| Beschreibung |
Aktualisiert das Grafikfenster mit allen Grafikbefehlen, die seit dem vorherigen REFRESH abgesetzt wurden. REFRESH funktioniert nur im FastGraphics-Modus. |
| Befehl |
Rem |
| Format |
rem Kommentar |
| Beschreibung |
Steht am Anfang einer Kommentarzeile. Zeilen, die mit REM beginnen, werden bei der Programmausführung ignoriert. |
| Befehl |
Reset |
| Format |
reset |
| Beschreibung |
Löscht den Inhalt der aktuell geöffneten Datei. Der Inhalt der Datei geht verloren. |
| Siehe auch |
Open, Read, Close, Write |
| Befehl |
Sin |
| Format |
sin ( Ausdruck ) |
| Beschreibung |
Berechnet den Sinus von Ausdruck. Ausdruck muss ein Bogenmaß sein. |
| Note |
Die sin-Funktion liefert kein besonders genaues Ergebnis. |
| Siehe auch |
Cos, Tan |
| Beispiel |
s = sin( 2*PI*deg/360) |
| Befehl |
String |
| Format |
string ( Ausdruck ) |
| Beschreibung |
Liefert die Zahl Ausdruck als Zeichenkette zurück. |
| Beispiel |
s$ = string(12*13) rem s$ ist "156" |
| Befehl |
Tan |
| Format |
tan ( Ausdruck ) |
| Beschreibung |
Berechnet den Tangens von Ausdruck. Ausdruck muss ein Bogenmaß sein. |
| Note |
Die tan()-Funktion liefert kein besonders genaues Ergebnis. |
| Siehe auch |
Sin, Cos |
| Beispiel |
t = tan( 2*PI*deg/360 ) |
| Befehl |
Write |
| Format |
write Zeichenkette |
| Beschreibung |
Schreibt die Zeichenkette an das Ende der aktuell geöffneten Datei. |
| Siehe auch |
Open, Read, Close, Reset |