Angewandte Informatik

Universität Osnabrück , 21.5.2001

Dr. Ute Schmid

letzter Abgabetermin: 28.5.2001, 8:00 Uhr

Elmar Ludwig

Übungen zu Informatik B

Sommersemester 2001

Blatt 6

Aufgabe 1 (4 Punkte)

Erstellen Sie für alle Programme dieses Aufgabenblatts ein Makefile , das bei Änderung einer Quelldatei jeweils nur die minimal notwendigen Übersetzungsschritte neu ausführt.

Der Aufbau und die Verwendung von Makefiles und des make-Kommandos werden am Montag in der Übung vorgestellt. Auf den Linux-Rechnern kann man die Beschreibung zu make auch mit dem Kommando ,,info make`` online lesen.

Aufgabe 2 (4 Punkte)

Machen Sie sich mit den Klassen java.lang.StringBuffer und java.util.Properties vertraut. Was sind die System-Properties , die System.getProperties() zurückliefert?

Schreiben Sie ein kleines Java-Programm, daß die Namen und Werte aller System-Properties aufsammelt und mit nur einem Aufruf von System.out.println ausgibt; dabei soll nicht die toString()-Methode des Properties-Objektes verwendet werden.

Aufgabe 3 (5 Punkte)

Erläutern Sie Ihrem Tutor den Begriff des abstrakten Datentyps (ADT) und die verschiedenen dazu in der Vorlesung vorgestellten Möglichkeiten zur Implementierung des adt.MyCollection -Interfaces.

Fügen Sie - analog zum LinkedStack-Beispiel - zu der Klasse adt.array.MyCollection eine Member -Klasse Enumerator (die das Interface java.util.Enumeration implementiert) sowie eine enumerate()-Methode hinzu, die ein Enumerator-Objekt für das Array zurückliefert. Ändern Sie nun die Implementierung von toString() so ab, daß dort ein Enumerator verwendet wird.

Aufgabe 4 (7 Punkte)

Realisieren Sie jetzt eine alternative Implementierung des adt.MyCollection Interfaces, die als interne Repräsentierung eine verkettete Liste anstatt eines Arrays verwendet. Definieren Sie sich dazu eine statische innere Klasse für die Knoten der Liste. Sie können sich für diese Aufgabe an dem Beispiel aus Kapitel 9 im Algorithmen-Skript orientieren und das Testprogramm aus der Klasse adt.array.MyCollection kopieren.

Implementieren Sie auch für diese Klasse eine Member -Klasse Enumerator sowie eine enumerate()-Methode, und verwenden Sie diese, um in der Methode toString() den Inhalt der Collection als String zu liefern.

Gesamtpunkte: 20



Elmar Ludwig
5/21/2001