Zuweisungen Initialisierung Beispiel Variablen und Konstanten

Object Pascal im Detail - Variablen und Konstanten www.delphi-treff.de 48 unit Unit1; interface uses SysUtils; var Einezahl: Integer; Diese Variable gilt in der ganzen Unit und in allen Units, die diese Unit einbinden implementation var Eine_andere_zahl: Real; Diese Variable gilt nur in dieser Unit Globale Variablen können bei ihrer Deklaration mit einem Startwert belegt werden: var Einezahl: Integer = 42; Diese Art der Zuweisung verwendet ein einfaches Gleichheitszeichen, nicht :=. Bei lokalen Variablen ist diese Initialisierung nicht möglich.

4.1.5. Lokale Variablen

Das Gegenstück zu globalen Variablen sind die lokalen. Hierbei wird eine Variable zu Beginn einer Prozedur, Funktion oder Methode deklariert. Sie kann somit nur innerhalb dieses Abschnitts verwendet werden. Wird die ProzedurFunktion verlassen, dann wird der Speicher für die Variablen wieder freigegeben, d. h. auf die Werte kann nicht mehr zugegriffen werden. So könnte eine lokale Variablendeklaration aussehen: procedure IchMacheIrgendwas; var Text: string; begin ... Irgendwas Sinnvolles end;

4.1.6. Zuweisungen

Die Zuweisung von Werten an eine Variable erfolgt in Pascal durch die Symbolfolge := „ergibt sich aus . Im Gegensatz zur Mathematik ist deshalb auch Folgendes möglich: x := x + 1; Das Laufzeitsystem berechnet hier die Summe von x und 1 und legt das Ergebnis dann wieder in x ab. x ergibt sich aus dem bisherigen x plus 1. Kurz: x wird um 1 erhöht. Object Pascal im Detail - Variablen und Konstanten www.delphi-treff.de 49

4.1.7. Initialisierung

Wird globalen Variablen kein Startwert zugewiesen, so werden sie, je nach Typ, automatisch mit 0, nil oder Leerstring initialisiert. Bevor jedoch auf eine lokale Variable lesend zugegriffen werden kann, muss sie explizit belegt werden, es muss ihr also ein Anfangswert zugewiesen werden. Strings enthalten zwar einen leeren String; alle anderen Variablentypen enthalten jedoch irgendwelche zufälligen Werte. Vergisst man den Anfangswert zu setzen, wird der Compiler beim Kompilieren eine Warnung ausgeben.

4.1.8. Beispiel

Nun wird eine kleine Beispielanwendung entwickelt, in der die weiter vorne im Kapitel genannten Wertebereiche überprüft werden. Um es möglichst einfach zu halten, wird diese Anwendung noch ohne Benutzeroberfläche programmiert. Über das Menü Datei - Neu - Weitere - Konsolenanwendung wird das Grundgerüst einer Konsolenanwendung erstellt. Als erstes sollte man eine Anwendung immer speichern. Über Datei - Projekt speichern werden alle Dateien, die zum Projekt gehören in den gewünschten Ordner gespeichert. Der Quelltext dieses Programmes sieht folgendermaßen aus. program Ganzzahlen; {APPTYPE CONSOLE} uses SysUtils; var i: Integer; begin i := 2147483647; WriteLni; i := i + 1; WriteLni; ReadLn; end. In der ersten Zeile wird dem Compiler mitgeteilt, dass die Anwendung den Namen Ganzzahlen haben soll. Die nächste Zeile enthält eine weitere Information für den Compiler. APPTYPE CONSOLE heißt, dass die Anwendung eine Konsolenanwendung ist. Durch das Schlüsselwort uses können Delphi-Units in die eigene Anwendung eingebunden werden, damit ihre Funktionalität verfügbar ist. In diesem Fall wird die Unit SysUtils eingebunden, die einige notwendige Funktionen zur Verfügung stellt. Da in dieser Beispielanwendung der Wertebereich einer Integer-Variablen überprüft werden soll, muss eine Variable dieses Typs deklariert werden. Wie das gemacht wird, wurde weiter vorne bereits beschrieben. Der eigentliche Programmablauf wird zwischen begin und end. geschrieben. Zuerst wird der Integervariablen ein Wert zugewiesen und über WriteLn auf der Konsole ausgegeben. Dann wird der Wert Object Pascal im Detail - Variablen und Konstanten www.delphi-treff.de 50 um 1 erhöht und wiederum ausgegeben. Durch ReadLn wird verhindert, dass sich das Konsolenfenster sofort wieder schließt. ReadLn wartet darauf, dass der Benutzer eine Eingabe durch Drücken der Enter- Taste bestätigt. Die Anwendung kann jetzt über das Menü Start - Ausführen oder den Shortcut F9 kompiliert und gestartet werden. Es erscheint das folgende Fenster: Das ist jetzt aber merkwürdig. Die Variable wird im Programmcode um 1 erhöht, hat danach aber auf einmal einen negativen Wert. Wenn man sich den Wertebereich von Integer ansieht, fällt einem auf, dass der zuerst zugewiesene Wert die obere Grenze ist. Wenn man jetzt den Wert erhöht, kann die Variable den Wert nicht mehr speichern. Anstatt aber einen Fehler auszugeben, wird einfach von vorne begonnen zu zählen. Das hängt damit zusammen, wie Zahlen intern repräsentiert werden. Ist dieses Verhalten nicht erwünscht, dann sollte man in den Compiler-Optionen die Überlaufprüfung aktivieren.

4.1.9. Typumwandlung