vor

Objektorientierte Programmierung mit Object-Pascal

weiter

4.5 Variablen, Datentypen, Konstanten

Variablen sind reservierte Speicherbereiche. Sie haben einen Namen, mit dem sie verwaltet werden, und können mit einem Wert eines bestimmten Typs gefüllt werden. Wird der Variablen ein neuer Wert zugewiesen, dann ersetzt der neue den alten und der alte Wert ist verloren.

Variable Typ Speicherbedarf Erklärung
Ganze Zahlen Integer 4 Byte -2147483648 bis 2147483647
Natürliche Zahlen Byte 1 Byte 0 bis 255
Reelle Zahlen Real 6 Byte 2,9 * 10 hoch -39 bis 1,7 * 10 hoch 38
Boolescher Wert Boolean 1 Bit true oder false
Zeichen Char 1 Byte 256 Zeichen z. B. 'A' oder auch #65
Zeichenketten String ein Byte pro Zeichen 'Vorname' + ' ' + 'Nachname'
Textdatei TextFile   Dateien, die lediglich Text (ASCII- oder UNICODE-Zeichenfolgen in Zeilen angeordnet) enthalten
Binärdatei File of Byte
File of Integer
File of Char
File of RecordTyp
  Dateien mit beliebigem Inhalt

Das Anlegen des Speicherbereichs heißt deklarieren. Das muss gemacht werden, bevor die Variable das erste mal aufgerufen wird, also entweder im private-Bereich ganz oben (dann gelten sie für das gesamte Projekt) oder mit var im Bereich implementation unter dem Kommentar {$R *.DFM} bzw. am Anfang der Prozedur, für die sie gelten sollen.

Beispiele:
  • Deklarationen für das ganze Projekt ohne var:
       private
         { Private declarations }
         a, b, c: Integer;
         Preis: Real;
         Ware1: String;
       public


  • Deklarationen für die ganze Unit mit var:
    implementation

    {$R *.DFM}
       var
         a, b, c: Integer;
         Preis: Real;
         Ware1: String;


  • Deklarationen nur für die Prozedur z. B. als Zählvariable:
    procedure TForm1.Button1Click(Sender: TObject);
       var
         i, j: Integer;
    begin

Beim Deklarieren werden der Name und der Datentyp festgelegt. Man kann der Variablen auch schon einen Startwert zuordnen. Nach meiner Erfahrung klappt das aber nur, wenn man die Variablen im Bereich implementation deklariert. Man kann auch nicht mehreren Variablen gleichzeitig in einer einzigen Anwesung einen Startwert zuweisen.
Mit dem folgenden Programm wird als Meldung ausgegeben: "Der Startwert von b ist 7."

implementation

{$R *.DFM}
   var
     a: String='Der Startwert von b ist ';
     b: Integer=7;


procedure TForm1.Button1Click(Sender: TObject);

begin
     ShowMessage(a + IntToStr(b) + '.');
end;


Während ganze Zahlen (Integer) stets ganz genau sind, werden die Gleitkommazahlen (Real) immer nur mehr oder weniger angenähert dargestellt. Sie sind daher nicht geeignet für Auswahlstrukturen mit Vergleichen, es sei denn, man benutzt eine Konstruktion in der Art: Bedingung ist erfüllt, wenn der Betrag der Differenz zwischen der Zahl und der Vergleichszahl kleiner ist als etwa 0,000001.

Bitte beachten Sie auch, dass es den Variablentyp "Real" (6 Byte) nur bei Borland gibt. Bei anderen Compilern und anderen Programmiersprachen gibt es nur Single (4 Byte) und Duoble (8 Byte).

Konstanten können nicht geändert werden. Man kann selbst Konstanten deklarieren:

const Maximum = 100;

Andere Konstanten sind in Delphi schon vorbereitet (z. B. die Kreiszahl pi).

In engen Grenzen ist es möglich, einen Variablentyp in einen anderen umzuwandeln. Das geht z. B. mit Funktionen wie IntToStr() oder FloatToStr(). Andererseits wandelt Delphi automatisch Integer in Real um, wenn das nötig wird. Umgekehrt muss man allerdings die Funktion Trunc() benutzen, bei der einfach die Kommastellen abgeschnitten werden.

Wenn die Größen übereinstimmen, funktioniert auch z. B. folgendes:

var a: Byte;
    b: Char;
begin
  a := 3;
  b := Char(a);


vor

Inhaltsverzeichnis

weiter