BASIC     Befehle          Links          zurück


Allgemeines über Basic :

BASIC war auf den ersten 8-Bit Computern die am weitesten verbreitete Programmiersprache. Da die Computer dieser Zeit fast nur von Programmierern gekauft wurden, gehörte die Sprache zum Lieferumfang des Computers und befand sich bereits im ROM.

BASIC wurde interpretiert und war dadurch verhältnismässig langsam. Da es auch keinen richtigen Standard gab, veränderte jeder Computerhersteller BASIC nach den Bedürfnissen seines Gerätes. Ergebnis waren viele, viele Varianten dieser Sprache. Da die strukturierte Programmierung inzwischen als wichtig angesehen wurde, erhielt BASIC später viele Features aus dem PASCAL-Bereich wie Parameter an Funktionen, Records und lokale Variablen.

Basic ist eine Abkürzung für Beginner's All-purpose Symbolic Instruction Code. Basic wurde von John Kemeney und Thomas Kurtz Mitte der 60er Jahre am Dartmouth College entwickelt. BASIC ist eine der ersten und einfachsten höheren Programmiersprachen. Während der 70er Jahre war es die Sprache, die am häufigsten den Studenten gelehrt wurde. Immer noch ist sie eine der am weitesten verbreiteten Sprachen für Computer.

Despite its simplicity, BASIC is used for a wide variety of business applications. There is an ANSI standard for the BASIC language, but most versions of BASIC include many proprietary extensions. Microsoft's popular Visual Basic, for example, adds many object-oriented features to the standard BASIC.

Recently, many variations of BASIC have appeared as programming, or macro, languages within applications. For example, Microsoft Word and Excel both come with a version of BASIC with which users can write programs to customize and automate these applications.


Links

http://basic.mindteq.com/

http://www.basmark.com/man/version3.7/

Basic auf Linux Rechnern    Gambas   Hbasic

BASIC archives  http://www.fys.ruu.nl/~bergmann/basic.html
Provides an FAQ, as well as additional help files. There is also information on BASIC compilers and interpreters.

BASIC FTP servers
Provides a list of anonymous FTP servers that have a BASIC section. There are three categories which include general, QuickBasic, and PowerBasic.

Brand-X BASIC programming page
Part of the BASIC programming web ring, this site offers download links for compilers, All BASIC Code (ABC) packets, and libraries as well as tips and tricks and related web sites.

Liberty BASIC
Describes Liberty BASIC, a shareware programming language for Windows and OS/2. The site contains links to download software, screenshots, related files, tutorials, links to other BASIC programming sites.

The All Basic Code (ABC) home page
ABC is a collection of BASIC (QuickBasic, PowerBasic, Visual Basic, etc.) code snippets, FAQs, code, software reviews, compilers, and links to related sites.

The PowerBasic Archives
Resources for BASIC and PowerBasic programmers. Includes a very good collection of BASIC related links.

The Programmer's Page
Contains a collection of BASIC source code files, libraries, compilers, help files and games.

Yahoo!'s BASIC page
Yahoo!'s directory of links for the BASIC programming language.

Yahoo!'s BASIC shareware and freeware page
Yahoo!'s directory of BASIC shareware and freeware.

Young Basic Programmers Club
The Young Basic Programmer's Club contains a Visual Basic FAQ, programming tips and questions, information on IRC, links to related sites, and membership information.


Befehle

BASIC



BASIC-Programm

RUN, Ctrl-C und CONT

Mit RUN wird ein BASIC-Programm gestartet. Dabei werden auch alle Variablen auf den Nullzustand gesetzt. Interpretierte BASIC-Programme können mit der Tastenkombination CTRL-C gestoppt werden. Alle Variablen können betrachtet werden und mit dem Befehl CONT kann das Programm an der Stelle fortgesetzt werden, wo es unterbrochen wurde. Wurde im Programm dagegen der Befehl END gegeben, ist eine Fortsetzung nicht möglich. Das Programm endet definitiv an dieser Stelle.

Will man das komplette Programm und alle Variablen aus dem Speicher entfernen, verwendet man den Befehl NEW.

LIST

LIST zeigt das Listing des Programmes an.

Variablen

Es gibt im BASIC nur globale Variablen. Sie werden nicht deklariert, sondern sind direkt bei Benutzung verfügbar. Das macht es etwas anfällig gegen Tippfehler. Die Variablen bleiben nach Ende oder Unterbrechung des Programmes verfügbar. Das macht es einfach, ein Programm zu debuggen. Im Allgemeinen werden aber alle Variablen zurückgesetzt, wenn eine neue Programmzeile eingefügt wird. Mit dem Befehl CLEAR kann man ebenfalls alle Variablen löschen.

Variablentypen

BASIC kennt in der Grundform zwei Variablentypen. Eine normale Variable ist numerisch, in den meisten Fällen eine Fliesskommazahl. Der andere Typ ist eine Textvariable. Sie wird durch ein angehängtes $-Zeichen kenntlich gemacht.

Felder

Es können Felder (Arrays) von Variablen gebildet werden. Beispielsweise

DIM A(12)

legt 12 Variablen unter dem Namen A an. Sie können dann mit beispielsweise A(3) zugegriffen werden. Insbesondere mit der FOR-Anweisung können so gleichartige Variablen effizient behandelt werden.

Zeilenaufbau

Eine BASIC-Zeile beginnt mit der Zeilennummer. In der Reihenfolge der Zeilen werden die Programme abgearbeitet. Sollen mehrere Befehle in einer Zeile stehen, werden sie mit Doppelpunkt voneinander getrennt. Eine Zeilennummer ist immer auch ein Sprungziel, das mit GOTO angesprungen werden kann.

Zuweisung

Eine Zuweisung schiebt einen Wert in eine Variable. Dabei steht die Variable links, es folgt ein Gleichheitszeichen und rechts davon steht ein Ausdruck. Ein Ausdruck kann eine Konstante, eine andere Variable oder eine Berechnung sein.

Ursprünglich stand das Schlüsselwort LET vor einer Zuweisung. Dieses lassen auch fast alle Dialekte zu. Wenige fordern das LET noch.

Ein- und Ausgabe

PRINT

Die Universalausgabe, die auf dem Bildschirm landet ist PRINT. In vielen Dialekten kann auch ein Fragezeichen als Kürzel verwendet werden. Mehrere Werte können mit einem PRINT-Statement ausgegeben werden. Diese werden durch Semikolen getrennt, wenn sie direkt aufeinander folgen sollen. Wird stattdessen ein Komma verwendet, wird eine Art Tabulator verwendet, der sich aber je nach Implementation unterscheidet. Jedes PRINT-Statement endet die Ausgabe mit einem Zeilenvorschub, wenn nicht ein Semikolon an letzter Stelle erscheint.

INPUT

INPUT dient der Eingabe einer Zeile. Dem Befehl kann eine String-Konstante folgen, der durch ein Semikolon abgetrennt dann die Variable folgt, deren Inhalt eingegeben wird.

Flusskontrolle

GOTO

Hinter dem GOTO steht eine Zeilennummer, an der der Code weiter ausgeführt werden soll.

GUSUB ... RETURN

Mit GOSUB wird eine Zeilennumer angesprungen und der Code an dieser Stelle fortgesetzt. Sobald die Anweisung RETURN erscheint, wird die Bearbeitung hinter dem aufrufenden GOSUB fortgesetzt. Eine Verschachtelung von GOSUBs ist möglich, oft aber zahlenmässig stark begrenzt.

IF .. THEN ..

Das IF THEN ist in jedem BASIC vorhanden. Ein ELSE ist schon deutlich seltener. In der einfachsten Form wird der Rest der Zeile, der hinter dem THEN folgt, ausgeführt, wenn die Bedingung hinter dem IF erfüllt ist.

Dialekte, die auch ein ELSE haben, kennen meist auch einen Abschlussbefehl für das IF. Dieses lautet FI, IFEND oder END.

Die Schleife FOR ... NEXT

FOR ist eine Zählschleife. Es ist die ursprünglich einzige Schleife in BASIC.

200 FOR I=11 TO 28 STEP 2
250 NEXT I

Die Variable (hier I) wird auf ihren Startwert gesetzt. Die Schleife wird durchlaufen, bis der Endwert überschritten wird. Ist ein STEP enthalten wird die Variable bei jedem Durchlauf um den entsprechenden Wert erhöht. Fehlt STEP, ist dieser Wert 1. Das Ende der Schleife befindet sich bei Auftreten von NEXT.

Mathematische Funktionen

ABS(x)
liefert den Wert von X ohne Vorzeichen.
ATN(x)
liefert den arcus tangents von X.
COS(x)
bildet den Cosinus von X.
LOG(x)
bildet den natürlichen Logarithmus von X.
SIN(x)
bildet den Sinus von X.
SQR(x)
liefert die Wurzel von x, auf einigen Systemen aber das Quadrat(!) von X, dann ist die Wurzel SQRT!
SQRT(x)
liefert die Wurzel von x.
TAN(x)
liefert den tangents von X.

Zeichenketten Funktionen

ASC(X$)
liefert den ASCII-Wert des Zeichens in X$.
CHR$(X)
liefert das Zeichen, dessen ASCII-Wert in X steht.
MID$(X$, A, L)
liefert den Teilstring von X$, der an der Position A beginnt und L Zeichen lang ist.

Sonstiges

Freier Speicher FRE

Mit FRE(x) kann man den freien Speicher bestimmen und löst meist auch die "Garbage Collection" aus. Das bedeutet, dass das BASIC den Speicher aufräumt und zusammenschiebt.

Kommentar: REM

Alles was hinter einem REM erscheint, ist Kommentar. Da BASIC interpretiert wurde und bei den alten Maschinen Geschwindigkeit und Speicher knapp waren, wurde gern auf Kommentare verzichtet.

Hinterlegte Daten (DATA)

Das Programm kann konstante Daten enthalten. Diese werden hinter dem Schlüsselwort DATA abgelegt. Die Daten nacheinander mit dem Befehl READ in eine Variable geholt. BASIC hält einen Zeiger auf den zuletzt gelesenen Wert. Diesen Zeiger kann man mit RESTORE wieder auf den ersten DATA-Wert des Programmes setzen.

900 READ A

10000 DATA 4,3,0,1,5

PEEK und POKE

Mit POKE X,Y konnte ein beliebiger Wert Y an eine beliebige Stelle X im Hauptspeicher gesetzt werden. Mit PEEK(X) kann der Wert der Speicherstelle X gelesen werden. Die Befehle dienten einerseits zur direkten Ansteuern von Controllern, andererseits wurden sie häufig benutzt, um Maschinensprachroutinen in den Speicher zu schreiben, die im Allgemeinen in grossen DATA-Kolonnen am Ende des Programms befanden.

Der Aufruf von Maschinensprachroutinen oder ROM-Routinen war nicht einheitlich. Es wurden die Befehle CALL oder SYS verwendet. Mit USR(X) konnte man auf einigen Systemen einen Wert an ein CPU-Register übergeben.

Befehlsübersicht

ABS
AND
ASC
ATN
CHR$
CLEAR
CONT
COS
DATA
DIM
END
FOR ... TO ... STEP

FRE
GOSUB
GOTO
IF
INPUT
LEFT$
LEN
LET
LIST
LOG
MID$
NEW

NEXT
NOT
ON
OR
PEEK
POKE
POS
PRINT
READ
REM
RESTORE
RETURN

RIGHT$
RND
RUN
SIN
SPC
SQR
STEP
STR$
TAB
TAN
THEN
VAL