Programmierkurs: Delphi: Pascal: Variablen und Konstanten

Aus Wikibooks
Wechseln zu: Navigation, Suche

Variablen[Bearbeiten]

Eine Variable ist eine Möglichkeit, Daten innerhalb eines Programms zu speichern und zu verwenden. Eine Variable steht repräsentativ für einen Bereich im Speicher, in dem der Wert der Variablen gespeichert ist. Über den Variablennamen kann dann einfach auf diese Speicherstelle zugegriffen werden. Eine Variable besteht in Delphi also immer aus einem Namen, einem Typ und einer Adresse im Speicher. Um die Adresse und den dazugehörigen Speicher müssen Sie sich jedoch nicht kümmern. Delphi weist automatisch jeder Variablen eine Adresse und den benötigten Speicherplatz zu, abhängig von deren Datentyp. Nur, wenn Sie einen Zeiger als Datentyp der Variablen verwenden, sind Sie selbst für diese Dinge – und die anschließenden „Aufräumarbeiten“ zuständig.

Variablen müssen deklariert, d.h. bekannt gemacht werden, bevor sie im Programm verwendet werden können. Dies geschieht im sogenannten Deklarationsabschnitt (vor begin), der mit dem Schlüsselwort var eingeleitet wird:

var
  s: string;
begin
  { ... }
end.


Dies erzeugt die Variable s vom Typ String. Nun können wir mittels s auf die Zeichenkette zugreifen.

Es ist ebenfalls möglich, mehrere Variablen eines Typs gleichzeitig zu deklarieren, indem die Namen der Variablen mit Kommata getrennt werden.

var
  s, s2: string;
  i: Integer;
begin
  { ... }
end.


Dies deklariert sowohl zwei Variablen vom Typ String (s und s2), als auch eine vom Typ Integer (i).

Werte zuweisen und auslesen[Bearbeiten]

Um mit Variablen arbeiten zu können, müssen diesen im Programmablauf Werte zugewiesen werden. Dies geschieht mit dem Operator :=. Dabei steht auf der linken Seite des Operators die Variable, die einen Wert erhalten soll und auf der rechten Seite der entsprechende Wert. Zuweisungen können nur im Anweisungsblock erfolgen:

begin
  s := 'Ich bin eine Zeichenkette!';
  i := 64;
end.


Der Wert einer Variablen lässt sich auslesen, indem man den Variablenbezeichner an jeder Stelle einsetzt, an dem auch der Wert direkt eingesetzt werden kann. Man kann also den Wert einer Variablen auf dem Bildschirm ausgeben, oder auch mit ihr Berechnungen anstellen:

begin
  s := 'Kannst du das lesen?';
  Writeln(s);      // Gleichbedeutend mit Writeln('Kannst du das lesen?');
  i := 17;
  i := i * 2;      // anschließend ist i = 34
end.


Initialisierung von Variablen bei der Deklaration[Bearbeiten]

Es ist sogar möglich (und auch ziemlich elegant) Variablen schon bei ihrer Deklaration einen Startwert mitzugeben. Damit kann man sich große Initialisierungsorgien nach dem begin ersparen.

var
  i: Integer = 42;
begin
  { ... }
end.


Die Initialisierung ist allerdings nur bei globalen Variablen möglich. Lokale Variablen von Prozeduren und Funktionen können dagegen auf diese Weise nicht mit Startwerten belegt werden.

Konstanten[Bearbeiten]

Falls man ungewollten Änderungen eines Wertes im Laufe des Programms vorbeugen will oder sich der Wert per definitionem niemals ändern wird, sollte man Konstanten anstelle von Variablen verwenden. Diese werden ähnlich wie initialisierte Variablen deklariert. Statt des Schlüsselwortes var wird jedoch const benutzt. Der Typ einer Konstanten ergibt sich automatisch aus deren Wert:

const
  Zahl = 115;       // Konstante vom Typ Integer
  Text = 'Wort';    // Konstante vom Typ String
  Buchstabe = 'B';  // sowohl als String wie auch als Char einsetzbar


Konstanten können überall dort verwendet werden, wo Sie auch Variablen einsetzen können. Es gibt jedoch einige Funktionen, die Variablen als Parameter erfordern, da sie deren Wert bei der Ausführung ändern. Diesen Funktionen bzw. Prozeduren können dann keine Konstanten übergeben werden.

var
  i: Integer = 1;

const
  c = 1;

begin
  Inc(i);  // erhöht i um 1
  Inc(c);  // Fehlermeldung, da c kein neuer Wert zugewiesen werden darf
end.


Typisierte Konstanten[Bearbeiten]

Typisierten Konstanten wird, wie der Name schon sagt, ein definierter Typ zugewiesen (statt dass der Typ aus dem Wert entnommen wird). Damit ist es möglich, einer Konstanten z.B. auch Records und Arrays zuzuweisen. Sie werden genau wie initialisierte Variablen definiert:

const
  Programmversion: Single = 1.0;
  { konstantes Array der ersten 6 Primzahlen }
  Prim6: array[1..6] of Byte = (2, 3, 5, 7, 11, 13);


Standardmäßig werden typisierte Konstanten wie normale Konstanten behandelt, d.h. dass diese während der Laufzeit nicht geändert werden können. Man kann Delphi jedoch mit der Compiler-Direktive {$J+} anweisen, diese ähnlich wie Variablen zu behandeln. Free Pascal unterstützt Zuweisungen an typisierte Konstanten ohne weiteres.


Arrow left.png Pascal: Varianten Inhaltsverzeichnis Pascal: Operatoren Arrow right.png