Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 18.01.2006
Norbert Heidenbluth Blatt 12


Uni Logo



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



Abgabetermin: 25. Januar 2006

Dieses Übungsblatt behandelt gleich zwei neue Themen: mehrdimensionale Arrays und Funktionen/Methoden. Der (sinnvolle) Gebrauch von Funktionen verringert den Aufwand beim Programmieren, da häufig verwendete Funktionalitäten nur einmal erdacht und geschrieben werden müssen und von nun an beliebig oft zur Verfügung stehen. Andererseits erreicht man auch eine bessere Übersichtlichkeit des Programmcodes (insbesondere im Hauptprogramm), da dieses von nun an im Wesentlichen nur noch aus dem Aufruf von Funktionen bestehen sollte. Dies soll in diesem Blatt demonstriert werden: das Hauptprogramm wird komplett vorgegeben, und die dort aufgerufenen Methoden/Funktionen sind zu implementieren.

Aufgabe 25: Sudoku (15 Punkte)

(Vorsicht, jetzt kommen einige Klischees:)




Angenommen, $\ldots$

(für Studenten:)
$\ldots$ die Freundin ist zum Shoppen unterwegs, der Fernseher ist kaputt und ihren neuesten Ego-Shooter haben Sie gerade verliehen.

(für Studentinnen:)
$\ldots$ die beste Freundin hat gerade keine Zeit zum Shoppen und der Freund hängt vor dem mittlerweile wieder reparierten Fernseher und versucht verzweifelt, beim 9Live-Quiz alle Euro-Münzen zu zählen.

(für beide:)
$\ldots$ Sie sitzen in einer BWL-Vorlesung!

Was bedeutet das? Richtig: Ihnen ist mit hoher Wahrscheinlichkeit langweilig! Bis vor einem Jahr hätte man dies als ein größeres Problem deuten können, aber zwischenzeitlich kennnen wir ja alle die Sudoku-Rätsel! Und damit kann man sich die Langeweile ruck zuck vertreiben.

Wer es noch nicht kennt: gespielt wird auf einem $9\times9$ großen Spielfeld, das in 9 Unterquadrate der Größe $3\times3$ aufgeteilt ist. Aufgabe ist es nun, die Ziffern von $1$ bis $9$ so auf das Spielfeld zu verteilen, daß

jede der Zahlen $1$ bis $9$ jeweils genau einmal vertreten ist. In der Regel werden einige Zahlen bereits vorgegeben, und man muß dann die übrigen Zahlen entsprechend ergänzen.

Den größten Teil Ihrer Langeweile können Sie sich nun dadurch vertreiben, indem Sie ein Sudoku-Rätsel lösen. Jeden Tag finden Sie zum Beispiel unter www.zeit.de/sudoku ein neues Rätsel in drei Schwierigkeitsstufen.

Natürlich ist ein solches Rätsel genau dann gelöst, wenn die Ziffern richtig untergebracht werden konnten, aber um sich die Restlangeweile auch noch zu vertreiben, denken Sie darüber nach, ein Java-Programm zu schreiben, das Ihre Lösung auf ihre Richtigkeit hin überprüft.

Beim Stöbern im Internet fällt Ihnen auf unserem FTP-Server ein Programmfragment in die Hände und außerdem die folgende Aufgabe:

``Vervollständigen Sie das Programmfragment, indem Sie die fehlenden Funktionen implementieren. Wenn das Programm vollständig ist, so liest es den Lösungsversuch eines Sudoku-Rätsels ein und gibt aus, ob die Lösung korrekt ist oder nicht.''

Um sich den Rest der Langeweile auch noch zu vertreiben, machen Sie sich sogleich an die Arbeit, werden mit bis zu 15 Punkten für Ihre Mühen belohnt, und der Ego-Shooter hat ab heute auch seinen Reiz verloren!

Tips und Hinweise:

Viel Erfolg!



Norbert Heidenbluth 2006-01-17