Universität Ulm -Abteilung Angewandte Informationsverarbeitung
6.Übungsblatt (22.06.00 bis 29.06.00)
zur Vorlesung Allgemeine Informatik II (SS 00)


Nachdem Sie glücklich Ihre Pointer aus dem NIL gezogen haben, wenden wir uns nun der nächsten Herausforderung zu. Irgendwo haben Sie sicher schon gehört, dass Wiederverwendbarkeit von bereits vorhandenen Lösungen ein Zauberwort der Softwarebranche ist. Deshalb soll diesmal Ihre Lösung von Blatt 5 nicht in den Müll wandern, sondern als Basis für die nächste Aufgabe dienen :-)

Eine der umstrittensten Erfindungen der 70er Jahre war die Einführung der Mengenlehre in der Schule. Keiner hat je verstanden, wozu man sie wirklich braucht. Außerdem bestehen mancherorts offensichtlich auch einige Zweifel, ob man die in Blatt 5 vorgestellte Listentechnik wirklich einsetzen kann .... Noch schlimmer ist aber, dass wir das Schreiben in Dateien (statt nur auf Standardausgabe!) noch nicht geübt haben, obwohl es in der Vorlesung schon mal dran war und man es tagtäglich braucht ...

Nichts liegt also näher, als ein motivierendes Übungsblatt zu machen, mit dem man sämtliche Unklarheiten verbinden kann, gell?
 

Aufgabe 1 (10 Punkte)

Schreiben Sie unter Verwendung Ihrer Lösung von Blatt 5 (oder der Musterlösung ) ein Oberon-Programm mengendiff.om, das die Mengendifferenz zweier Mengen A und B berechnet. Die Mengendifferenz A - B sei wie folgt definiert:

(A - B enthält sämtliche Elemente von A, die nicht in der Menge B enthalten sind!)

Ihr Programm soll die Mengen A und B jeweils aus Dateien lesen, die als Parameter auf der Kommandozeile übergeben werden. Als dritter Parameter soll der Name der Ausgabedatei angegeben werden, in die das Ergebnis der Mengendifferenz geschrieben werden soll. Bsp:

    mengendiff menge_a menge_b menge_a_b

liest den Inhalt der Dateien menge_a und menge_b, berechnet die Mengendifferenz und schreibt das Ergebnis in die Datei menge_a_b.

Hinweise:


Beispiel:

    thales$ cat menge_a
    3
    1
    6
    8
    9
    thales$ cat menge_b
    5
    1
    9
    thales$ mengendiff menge_a menge_b menge_a_b
    thales$ cat menge_a_b
    3
    6
    8