Home Programmierung
und BIOS
Shareware-
FAQ
Kontakt u.
Infos

Pascal-Toolbox Nr. 6

Allgemeine Grundlagen der Pascal-Programmierung

Da ich desöfteren gefragt werde, wie man denn nun Programme in Pascal schreibt, biete ich hier nun eine kurze Einführung in die Programmierung von Pascal an. Sie soll dem Interessierten einen kleinen Einblick in Pascal geben und erste Programmierversuche unterstützen. Eine richtige Anleitung bzw. ein gutes Buch kann und will sie jedoch nicht ersetzen.

Eine Einführung in die Programmierung insgesamt wird man hier jedoch nicht erhalten. Wer Schleifen nur von Schuhen her kennt und wer Rekursion für ein neues Computerspiel hält, dem wird auch hier nicht viel geholfen sein. In solchen Fällen empfehle ich wirklich die Anschaffung eines guten Pascal-Buches - dort wird man meistens wirklich Schritt für Schritt an die Techniken der Programmierung herangeführt.


Wichtig für die Programmierung in Pascal ist erst einmal die Kenntnis der grundlegenden Eigenschaften:

  • Bis auf wenige Ausnahmen werden alle Anweisungen mit einem Semikolon ( ; ) abgeschlossen. Fehlt dieses, gibt es eine oder mehrere Fehlermeldungen
  • Kommentare werden mit der öffnenden geschweiften Klammer ( { ) eingeleitet und mit der schließenden ( } ) beendet.
  • Alle Anweisungsblöcke (und damit auch das Hauptprogramm) beginnen mit "begin" und enden mit "end;" (bzw. "end." beim Hauptprogramm).
  • Oft verwendete Passagen können in Prozeduren und Funktionen ausgelagert werden. Diese können wiederum in Units ausgelagert werden.
  • In Units werden Befehle (Prozeduren und Funktionen) zusammengefaßt, die (a) thematisch verwandt sind und (b) in mehreren Programmen verwendet werden sollen. Units werden über den Befehl "uses" eingebunden, welcher zu Anfang des Programmes stehen muß. Wichtige Standard-Units sind z.B. CRT für Bildschirmausgaben etc. und DOS für Dateifunktionen etc.
  • Pascal unterscheidet nicht zwischen Groß- und Kleinschreibung. TEXT, Text, TexT sind folglich für den Compiler identisch.
  • Borland Turbo Pascal hat eine sehr gute Online-Hilfe, welche wirklich zu jedem Befehl eine eigene Seite mit Syntax, Hinweisen und Beispielen beinhaltet. Gebt einfach die gewünschte Funktion ein, bewegt dann den Textcursor auf das Wort und drückt Strg-F1.
  • Neuere Pascal-Versionen (bzw. Editoren für die Compiler) unterstützen auch farbige Hervorhebungen der einzelnen Schlüsselwörter von Pascal. Es ist sehr hilfreich, diese Option zu aktivieren.

Pascal kennt unter anderem die folgenden Variablen:

  • String: Zeichenketten, maximal 255 Zeichen (nicht Nullterminiert wie in C/C++, sondern gesteuert über Längenbyte am Anfang). Zeichenketten werden mit Hochkommata ( ' ) eingeschlossen.
  • Char: Ein Buchstabe
  • Boolean: Wahrheitswert (True oder False)
  • Byte: ganze Zahl (Wertebereich 0 bis 255)
  • ShortInt: ganze Zahl (Wertebereich -128 bis 127)
  • Word: ganze Zahl (Wertebereich 0 bis 65535)
  • Integer: ganze Zahl (Wertebereich -32768 bis 32767)
  • LongInt: ganze Zahl (Wertebereich -2147483648 bis 2147483647)
  • Real: Fließkommazahl (Wertebereich +/-2,9*10^(-39) bis +/-1,7*10^(+38))

Wichtig sind hierbei in der Anfangsphase sicherlich nur String und Integer.


Nun wollen wir uns mal ein einfaches Basisgerüst für ein Pascal-Programm ansehen:


PROGRAM Beispiel; {Programmname}

USES DOS,CRT;     {Benötigte Units}

VAR ... {Variablen- und Konstantendeklarationen}

...     {Prozeduren und Funktionen}

BEGIN   {hier beginnt das eigentliche Programm (Hauptprogramm)}

...     {Anweisungen des Hauptprogramms}

END.    {hier endet das eigentliche Programm (Hauptprogramm)}

Wichtige Funktionen von Pascal für den Bereich zwischen "begin" und "end" sind z.B. (alphabetisch sortiert):

Befehl Unit Bedeutung
CLRSCR CRT Löscht den Bildschirm
DELAY(anzahl) CRT Erzeugt Verzögerung von "anzahl" Millisekunden.
EXEC(programm,kommando) DOS Führt das angegebene "programm" aus und übergibt "kommando" als Parameter.
EXIT - Beendet das aktuelle Unterprogramm. Bei Aufruf im Hauptprogramm wird dieses beendet.
GOTOXY(spalte,zeile) CRT Setzt den Cursor in eine bestimmte "spalte" und eine bestimmte "zeile".
HALT(exitcode) - Beendet das Programm und liefert "exitcode" zurück.
KEYPRESSED:Boolean CRT Gibt an, ob eine Taste gedrückt wurde (Rückgabewert true).
LENGTH(string):integer - Gibt die Anzahl der Zeichen in "string" als Integerzahl zurück.
READ(string) - Liest eine beliebige Anzahl von Zeichen von der Tastatur bis der Benutzer ENTER drückt.
READKEY:char CRT Liest ein Zeichen von der Tastatur ohne Bildschirmausgabe und gibt dieses zurück.
READLN - Liest eine beliebige Anzahl von Zeichen von der Tastatur bis der Benutzer ENTER drückt. Danach erfolgt ein Zeilenumbruch.
TEXTBACKGROUND(farbe) CRT Setzt die Hintergrundfarbe
TEXTCOLOR(farbe) CRT Setzt die Vordergrundfarbe/die Textfarbe
WRITE(string) - Gibt "string" auf dem Bildschirm aus.
WRITELN(string) - Gibt "string" auf dem Bildschirm aus. Nach der Ausgabe erfolgt ein Zeilenumbruch

Dies ist nur ein ganz kleiner Ausschnitt aus dem Angebot an vordefinierten Funktionen und Prozeduren von Pascal. Diese sind aber die wichtigsten, auf jeden Fall für Anfänger.

Dazu kommen noch die "normalen" Operatoren:

  • =für Vergleiche
  • :=für Zuweisungen
  • < für kleiner
  • > für größer
  • >=für größer-gleich
  • <=für kleiner-gleich
  • * für Mulitplikation
  • / für Division
  • + für Addition
  • - für Subtraktion
  • mod für Modulo

Damit sind z.B. die folgenden Ausdrücke zu bilden:

  • Variable :=12+(24-3);
  • Variable :=(24 / 6) * 4

Mit unserem Wissen können wir nun schon das berühmte "Hallo-Welt"-Programm schreiben:


PROGRAM HalloWelt;

BEGIN

  WRITELN('Hallo Welt!');

END.

Will man mit Variablen arbeiten, ist dies nun auch kein Problem mehr.


PROGRAM HalloWelt;

VAR Wort:String;

BEGIN

  Wort:='Hallo Welt!';

  WRITELN(Wort);

END.

Damit können wir nun schon einfache Programme schreiben. Zum Abschluß möchte ich noch kurz auf die Syntax von Prozeduren und Funktionen eingehen:


PROGRAM Demo;

uses crt,dos;

var OhneZweck:Integer; {Nur zur Demonstration, GLOBALE Variable}



PROCEDURE SchreibeText(Wort:String);

var OhneZweck:Integer; {Nur zur Demonstration, LOKALE Variable}

begin

  writeln(Wort);

end;



FUNCTION Doppel(i:integer):integer;

var OhneZweck:Integer; {Nur zur Demonstration, LOKALE Variable}

begin

  Doppel:=i*2;

end;



begin {Aufruf der Funktion/Prozedur}

  writeln(Doppel(10)); {Gebe den Rückgabewert der Funktion Doppel aus}

  SchreibeText('Hallo Welt!'); {Führe SchreibeText aus}

end. 

Eine Funktion ist nichts anderes als eine Prozedur mit Rückgabewert von beliebigem Typ. Wie wir sehen, können den Funktionen und Prozeduren in Pascal Parameter übergeben werden, die ähnlich der Deklaration der globalen Variablen deklariert werden. Verschiedene Parametertypen werden dabei mit Semikolon getrennt, gleiche mit Komma:


PROCEDURE DEMO (V1,V2,V3:integer;wort1,wort2:string;wahr:boolean;wort3:string);

Die Parameter müssen beim Aufruf selbstverständlich in der Reihenfolge belegt werden, wie sie in der Prozedur/Funktion deklariert wurden!

Als nächstes besteht die Möglichkeit, wie im Hauptprogramm, Variablen einzuführen (diesmal lokal=nur in der Funktion/Prozedur gültig) oder auch Unterfunktionen/Unterprozeduren. Letztere sind dann nur in dieser Funktion/Prozedur verfügbar!

Dann folgt der Anweisungsteil, wie vom Hauptprogramm gewohnt. Bei Funktionen sollte natürlich noch ein Wert zurückgegeben werden, dies wird dadurch bewerkstelligt, daß man den gewünschten Wert einfach dem Funktionsnamen zuweist. Die Funktion agiert also quasi als Variable, in unserem Beispiel vom Typ Integer.

Aufgerufen werden die Funktionen ganz normal wie auch die Pascal-eigenen Funktionen.


So, damit habe ich hoffentlich einen kleinen Überblick über Pascal gegeben. Man merkt sicherlich, daß das Thema komplexer ist als es auf den ersten Blick scheint. Für den interessierten Anfänger sollte es aber reichen, um zumindest einen kleinen Einstieg in Pascal zu erreichen.


Als weiterführendes Buch kann ich eigentlich nur
"Turbo Pascal 7.0 - Das Kompendium", Markt&Technik-Verlag, ISBN 3-82725-166-4, DM 39,95 empfehlen.

Alle Angaben ohne Gewähr.

Achtung: bitte Hinweise zur Aktualitšt der Daten beachten! Copyright