Dr. Andreas Borchert Abteilung Angewandte
Informationsverarbeitung 26.01.2004
Norbert Heidenbluth Blatt 13
Allgemeine Informatik I für Mathematiker/Wirtschaftsmathematiker
(WS 2004/2005)
Abgabetermin: 02. Februar 2004
Nachdem Ihr erstes Semester nun bald vorbei ist, haben
Sie mittlerweile bestimmt auch die Universität ganz gut
kennengelernt. Wirklich? Gewiß gibt es unter Ihnen noch einige, die
bislang noch nie im Fakultätsgebäude der Fakultät für Mathematik
und Wirtschaftswissenschaften (Helmholtzstraße 18) waren. (Dort sitzen
übrigens unter anderem auch wir von der SAI!)
In diesem Übungsblatt lernen wir nun dieses Gebäude ein wenig
näher kennen, denn wir wollen einen virtuellen Rundgang
implementieren. Dieser funktioniert wie folgt:
- Zu Beginn betreten Sie das Gebäude und stehen im Eingangsbereich.
Vor sich sehen Sie den Lift, und sie können sich zudem nach links
oder rechts bewegen, um in die entsprechenden Flure oder die
sanitären Räume zu gelangen.
- In den Fluren gehen nach links und rechts die einzelnen Räume ab,
die in der Regel einem ``Verbund'' angehören (z.B. Abteilungen,
Hörsäale, usw.).
- Wir stellen uns vor, aus der Vogelperspektive auf eine Etage
zu schauen, sodaß wir - ähnlich wie im Irrgartenspiel von
Blatt 11 - durch Angabe der Richtung navigieren können.
Pro ``Verbund'' von Räumen (also z.B. pro Abteilung) soll eine Datei
existieren, in welcher die Informationen über die zughörigen Räume
abgespeichert sind. Auf unserem FTP-Server
finden Sie zum
Beispiel einige Dateien, die sich (etwas vereinfacht) auf das Erdgeschoß
beziehen, unter anderem die Datei sai:
1:SAI:E03:Gisela Richter:sai_2:-1:-1:fluregrechts_3:-1:-1
2:SAI:E04:Prof. Schweiggert:-1:-1:sai_1:fluregrechts_4:-1:-1
3:SAI:E23:Christian Ehrhardt und Norbert Heidenbluth:-1:fluregrechts_4:-1:-1:-1:-1
4:SAI:E22:Ulrike Krause:-1:fluregrechts_3:-1:-1:-1:-1
5:SAI:Terminals:jede Menge Workstations:bib_2:-1:-1:flureglinks_2:-1:-1
6:SAI:E02:Dr. Borchert:-1:-1:-1:fluregrechts_2:-1:-1
7:SAI:E05:Armin Rutzen:-1:-1:-1:fluregrechts_5:-1:-1
8:SAI:E25:Dr. Johannes Mayer:-1:fluregrechts_5:-1:-1:-1:-1
9:SAI:E07:Gerhard Beutemueller:-1:-1:-1:fluregrechts_6:-1:-1
Der Aufbau dieser (und der anderen Dateien) ist wie folgt:
Jede Zeile entspricht einem Datensatz, der einen Raum beschreibt. Ein Datensatz besteht aus den folgenden Informationen:
- ID des Datensatzes
- Bezeichnung des Verbundes, zu dem der Raum gehört
- Raumbezeichnung
- Bewohner bzw. Inhalt des Raumes
- Raum ``vor'' uns
- Raum rechts von uns
- Raum ``hinter'' uns
- Raum links von uns
- Raum über uns
- Raum unter uns
- (optional) Bemerkung zu diesem Raum
Die Punkte 5. - 10. beziehen sich jeweils auf Räume,
die vom aktuellen Raum aus unmittelbar betreten werden können (weil
eine Tür uns dort hineinführt oder der Lift hinfährt). Ein normales
Büro hat hingegen keine Verbindung zu den Nachbarzimmern, daher wäre
hier jeweils die zu setzen (siehe unten).
Das Trennzeichen der einzelnen Felder ist der Doppelpunkt (``:'').
Die Beschreibung der benachbarten Räume soll sich dabei wie folgt
zusammensetzen:
Dateiname_IDdesDatensatzes
sai_1 bedeutet, daß man in den Raum gelangt, der in der Datei
sai mit der ID bezeichnet ist.
Der Wert als Angabe für den Nachbarraum bedeutet, daß man nicht
in diese Richtung gehen kann. Der Wert (tritt in der Datei eingang auf) zeigt an, daß wir das Gebäude verlassen haben und beendet
unseren virtuellen Rundgang.
Ihre Hauptaufgabe ist nun, ein Oberonprogramm zu schreiben, das
in der Lage ist, anhand der vorgegebenen Dateien einen Rundgang
durchzuführen. Es sollte als Argument beim Start die Datei übergeben
bekommen, mit der wir den Rundgang starten (hier: die Datei eingang). Der Startpunkt ist in dieser Datei der Datensatz mit der ID .
Um nicht jede Datei vollständig einlesen und im Speicher vorhalten
zu müssen, sollten Sie stattdessen nur die Positionen der einzelnen
Datensätze innerhalb der Datei im Hauptspeicher ablegen. Mittels des
Positionierens in Dateien können Sie einen einzelnen Datensatz dann
bei Bedarf gezielt anspringen.
Wenn Sie sich in der Helmholtzstraße doch schon ein wenig auskennen,
werden Sie bemerken, daß die Beispieldateien eine bei weitem nicht
vollständige Beschreibung des Gebäudes enthalten.
Deshalb besteht eine (kleine) zweite Aufgabe dieses Blattes, darin, die
bestehenden Raumbeschreibungen durch eigene zu ergänzen. Wenn Sie eine
weitere Beschreibung zu einem Verbund (Ihrer Wahl) nebst entsprechender
Ergänzung in der zugehörigen Flurdatei geschrieben haben, gibt es
gleich nochmal 3 Punkte extra.
Gerne können Sie Ihre neuen
Beschreibungsdateien vorab an mich (heidi@) schicken. Ich
werde sie auf der Homepage veröffentlichen, und damit liefern Sie für
die anderen gleich ein paar neue Möglichkeiten zum Testen. Umgekehrt
können Sie auf diese Weise natürlich von den Dateien der anderen
profitieren.
Viel Erfolg!
Norbert Heidenbluth
2005-01-25