|

|
|
|
Nachklausurergebnisse - Programmierkurs Java (WS 97/98)
Ergebnisse
Aufgabe
Musterlösung
Ergebnisse
MatNr Punkte Schein
6796930 25
4896630 55 o
5060670 35
6699200 50 o
6773070 100 o
6677860 30
6433730 60 o
6420280 17
6476540 57 o
6794600 85 o
6747950 10
6720980 55 o
6678410 55 o
6535700 30
6562050 0
6483230 80 o
6720690 0
6720430 5
6484460 40
6150130 5
6800800 20
6689470 15
6798970 15
6738770 60 o
6065270 35
5682960 15
6687010 55 o
6794280 50 o
6634890 30
6721820 30
6684680 25
6723280 15
Statistik:
bestanden: 12
nicht bestanden: 20
Einsicht in die
Klausur: MI, 22.04.98, 14 - 15 Uhr, OFFIS, Raum O71
Aufgabe (Wetter in Quadratien)
Problemstellung
Quadratien ist ein quadratisches Gebiet aus quadratischen Feldern.
Das Feld in der Nordwest-Ecke hat die Zeilennummer 0 und die Spaltennummer
0.
Das Wetter in Quadratien wird durch quadratische Wolken bestimmt,
die genau ein Feld groß sind. Solche Wolken rücken
getaktet über Quadratien vor, und zwar von Norden nach Süden
2 Felder pro Takt und - in einer anderen Höhe - von Westen
nach Osten 3 Felder pro Takt. Es regnet überall dort, wo
sich nach einem Vorrücken sowohl eine Nord-Süd- als
auch eine West-Ost-Wolke befindet. Wolken, aus denen es regnet,
lösen sich auf.
Die Wolkenvorhersage gibt an, an welchen Stellen (in der Form:
Zeilennummer/Spaltennummer) sich zum aktuellen Zeitpunkt Wolken
befinden. Daraus läßt sich dann ermitteln, wo es in
Quadratien regnen wird; denn es werden nur solche Wolken angegeben,
die über Quadratien hinwegziehen werden.
Beispiel
Wolkenvorhersage:
-5/6 -4/6 -2/7 7/-6 -2/9 -5/7 1/-2 8/-6 6/-6
7/-7 6/-7 1/-3 -2/8
Es wird an folgenden Stellen regnen: 1/6, 1/7, 8/9
Aufgabe
Entwickeln Sie ein Java-Programm, welches folgendes leistet:
- Einlesen der Größe von Quadratien (Anzahl Zeilen
bzw. Spalten).
- Einlesen einer Wolkenvorhersage.
- Ausgabe, wo in Quadratien Regen fällt.
Besondere Anforderungen
Bei der Programmentwicklung sind folgende Anforderungen zu berücksichtigen:
- Wolken dürfen in der Wettervorhersage nur links bzw.
oberhalb von Quadratien erzeugt werden. Unter Einhaltung dieser
Restriktion dürfen (prinzipiell) beliebig positionierte Wolken
eingegeben werden. Eine Beschränkung der Größe
des Umlandes von Quadratien ist nicht erlaubt. (ansonsten:
-20 Punkte)
- Die Menge der Wolken in der Wettervorhersage ist (prinzipiell)
beliebig groß. Es darf vorweg keine Größenbeschränkung
angegeben werden. (ansonsten: -20 Punkte)
- Erläutern Sie detailliert die von Ihnen gewählte
Datenstruktur und den entwickelten Algorithmus. Unverständliche
Lösungen werden nicht korrigiert, sondern mit 0 Punkten bewertet.
(Anhaltspunkt: 20 Punkte)
- Entwickeln Sie eine Klasse Wolke,
die Wolken realisiert. Überlegen Sie sich notwendige Attribute
(Zeile, Spalte, ...) und Methoden (Überprüfung auf gleichePosition,
vorrücken, ...) der Klasse und implementieren Sie diese.
(Anhaltspunkt: 20 Punkte)
- Entwickeln Sie eine Klasse Wolkenmenge,
die eine prinzipiell beliebig große Menge von Wolken verwalten
kann und auf der Wettersimulationen möglich sind. Überlegen
Sie sich notwendige Attribute (Realisierung als verkettete Liste,
...) und Methoden (Einfuegen von Wolken, Entfernen von Wolken,
Wettersimulation, ...) der Klasse und implementieren Sie diese.
(Anhaltspunkt: 30 Punkte)
- Entwickeln Sie das Hauptprogramm. Sie können dabei bspw.
folgendermaßen vorgehen: Erzeugen Sie ein Wolkenmenge-Objekt.
Erzeugen Sie während des Einlesens der Wolkenvorhersage jeweils
ein neues Wolke-Objekt für jede
Wolke und fügen Sie dieses in das Wolkenmenge-Objekt
ein. Lassen Sie nach Beendigung der Wolkenvorhersage auf dem Wolkenmenge-Objekt
eine Wettersimulation ausführen bis keine Wolken mehr da
sind (abgeregnet oder über Quadratien hinweggetrieben). Speichern
Sie während der Simulation die Regenwolken in einem zweiten
Wolkenmenge-Objekt ab. Geben Sie nach
der Simulation die Wolke-Objekte,
die sich im zweiten Wolkenmenge-Objekt
befinden, auf den Bildschirm aus. (Anhaltspunkt: 30 Punkte)
Beispiel für die Benutzerschnittstelle des Programms
> java Quadratien
Geben Sie bitte die Größe von Quadratien ein:
> 12
Geben Sie bitte die Wettervorhersage ein:
weitere Wolke (y/n)
> y
Zeile angeben:
> 0
Spalte angeben:
> -1
weitere Wolke (y/n)
> y
Zeile angeben:
> -2
Spalte angeben:
> 2
weitere Wolke (y/n)
> n
Es wird an folgenden Stellen regnen: 0/2.
|
|