Kapitel 2: Installation und Inbetriebnahme

Inhaltsverzeichnis

Kapitel 4: Bildschirmausgabe

3. Aufbau eines FreeBASIC-Programmes

In den folgenden Kapiteln lernen Sie die grundlegenden Elemente der Sprache FreeBASIC kennen. Wenn Sie bereits Programmiererfahrung besitzen, brauchen Sie vermutlich das ein oder andere Kapitel nur zu überfliegen. Ansonsten sollten Sie besonders die nächsten Kapitel gründlich lesen, da sie die Grundlage der weiteren Programmierung bilden.

Zunächst lernen Sie den syntaktischen Aufbau eines FreeBASIC-Programmes kennen. Sollten Sie im Augenblick noch nicht jede Einzelheit dieses Kapitels verstehen, brauchen Sie deshalb nicht zu verzagen — fahren Sie anschließend mit Kapitel 4 fort, wo Sie die ersten Programme kennen lernen. Wenn Sie dann im Laufe des Buches ein Gespür dafür entwickelt haben, wie FreeBASIC funktioniert, können Sie noch einmal hierher zurückkehren, um die Feinheiten des Aufbaus zu vertiefen.

3.1 Grundaufbau und Ablauf

FreeBASIC ist eine imperative Sprache. Der Programmablauf wird durch eine Reihe aufeinander folgender Anweisungen beschrieben. Das bedeutet, dass das Programm von oben nach unten Befehl für Befehl abgearbeitet wird. Für gewöhnlich steht in jeder Zeile eine neue Anweisung.

Der reguläre Programmablauf kann durch Bedingungen, Schleifen und Verzweigungen unterbrochen werden. Bei einer Bedingung werden bestimmte Anweisungen nur unter gewissen Voraussetzungen ausgeführt. Eine Schleife erlaubt es, eine Gruppe von Anweisungen mehrmals hintereinander durchzuführen. Verzweigungen schließlich springen zu einem anderen Abschnitt des Programmes, führen den dortigen Programmcode aus und springen anschließend wieder zurück. Mehr zum Thema Bedingungen, Schleifen und Verzweigungen erfahren Sie in Kapitel 10, Kapitel 11 und Kapitel 12.

Wie in BASIC-Dialekten üblich, ignoriert FreeBASIC die Groß- und Kleinschreibung von Befehlen. Ob Sie den Befehl zur Abfrage des Tastaturpuffers nun GETKEY oder getkey oder auch gETkeY schreiben, ist völlig egal, abgesehen davon, dass die letzte Schreibweise sehr schwer lesbar und daher nicht empfehlenswert ist. Neben der klassischen kompletten Großschreibung bzw. der kompletten Kleinschreibung hat sich auch ein gemischter Stil durchgesetzt, in dem nur der erste Buchstabe des Wortes (Getkey) oder auch der erste Buchstabe jedes Wortbestandteils (GetKey) groß geschrieben wird. Welchen Stil Sie wählen, müssen Sie selbst entscheiden; es wird jedoch wärmstens empfohlen, den gewählten Stil für das ganze Programm durchzuhalten.

Mehrfache aufeinander folgende Leer- oder Tabulatorzeichen werden wie ein einziges Leerzeichen behandelt. Sie können dieses Verhalten dazu nutzen, im Quelltext sinnvolle Einrückungen vorzunehmen, um ihn lesbarer zu gestalten.

3.2 Kommentare

Programme sollen nicht nur für den Computer verständlich sein, sondern auch für diejenigen, die sich später den Quelltext ansehen wollen. Selbst wenn der Quelltext nicht für fremde Augen bestimmt ist, muss zumindest der Programmierer sein eigenes Programm später wieder verstehen können. Bei einem kurzen Programm ist das meist noch sehr einfach. Bei umfangreicheren Programmen können Kommentare helfen: diese werden vom Compiler ignoriert und dienen daher lediglich dem Programmierer als Hilfe. Sie können in einem Kommentar jeden beliebigen Text einbauen, von Erklärungen zum Programmcode bis hin zu Lizenzbestimmungen — den Programmablauf wird das nicht beeinflussen.

Früher diente der Befehl REM als Einleitung einer Kommentarzeile. REM wird unter FreeBASIC weiterhin unterstützt, jedoch gibt es mit dem Hochkomma ' eine wesentlich bequemere Alternative (ASCII-Code 39; nicht zu verwechseln mit den beiden Apostroph-Zeichen).

REM Eine Kommentarzeile, die (einschliesslich des Befehls REM) ignoriert wird
' dasselbe mit Hochkomma: die Zeile wird (einschliesslich Hochkomma) ignoriert
PRINT "Hallo Welt" ' Ein Kommentar kann auch nach einer Anweisung folgen

Soll ein mehrzeiliger Kommentar verfasst werden — etwa um einleitende Informationen zum Programm oder zu den Lizenzbedingungen zu geben — dann wird dieser mit /' eingeleitet und mit '/ beendet.

PRINT "Diese Zeile wird normal ausgegeben."
/' Hier beginnt der Kommentarblock
   Alles innerhalb des Blocks wird ignoriert.
   Nach dem Abschluss geht es normal weiter. '/
PRINT "Diese Zeile wird wieder ausgegeben."

Achten Sie bei der Verwendung von Kommentaren darauf, die möglicherweise unklaren Abschnitte zu erläutern. Die Erklärung offensichtlicher Dinge ist dagegen wenig sinnvoll. Mag für einen kompletten Anfänger der Kommentar

PRINT "Hallo Welt"   ' gibt den Text 'Hallo Welt' aus

noch hilfreich sein, ist er für jeden, der sich auch nur ein wenig mit Programmierung auskennt, selbstverständlich und wird viel eher als Gängelung angesehen. Durch eine Flut solcher Kommentare wird das Programm eher undurchsichtiger als verständlicher, da wirklich wichtige Informationen untergehen.
Hinweise zu einem sinnvollen Umgang mit Kommentaren finden Sie in [KapStil].

3.3 Zeilenfortsetzungszeichen

In der Regel entspricht jede Programmzeile einer Anweisung. Das Zeilenende legt damit auch das Ende der Anweisung fest. Dies kann bei langen Anweisungen hinderlich sein. Überlange Zeilen erschweren die Lesbarkeit des Codes; bei den Codebeispielen in diesem Buch wären sie sogar gar nicht sinnvoll abdruckbar. Zum Glück stellt FreeBASIC eine Möglichkeit bereit, überlange Zeilen auf mehrere Zeilen aufzuteilen.

Wenn der Compiler auf einen allein stehenden Unterstrich _ stößt (also auf einen Unterstrich, der nicht Teil eines Befehls, einer Variablen oder eines Strings ist), dann wird die folgende Zeile an die aktuelle angefügt — beide Zeilen werden also so behandelt, als ob sie eine einzige wären. Selbstverständlich können auf diese Art auch mehrere Zeilen zusammengefügt werden.

Der Unterstrich selbst und alles, was in der alten Zeile auf ihn folgt, wird vom Compiler ignoriert. Dies erlaubt Ihnen beispielsweise, am Ende der Zeile einen Kommentar unterzubringen, etwa um in der Definition einer Funktion (vgl. Kapitel 12) die vorkommenden Parameter zu erklären, wie im folgenden Beispiel:

FUNCTION eingabe( BYVAL s AS STRING, _          ' ausgegebene Meldung
                  BYVAL Sys AS STRING = "*", _  ' Typ der Eingabe
                  BYVAL Upper AS INTEGER = 1, _ ' Umwandlung in Grossbuchstaben
                  BYVAL pw AS STRING = "", _    ' Zeichen zur Passwortmaskierung
                  BYVAL AddLf AS INTEGER = 1, _ ' Flag zum Hinzufuegen eines LF
                  BYVAL Edit AS STRING = "" _   ' zu editierender String
                ) AS STRING

Abgesehen davon, dass die Funktion nicht in einer Zeile hätte abgedruckt werden können, ist auch eine Kommentierung ohne dem Zeilenfortsetzungszeichen schwer möglich.

3.4 Trennung von Befehlen mit Doppelpunkt

Andererseits ist es auch möglich, mehrere kurze Anweisungen in eine Zeile zu packen. Die Anweisungen werden dazu durch einen Doppelpunkt : getrennt.

PRINT "Hallo!" : PRINT "Willkommen im Programm."

Der Quelltext wird vom Compiler so behandelt, als ob statt des Doppelpunktes ein Zeilenumbruch stehen würde. Sie sollten sich jedoch darüber im Klaren sein, dass die Verwendung des Doppelpunktes Ihr Programm in den meisten Fällen schwerer lesbar macht. In aller Regel sollten Sie nur eine Anweisung pro Zeile verwenden.


Kapitel 2: Installation und Inbetriebnahme

Inhaltsverzeichnis

Kapitel 4: Bildschirmausgabe