Oft gibt es gewisse Werte in einem Programm, die während der gesamten Laufzeit des Programmes nicht verändert werden. FÜr diese Konstanten kann man in Pascal Namen vergeben. Wie die Variablendeklaration muß die Konstantendeklaration im Vereinbarungsteil erfolgen. Während der report verlangt, daß der Konstantenvereinbarungsteil vor dem Variablenvereinbarungsteil steht, ist in Pascal 2.0 die Reihenfolge dieser Teile irrelevant.
PROGRAM KONSTANTEN(OUTPUT); CONST FAKTOR1 = 1.7453292E-2; (* = PI / 180 *) FAKTOR2 = 57.29577951; (* = 1 / FAKTOR1 *) CLEARSCREEN = #147; RESETWINDOW = #19 #19; TITEL = 'Dies ist ein Beispielstring'; XLO = 5; YLO = 0; XRU = 25; YRU = 15; BEGIN WRITELN(CLEARSCREEN, TITEL); WRITELN(TITEL); WRITELN(TITEL); WRITELN(TITEL); WINDOW (XLO, YLO, XRU, YRU, 1); WRITELN(TITEL); WRITELN(TITEL); WRITE(RESETWINDOW); END.
Bild 10: Ein Programmen mit Konstanten
Eine Konstantendeklaration wird durch das Wortsymbol CONST eingeleitet. Jedem Namen wird nach einem Gleichheitszeichen (nicht »:=«) ein Wert zugeordnet. Dabei können beliebige Konstanten verwendet werden. Der Typ der Konstanten bestimmt auch den Typ des Konstantennamens. So ist YLU eine Konstante vom Typ INTEGER, während FAKTOR1 vom Typ REAL ist.
Nach dem Gleichheitszeichen darf nur eine Konstante (eventuell mit einem Vorzeichen) folgen. Andere Ausdrücke sind nicht erlaubt. Die Werte der Konstanten können somit bereits zum Übersetzungszeitpunkt bestimmt werden.
CONST FAKTOR3 = - FAKTOR1; (* zulässig *) FAKTOR2 = 1 / FAKTOR1; (* nicht erlaubt *)
Es gibt viele Gründe für die Verwendung von Konstantennamen: Das wichtigste Argument ist die Tatsache, daß der Wert nur an einer einzigen Stelle im Quelltext auftritt. Damit können spätere Programmänderungen konsistent durch die Modifikation der Konstantendeklaration durchgeführt werden. Beispiele für solche Änderungen finden Sie unter anderem in Abschnitt 2.9 bei der Deklaration von Array-Variablen. Des weiteren erhöhen Konstantennamen den Dokumentationswert eines Programmes erheblich:
IF ZAEHLER = ENDWERT THEN ....
ist wesentlich aussagekräftiger als
IF ZAEHLER = 342 THEN
Insbesondere bei Stringkonstanten fällt außerdem die Speicherplatzeinsparung durch die Verwendung von Konstanten ins Gewicht. Die Stringkonstante muß nämlich nur genau einmal im Programmspeicher vorhanden sein.
Das Beispielprogramm in Bild 10 zeigt die Verwendung von Steuersequenzen in Pascal 2.0 zur Bildschirmausgabe: Zunächst werden einige Zeilen Text gedruckt. Anschließend wird über dem gedruckten Text ein verkleinertes Bildschirmfenster (window) definiert, in dem wiederum einige Textzeilen gedruckt werden. Vor dem Ende des Programmes wird mit dem String RESETWINDOW die Fensterdefinition wieder aufgehoben, so daß nachfolgende Aus- und Eingaben wieder auf dem gesamten Bildschirm möglich sind. Die Parameter der vordefinierten Prozedur WINDOW sind in Abschnitt 4.4.4.10 erklärt.