Variables and Data Types/de

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 


1D - Variablen und Datentypen

(Autor: Tao Yue, Übersetzung ins Deutsche)


Variablen sind ähnlich wie Konstanten, aber ihre Werte können während der Programmausführung geändert werden. Variablen müssen zuerst in Pascal deklariert werden, bevor sie verwendet werden können:

var
  IdentifierList1 : DataType1;
  IdentifierList2 : DataType2;
  IdentifierList3 : DataType3;
  ...

IdentifierList ist eine Reihe von Bezeichnern, getrennt durch Kommas (,). Alle Bezeichner in der Liste werden vom gleichen Datentyp deklariert.


Zu den grundlegenden Datentypen in Pascal gehören:

  • integer
  • real
  • char
  • boolean

Standard Pascal sieht keinen String-Datentyp vor, aber die meisten modernen Compiler schon. Erfahrene Pascal-Programmierer verwenden auch Zeiger für die dynamische Speicherzuweisung, Objekte für die objektorientierte Programmierung und viele andere, aber das macht den Anfang.

Weitere Informationen zu den Pascal-Datentypen:

  • Der Datentyp "integer" kann ganze Zahlen von -32768 bis 32767 enthalten. Dies ist der signierte Bereich, der in einem 16-Bit-Wort gespeichert werden kann, und ist ein Vermächtnis aus der Zeit, als 16-Bit-CPUs üblich waren. Aus Gründen der Abwärtskompatibilität ist eine 32-Bit Ganzzahl mit Vorzeichen ein Longint und kann einen viel größeren Wertebereich enthalten.
  • Der Datentyp 3.4x10-38 bis 3.4x1038, zusätzlich zum gleichen Bereich auf der negativen Seite. Reale Werte werden im Computer gespeichert, ähnlich der wissenschaftlichen Notation, mit Mantisse und Exponent, mit einigen Komplikationen. In Pascal können Sie reale Werte in Ihrem Code entweder in Festkomma-Notation oder in wissenschaftlicher Notation ausdrücken, wobei das Zeichen E die Mantisse vom Exponenten trennt. So ist 452.13 dasselbe wie 4.5213e2.
  • Der Datentyp "char" enthält Zeichen. Achten Sie darauf, sie in einfache Anführungszeichen zu setzen: 'a' 'B' '+' Standard Pascal verwendet 8-Bit-Zeichen, nicht 16-Bit, daher wird Unicode, das verwendet wird, um alle Sprachsätze der Welt in einem UNIfied CODE-System darzustellen, nicht unterstützt.
  • Das WideChar ist ein Zwei-Byte-Zeichen (ein Element eines DBCS: Double Byte Character Set) und kann ein Unicode-Zeichen enthalten. Hinweis: Einige Unicode-Zeichen benötigen zwei WideChars. Siehe'UTF-16.
  • Free Pascal unterstützt die Delphi-Implementierung des Typs PChar. PChar ist als Zeiger auf einen Char-Typ definiert, erlaubt aber zusätzliche Operationen. Der PChar-Typ kann am besten als das Pascal-Äquivalent eines C-style null-terminierten Strings verstanden werden, d.h. eine Variable vom Typ PChar ist ein Zeiger, der auf ein Array vom Typ Char zeigt, das durch ein Null-Zeichen (#0) beendet wird. Free Pascal unterstützt die Initialisierung von PChar-typisierten Konstanten oder eine direkte Zuweisung. Zum Beispiel sind die folgenden Teile des Codes äquivalent:
program one;  
var P : PChar;  
begin  
  P := 'Dies ist eine null-terminierte Zeichenkette.';  
  WriteLn (P);  
end.
program two;  
const P : PChar = 'Dies ist eine null-terminierte Zeichenkette.';  
begin  
  WriteLn (P);  
end.
  • Free Pascal unterstützt den Typ String, wie er in Turbo Pascal definiert ist: eine Folge von Zeichen mit einer optionalen Größenangabe. Es unterstützt auch Ansistrings (mit unbegrenzter Länge) wie in Delphi. Und kann als:
{$H+}                           // String = AnsiString  
variable_name : string;         // Die Länge ist unbegrenzt.
{$H-}                           // String = ShortString 
variable_name : string;         // Wenn keine Länge angegeben wird, wird der Wert auf 255 gesetzt.
variable_name : string[länge]; // Wo:  1 < length <= 255
  • Der vordefinierte Typ ShortString ist als String der Größe 255 definiert.
  • AnsiStrings sind Zeichenketten, die keine Längenbeschränkung haben. Sie werden als Referenz gezählt und sind garantiert nullterminiert. Intern wird ein Ansistring wie ein Zeiger behandelt: der eigentliche Inhalt des Strings wird auf dem Heap gespeichert, so viel Speicher wie nötig, um den Inhalt des Strings zu speichern.
  • Widestrings (zur Darstellung von Unicode-Zeichenketten) werden in ähnlicher Weise wie Ansistrings implementiert: Referenz gezählte, null-terminierte Arrays, nur werden sie als Arrays von WideChars anstelle von regulären Chars genutzt.
  • Der boolean Datentyp kann nur zwei Werte haben: TRUE und FALSE

Ein Beispiel für die Deklaration mehrerer Variablen ist:

var
  age, year, grade : integer;
  circumference : real;
  LetterGrade : char;
  DidYouFail : Boolean;

Aus dem FPC-Handbuch

Integer Typen
Type Range Bytes
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer smallint or longint 2 or 4
Cardinal longword 4
Longint -2147483648 .. 2147483647 4
Longword 0..4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8

Free Pascal führt eine automatische Typkonvertierung in Ausdrücken durch, in denen verschiedene Arten von Integer-Typen verwendet werden.

Reele Typen
Type Range Significant digits Bytes
Real platform dependent ??? 4 or 8
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8
Extended 1.9E-4932 .. 1.1E4932 19-20 10
Comp -2E64+1 .. 2E63-1 19-20 8
Currency -922337203685477.5808 922337203685477.5807 8


Boolesche Typen
Type Bytes Ord(True)
Boolean 1 1
ByteBool 1 Any nonzero value
WordBool 2 Any nonzero value
LongBool 4 Any nonzero value
 ◄   ▲   ►