Dibo


PK-Java

 
 


 

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:

  1. Einlesen der Größe von Quadratien (Anzahl Zeilen bzw. Spalten).
  2. Einlesen einer Wolkenvorhersage.
  3. 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.