Computerwissenschaften

Ordinale und aufgezählte Datentypen für Delphi

Die Programmiersprache von Delphi ist ein Beispiel für eine stark typisierte Sprache. Dies bedeutet, dass alle Variablen von einem Typ sein müssen. Ein Typ ist im Wesentlichen ein Name für eine Art von Daten. Wenn wir eine Variable deklarieren, müssen wir ihren Typ angeben, der die Menge der Werte bestimmt, die die Variable enthalten kann, und die Operationen, die für sie ausgeführt werden können.

Viele der in Delphi integrierten Datentypen wie Integer oder String können verfeinert oder kombiniert werden, um neue Datentypen zu erstellen. In diesem Artikel erfahren Sie, wie Sie in Delphi benutzerdefinierte Ordnungsdatentypen erstellen .

 

Ordinaltypen

Die bestimmenden Merkmale von ordinalen Datentypen sind: Sie müssen aus einer endlichen Anzahl von Elementen bestehen und in irgendeiner Weise geordnet sein.

Die häufigsten Beispiele für ordinale Datentypen sind alle Integer-Typen sowie der Char- und der Boolesche Typ. Genauer gesagt verfügt Object Pascal über 12 vordefinierte Ordinaltypen: Integer, Shortint, Smallint, Longint, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool und Char. Es gibt auch zwei andere Klassen von benutzerdefinierten Ordnungsarten: Aufzählungstypen und Unterbereichstypen.

Bei allen Ordnungsarten muss es sinnvoll sein, vorwärts oder rückwärts zum nächsten Element zu wechseln. Beispielsweise sind reale Typen keine Ordnungszahlen, da es keinen Sinn macht, sich vorwärts oder rückwärts zu bewegen. Die Frage „Was ist der nächste Real nach 2.5?“ ist bedeutungslos.

Da per Definition jeder Wert außer dem ersten einen eindeutigen Vorgänger und jeder Wert außer dem letzten einen eindeutigen Nachfolger hat,  werden beim Arbeiten mit Ordinaltypen mehrere vordefinierte Funktionen verwendet:

Beispielsweise gibt High (Byte) 255 zurück, da der höchste Wert vom Typ Byte 255 ist, und Succ (2) gibt 3 zurück, weil 3 der Nachfolger von 2 ist.

Hinweis: Wenn wir versuchen, Succ beim letzten Element zu verwenden, generiert Delphi eine Laufzeitausnahme, wenn die Bereichsprüfung aktiviert ist.

 

Delphi-Aufzählungstyp

Der einfachste Weg, ein neues Beispiel für einen Ordinaltyp zu erstellen, besteht darin, eine Reihe von Elementen in einer bestimmten Reihenfolge aufzulisten. Die Werte haben keine inhärente Bedeutung und ihre Ordinalität folgt der Reihenfolge, in der die Bezeichner aufgelistet sind. Mit anderen Worten, eine Aufzählung ist eine Liste von Werten.

Typ TWeekDays=(Montag, Dienstag, Mittwoch,
Donnerstag Freitag Samstag Sonntag);

Sobald wir einen aufgezählten Datentyp definiert haben, können wir Variablen von diesem Typ deklarieren:

var SomeDay: TWeekDays;

Der Hauptzweck eines aufgezählten Datentyps besteht darin, klar zu machen, welche Daten Ihr Programm manipulieren wird. Ein Aufzählungstyp ist eigentlich nur eine Abkürzung, um Konstanten sequentielle Werte zuzuweisen. Angesichts dieser Erklärungen ist Dienstag eine Konstante vom Typ  TWeekDays .

Mit Delphi können wir mit den Elementen in einem Aufzählungstyp unter Verwendung eines Index arbeiten, der aus der Reihenfolge stammt, in der sie aufgelistet wurden. Im vorherigen Beispiel hat Montag in der  TWeekDays-  Typdeklaration den Index 0, Dienstag den Index 1 und so weiter auf. Mit den zuvor in der Tabelle aufgeführten Funktionen können Sie beispielsweise Succ (Freitag) verwenden, um zum Samstag zu „gehen“.

Jetzt können wir etwas ausprobieren wie:

für SomeDay:=Montag bis Sonntag , 
wenn SomeDay=Dienstag dann
ShowMessage ('Dienstag ist es!');

Die Delphi Visual Component Library verwendet an vielen Stellen Aufzählungstypen. Beispielsweise ist die Position eines Formulars wie folgt definiert:

TPosition=(poDesigned, poDefault, poDefaultPosOnly,
poDefaultSizeOnly, poScreenCenter);

Wir verwenden Position (über den Objektinspektor), um die Größe und Platzierung des Formulars abzurufen oder festzulegen .

 

Subrange-Typen

Einfach ausgedrückt repräsentiert ein Unterbereichstyp eine Teilmenge der Werte in einem anderen Ordinaltyp. Im Allgemeinen können wir jeden Unterbereich definieren, indem wir mit einem beliebigen Ordinaltyp (einschließlich eines zuvor definierten Aufzählungstyps) beginnen und einen doppelten Punkt verwenden:

Typ TWorkDays=Montag .. Freitag;

Hier enthält TWorkDays die Werte Montag, Dienstag, Mittwoch, Donnerstag und Freitag.

Das ist alles – jetzt zähle auf!

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.