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. |