Aufgabe 5:   Sortierte Liste


Die Einträge in eine Liste sollen nun sortiert erfolgen. Dies soll zunächst mit Rückgriff auf die KLasse TList mit Integer-Zahlen erfolgen.

Aufgabe 1

Erstelle eine Klasse Integer, in der Integer-Zahlen in ein eingepackt werden. Erstelle mit Hilfe von TList und TInteger ein Programm, das Integer-Zahlen sortiert einfügt.

   Bsp.: zahlenliste.pdf

Im Folgenden soll eine Klasse TOrderedList erstellt und getesetet werden, die beliebige Objekte sortiert einfügen kann. Dazu müssen die Objekte der Liste miteinander vergleichbar sein. TItem ist Oberklassen aller Klassen, die sortiert werden können. Dazu müssen Methoden zur Verfügung gestellt werden, die einen Vergleich zwischen zwei Objekten erlauben (Ordnungsrelation).

Was "kleiner" bedeutet, kann erst in den Unterklassen entschieden werden. Sind die Objekte Zahlen, bedeutet das die übliche Ordnungsrelation "<".
Bei Strings bedeutet das die lexikographische Ordnung wie sie in der ANSI-Tabelle festgelegt ist. Bei einer Klasse wie TEintrag der Telefonliste etwa kann das die lexikographische Reihenfolge der Nachnamen bedeuten. Bei identischen Nachnamen entscheidet der Vorname über die Reihenfolge.

Die Methoden von TItem sind daher abstrakt, d.h. sie werden erst in den Unterklassen implementiert. Eine Klasse mit abstrakten Methoden heißt ebenfalls abstrakt (im strengeren Sinne). Von ihr können keine Instanzen gebildet werden. Die Elemente werden in eine geordnete Liste (Instanz der Klasse TOrderedList) eingefügt. TOrderedList ist eine Unterklasse von TList.

Aufgabe 2

Erstelle ein Klassendiagramm.

    Bsp.:orderedList.jpg
Aufgabe 3

Das Programm soll an Hand von Zahlen getestet werden. Nutze dazu die Klasse TInteger und implementiere die abstrakten Mtehoden von TItem.
Implementiere das Testprogram. Benutze dabei die Unit morderedlist.dcu.

    Bsp.:zahlenliste.pdf
Aufgabe 3

Erstelle ein eigene Implementation von TOrderedList.

Aufgabe 4

Wende die sortierte Liste für deine Datenbank (z.B. Telefonliste) an.

    Bsp.: adressliste.pdf




Aufgabenübersicht Aufgabe 4
Aufgabe 6