Variable in Pascal sind ein Kapitel für sich:
Da verschiedene Variabelentypen verschieden viel Platz benötigen, muss man sie vor dem Kompilieren deklarieren, d.h. benennen und dem Typ nach festlegen. Hier einige Beispiele:
var |
||
x, y : byte; | // belegt ein Byte im Speicher | |
s1, s2 : string; | // Kette von max 255 Zeichen Länge | |
r :real; | // reelle Zahl | |
n, m : integer; | // vorzeichen-behaftete Ganzzahl |
Variablen können für den gesamten Programm-Code als gültig erklärt werden: Man nennt sie dann globale Variable. Ihr Deklaration geschieht am besten zu Beginn des Implementationsteiles des Programms. Variable, die nur für einen Programmteil, z.B. für eine Prozedur oder eine Funktion gültig sein sollen, werden zu Beginn des Programmblock definiert. Man nennt sie dann lokale Variable. Nach Verlassen der Prozedur 'vergisst' PASCAL sie, d.h. man kann nicht mehr auf sie zugreifen.
PASCAL ist sehr eigen bei der Behandlung verschiedener Variabelentypen. So ist z.B. der Inhalt einer EditBox vom Typ String. Möchte man einen Zahlenwert ausgeben, so muss man diesen Zahlentyp (hier: integer) mittels der Funktion IntToStr in einen string umwandeln: Ausgabe.Text:= IntToStr(x).
Soll umgekehrt mit dem Zahlenwert in einer EditBox weitergerechnet werden, so muss diese Zeichenkette in einen Zahlentyp umgewandelt werden: x := StrToInt(Eingabe.Text).
Bei einer Anzeige, die durch Zeichen getrennt Minuten, Sekunden und Zehntelsekunden anzeigt, muss man schon ein wenig nachdenken: Sie besteht aus drei Zeichenketten, die sich mit Hilfe der obigen Funktionen aus den Ganzzahlwerten für min, sek und zehntelsek ergeben. Zusätzlich treten noch die beiden Zeichen ':' und ',' auf. Die Syntax für solche eine Ausgabe wäre dann: |
Variable, auf die von verschiedenen Prozeduren des Programms
zugegriffen werden muss, müssen global zu Beginn der Implementationsteils des
Programms deklariert werden. Man nennt sie daher auch globale Variable. Variable,
die lokal nur innerhalb einer Prozedur verwendet werden (z.B. Zähler in
Zählschleifen) , werden auch nur in dieser Prozedur deklariert und zwar
wiederum vor dem Implementationsteils dieser Prozedur. Solche Variablen heißen
lokale Variable. Man deklariert sie dann auch nur innerhalb
dieser Prozedur. Nach dem Verlassen der Prozedur 'vergisst' Delphi diese
Variablen. Ihren Bezeichner kann man gleichlautend auch in anderen Prozeduren
verwenden.
procedure TForm1.Timer1Timer(Sender: TObject);
© Dietrich Praclik
var zs,sek,min : integer; // Das sind lokale Variable, die nur
sekstr,minstr : string; // in dieser Prozedur benötigt werden
begin
inc(z,34);
// z ist eine globale Variable.
zs := z mod 10;
sek := (z div 10) mod 60;
min := (z div 10) div 60;
if sek <10 then sekstr := '0'+IntTostr(sek)else sekstr := IntToStr(sek);
if min <10 then minstr := '0'+IntTostr(min)else minstr := IntToStr(min);
Label1.Caption := minstr+':'+sekstr+','+IntTostr(zs);
end;