Dr. Andreas Borchert Abteilung Angewandte Informationsverarbeitung 26.01.2004
Norbert Heidenbluth Blatt 13


Uni Logo



Allgemeine Informatik I für Mathematiker/Wirtschaftsmathematiker
(WS 2004/2005)



Abgabetermin: 02. Februar 2004

Aufgabe 23: In der Helmholtzstraße 18 (12+3 Punkte)

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:

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:

  1. ID des Datensatzes
  2. Bezeichnung des Verbundes, zu dem der Raum gehört
  3. Raumbezeichnung
  4. Bewohner bzw. Inhalt des Raumes
  5. Raum ``vor'' uns
  6. Raum rechts von uns
  7. Raum ``hinter'' uns
  8. Raum links von uns
  9. Raum über uns
  10. Raum unter uns
  11. (optional) Bemerkung zu diesem Raum

Wichtig:

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 $-1$ 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

Beispiel:

sai_1 bedeutet, daß man in den Raum gelangt, der in der Datei sai mit der ID $1$ bezeichnet ist.

Der Wert $-1$ als Angabe für den Nachbarraum bedeutet, daß man nicht in diese Richtung gehen kann. Der Wert $-99$ (tritt in der Datei eingang auf) zeigt an, daß wir das Gebäude verlassen haben und beendet unseren virtuellen Rundgang.

Implementierung des Rundgangs (12 Punkte)

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 $0$.

Hinweis:

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.

Erweiterung der Raumbeschreibungen (3 Punkte)

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.

Zum Mitmachen:

Gerne können Sie Ihre neuen Beschreibungsdateien vorab an mich (heidi@$\ldots$) 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