Pascal-Tutorial (Vorwort, Installation, Kapitel 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

Programmaufbau, Units

In diesem Kapitel:

1.1. Programmaufbau

Anweisungen geben werden Sie noch genügend, um dem Computer zu sagen, was er tun soll. Bevor Sie jedoch Ihre programmspezifischen Anweisungen (schließlich macht ja nicht jedes Programm das Gleiche) schreiben können, muss Ihr Programm einen gewissen Grundaufbau haben. Das bedeutet, bevor Sie mit dem eigentlichen Programm anfangen können, müssen einige Anweisungen bereits vorhanden sein.

Sehen wir uns gleich den Grundaufbau an, der IMMER vorhanden sein muss:

PROGRAM Name;
BEGIN
 
END.

Die erste Zeile ist optional, und somit nicht zwingend erforderlich, wenn auch stark empfehlenswert. Anstelle von Name sollte der Name Ihres Programmes stehen. Das bedeutet, dass nur mehr zwei Zeilen übrig bleiben, die unbedingt vorhanden sein müssen. In der einen Zeile steht BEGIN und in der anderen END.. Achten Sie darauf, dass in den beiden Zeilen sonst nichts steht. Kommentare wären natürlich zulässig, aber mehr dazu später. Noch einmal zur Erinnerung: In Pascal ist es vollkommen egal, ob Sie Anweisungen groß oder klein schreiben.

Natürlich ginge auch:

program name;
begin
 
end.

In Pascal ist auch egal, wieviele Leerzeichen zwischen den Bezeichnern stehen. Zur Demonstration hier noch einmal das Beispiel aus dem Kapitel Installation:

PROGRAM Hello_World;
USES Crt;
BEGIN
Write ('hello, world!');
ReadKey;
END.

Es ginge auch folgende Version:

PROGRAM       Hello_World;
USES Crt;
BEGIN
 
 
Write ('hello, world!');        ReadKey;
 
END.

Leerzeichen werden vom Compiler mit Zeilenumbruchszeichen gleichgestellt. Es gibt allerdings auch Ausnahmen, wie bei BEGIN und END.. Diese Anweisungen müssen in einer Zeile stehen. Der Grund dafür liegt in den fehlenden Strichpunkten. Übrigens würde der Compiler einen Fehler melden, wenn Sie hinter BEGIN ein Semikolon (Strichpunkt) schreiben. Die Strichpunkte sind nicht nutzlos, denn sie zeigen dem Compiler, wo eine Zeile endet.

Für den Compiler ist die Zeile also dort aus (mit Ausnahmen!), wo das Semikolon folgt. Das ist auch der Grund, weshalb wir Anweisungen wie z.B. Write und ReadKey in eine Zeile schreiben konnten. Getrennt wurden beide Anweisungen nur durch den Strichpunkt. Achten Sie darauf, dass Sie Programmierzeilen mit Semikolon abschließen. Das ist einer der häufigsten Anfängerfehler!

Sehen wir uns noch einmal das hello, world!-Programm an. Ich habe die jeweiligen 3 Bestandteile des Programms farbig hervorgehoben. Rechts daneben steht die Bedeutung der Teile.

PROGRAM Hello_World; Programmkopf
USES Crt; Deklarationsteil
BEGIN
Write ('hello, world!');
ReadKey;
END.
Definitionsteil

Wie Sie an der Tabelle erkennen können, unterteilt man ein Programm in 3 Teile: Programmkopf, Deklarationsteil und Definitionsteil. Programmkopf und Deklarationsteil sind optional. Den Programmkopf gibt man, der Vollständigkeit halber, aber immer mit an.

1.2. Units

Schauen Sie sich einmal im oberen Programm den Deklarationsteil an. Dort steht die Zeile:

USES Crt;

Hier geben wir dem Compiler bekannt, dass wir die Bibliothek (= Unit; in anderen Programmiersprachen heißen Bibliotheken (allg.) libraries) Crt verwenden möchte. Im Quelltext darf nur eine USES-Zeile vorkommen. Um mehrere Units im Programm zu verwenden, werden die Namen der einzelnen Units durch Beistriche getrennt. Zum Beispiel:

USES Crt, Dos;

Der Programmierer gibt damit dem Compiler bekannt, dass er die beiden Units Crt und DOS verwenden will. Die Zeile wird, wie üblich, mit einem Semikolon abgeschlossen.

Doch was sind denn nun Bibliotheken (Units)? Mehrmals haben wir die Anweisung Write verwendet. Sie gibt einen Text auf dem Bildschirm aus. Doch haben wir jemals die Programmierzeilen geschrieben, die die Bildschirmausgabe zur Folge haben? Haben wir nicht. In Pascal ist es möglich, Programmierzeilen in einer Prozedur oder Funktion zusammenzufassen, und diese dann einfach bei Bedarf aufzurufen. Dadurch erreicht man Wiederverwendbarkeit.

In einer Unit stehen Prozeduren und Funktion samt Quellcode. Prozeduren und Funktionen könnte man natürlich auch in derselben Quelltextdatei definieren, was aber unpraktisch ist, da man so den Quellcode immer wieder einfügen müsste. Units tragen demnach auch zur Wiederverwendbarkeit von Funktionen und Prozeduren bei. Im Moment ist es ausreichend, wenn Sie wissen, dass Sie eine Unit einbinden müssen damit bestimmte Anweisungen (eben die Prozeduren und Funktionen) zur Verfügung stehen.

Vorheriges Kapitel Nächstes Kapitel