Sektion Angewandte Informationsverarbeitung
Übungen zu Programmieren II, Sommersemester 1996
Blatt 18, 10 Punkte
Abgabe: Donnerstag, den 27.06.1996
Aufgabe 24
Schreiben Sie ein Modula-2-Programm (words), das folgende Aufrufsyntax
aktzeptiert :
$ words infile [ outfile ]
Das Programm soll aus der Datei infile lesen und in outfile
schreiben. Ist für infile ein "-" angegeben, soll aus der
Standardeingabe gelesen werden, ist outfile nicht angegeben soll in
die Standardausgabe geschrieben werden.
Die Eingabe besteht aus einzelnen Wörtern (durch Blank oder NewLine getrenn
t)
aus denen ein sortierter binärer Baum (inorder) aufgebaut werden sol
l.
-
Jedes Wort aus der Eingabe soll nur 1 x im Baum eingetragen werden. Kommt ein
Wort mehrmals in der Eingabe vor, soll die Häufigkeit gezählt werden.
-
Schreiben Sie zum Vergleich zweier Worte eine Funktion StringCompare
analog zur Funktion StrCmp aus Strings. Die Funktion StringCompare soll
unabhängig von Groß- und Kleinschreibung sein.
-
Die Funktionen zum Aufbau und zur Ausgabe des Baums, sowie die Baumstruktur
sollen wie bisher in einem eigenen Modul (Baum) untergebracht werden.
-
Definieren Sie das im Baum unterzubringende Objekt wieder in einem separaten
Modul (Items) mit den üblichen Funktionen zum Einlesen und zur Ausga
be
eines Items.
-
Achten Sie bei der Implementierung darauf, daß das Modul Baum
unabhängig vom Modul Items ist !
Hierzu bietet sich die Implementierung von 2 weiteren Funktionen im Modul
Items an :
Eine Funktion zum Vergleich von zwei Items (CompareItems), die hier
konkret die Funktion StringCompare benutzt, sowie eine Funktion
(Update), die aufgerufen wird, wenn ein Item bereits im Baum vorhanden
ist. Die Funktion Update soll hier einfach nur den Zähler erhöhen.