GNU-Pascal in Beispielen: Einstieg in GNU Pascal

zurück zu GNU-Pascal in Beispielen

Einstieg in GNU PascalBearbeiten

In diesem Kapitel wird die Struktur eines GNU-Pascal-Programms demonstriert. Darüber hinaus wird gezeigt, wie man mit dem GNU-Pascal Compiler umgeht.

Das erste ProgrammBearbeiten

Der erste Quelltext sieht wie folgt aus:

Das erste ProgrammBearbeiten

{ Gibt 'Hallo, Welt!' aus }
program Erstes;
begin
  WriteLn ('Hallo, Welt!')
end.

Dieser Quelltext muss nur noch in die "Sprache des Computers" übersetzt werden, damit dieser die von uns geschriebenen Anweisungen ausführen kann. Der entsprechende Befehl, der innerhalb einer Shell oder einer entsprechenden grafischen Programmierumgebung ausgeführt werden kann, lautet

 gpc erstes.pas -o erstes

Dabei wird angenommen, dass die Datei, unter welcher der Quelltext gespeichert wurde, erstes.pas lautet.

Die Option -o bewirkt, dass eine Datei erzeugt wird, welche erstes heißt [1]. Diese Datei ist ausführbar. Ausführen kann man sie, indem man auf der Kommandozeile ./erstes eingibt.

ErklärungBearbeiten

In der ersten Zeile befindet sich ein Kommentar. Kommentare werden mit einer geschweiften Klammer[2] "{" eingeleitet, danach darf beliebig viel Text auch über mehrere Zeilen folgen. Dieser Text darf kein weiteres Kommentarzeichen enthalten. Das Ende des Kommentars ist eine geschlossene geschweifte Klammer}.

program ist das erste Schlüsselwort. Es teilt dem Compiler mit, dass der nun folgende Quelltext ein Programm bedeutet. Außerdem wird hier der Name des Programms angegeben. Der Name des ausführbaren Programms, welcher durch die Option -o bestimmt wurde und der Name neben der program-Anweisung müssen nicht übereinstimmen. Im Sinne der Lesbarkeit von Quelltexten ist dies aber von Vorteil.

Zwischen begin und end befinden sich alle Aktionen, die das Programm ausführen soll. Die einzige Aktion, die unser erstes Programm auszuführen hat, besteht darin, den Text "Hallo, Welt!" auf den Bildschirm zu schreiben. Die passende Anweisung lautet WriteLn. Das Ln bewirkt einen Zeilenvorschub. Text muss immer zwischen Apostrophe gesetzt werden. Soll der Apostroph selbst ausgegeben werden, so sind zwei Apostrophe zu schreiben. Wie am Ende eines Satzes ein Punkt steht, so steht auch am Ende eines Programms ein Punkt.

Das zweite ProgrammBearbeiten

Der zweite Quelltext sieht wie folgt aus:

Das zweite ProgrammBearbeiten

program Zweites;

begin
  Write ('Dieser Text enthält das ''-Zeichen');
  WriteLn
end.

Auch dieses Programm lässt sich übersetzen, indem gpc zweites.pas -o zweites eingeben wird um anschließend mit der Eingabe von ./zweites ausgeführt werden zu können.

ErklärungBearbeiten

Die erste Write-Anweisung schreibt in bekannter Weise einen Text auf den Bildschirm. Diesmal wird das Apostroph einmal ausgegeben. Nach der ersten Write-Anweisung wird kein Zeilenvorschub durchgeführt. Dieser wird hingegen durch die zweite WriteLn-Anweisung bewirkt. Zwischen zwei Anweisungen muss ein Semikolon stehen, wobei begin und end nicht als Anweisungen gelten, sie dienen lediglich der Gruppierung.

EingabeBearbeiten

Programme dienen häufig dazu, Eingaben entgegenzunehmen und diese zu verarbeiten. Im folgenden Programm beschäftigen wir uns mit der Eingabe von Daten.

EingabeBearbeiten

{ Liest einen Text ein }
program Eingabe1;

var
  Name: String (10);

begin
  Write ('Bitte geben Sie Ihren Namen ein: ');
  ReadLn (Name);
  WriteLn ('Guten Tag, ', Name)
end.

ErklärungBearbeiten

Zwischen var und begin werden Variablen deklariert. Variablen dienen dazu, Werte, die später nochmal verwendet werden können, zu speichern. Der Name der Variablen lautet Name, dann folgt ein Doppelpunkt, um den Namen von seinem Typ zu trennen. Der Typ ist in diesem Fall eine Zeichenkette (String). Später werden wir sehen, dass es noch viele weitere Typen gibt und die Möglichkeit besteht, sich eigene Typen zu erzeugen. In unserem Fall wird eine Zeichenkette gespeichert, die maximal 10 Zeichen lang sein kann.

Das Programm fragt nach dem Namen. Wenn dieser eingegeben wurde, indem die Routine ReadLn ihre Eingabe gelesen und in der Variablen Name gespeichert hat, dann wird "Guten Tag," gefolgt von ihrem Namen ausgegeben. Sie sehen in der letzten WriteLn-Anweisung, dass mehrere Zeichenketten durch Kommas getrennt aneinandergehängt werden können. ReadLn wartet übrigens so lange auf das Ende Ihrer Eingabe, bis Sie die ENTER-Taste gedrückt haben. Geben Sie mehr als 10 Zeichen ein, so wird die Eingabe nach dem 10. Zeichen abgeschnitten.

Schreibweise von ProgrammenBearbeiten

Niemand verbietet es uns, das obige Programm folgendermaßen zu schreiben:

SchreibweiseBearbeiten

progRAM eingabe2;vaR Name:StrIng(10);begin
WrItE('Bitte geben Sie Ihren Namen ein: ');READLN (NaME);
WriteLn ('Guten Tag, ', Name)END.

Dieser Stil ist sicher sehr persönlich. Wartungsfreundlich ist ein solcher Quellcode jedoch nicht, vor allem wenn es sich um längere Programme handelt. Aus diesem Grunde wurden die GNU-Pascal-Coding-Standards (GPCS) entwickelt, an die man sich bei dem Schreiben von GNU-Pascal-Programmen halten darf. Man sollte sich daran halten, wenn man Programme veröffentlichen möchte und darauf hofft, weitere Programmierer zur Mitarbeit zu bewegen. Im Übrigen ist es gerade für Anfänger sehr hilfreich, sich sofort den richtigen Schreibstil beim Programmieren anzugewöhnen.

AnmerkungenBearbeiten

  1. Auf betriebssystemspezifische Unterschiede der erzeugten Dateinamen gehen wir im Anhang Anhang Systemspezifische Details ein.
  2. Außer den geschweiften Klammern gibt es noch weitere Arten von Kommentaren. Hierzu gehören die einzeiligen Kommentare, die mit "//" eingeleitet werden und bis zum Ende der Zeile reichen, wie auch Kommentare, die durch je zwei Zeichen umschlossen werden (* Kommentar *).
    // Kommentar bis zum Ende der Zeile
    (* Kommentar
    ... mehrzeilig *)