Übungen zur Lehrveranstaltung
"Programmierkurs Java"
WS 2000/2001

FB Informatik
D. Boles
Übungsblatt 7
Ausgabe: 29.11.2000
Hinweise: Zur Lösung der Aufgaben dürfen nur Konzepte benutzt werden, die in der Vorlesung schon behandelt worden sind.
Aufgabe 26 (Rekursion): 20 Punkte
Schreiben Sie ein Programm, das zunächst eine positive Zahl vom Terminal einliest. Anschließend soll die duale Repräsentation der Zahl auf dem Bildschirm ausgegeben werden. Entwickeln Sie eine rekursive Lösung, d.h. Sie dürfen keine Schleifen-Anweisungen (while, for, do, ...) benutzen.
Beispiel:
Eingabe: 23
Ausgabe: 10111
Aufgabe 27 (Rekursion): 20 Punkte
Implementieren Sie in Java eine rekursive Funktion
public static double potenz(double zahl, int pot)
die die
pot-te Potenz von zahl berechnet. Der Wert von pot kann auch negativ sein!. Schreiben Sie ein kleines Programm, das die Funktion testet.Beispiele.:
potenz(2.0, 3) == 8
potenz(2.0, -3) == 0.125
Aufgabe 28 (Rekursion): 30 Punkte
Spielen Sie mit dem Hamster das bekannte Solitärspiel. Bei diesem Spiel hat das Hamster-Territorium die in der Abbildung skizzierte Gestalt. Auf jeder nicht durch eine Mauer blockierten Kachel liegt ein Korn – ausser auf der mittleren. Der Hamster steht auf der zweiten Kachel unter der Mitte. Ziel des Spiel ist es, den Hamster bis auf ein Korn alle Körner fressen zu lassen. Dabei gelten jedoch folgende Regeln: Der Hamster muss eine Kachel finden, auf der ein Korn liegt (Kachel 1). Die Kachel (Kachel 2) in Blickrichtung des Hamsters vor dieser Kachel muss ebenfalls noch ein Korn enthalten. Dahinter muss sich jedoch eine körnerlose Kachel (Kachel 3) befinden. Existiert eine solche Konfiguration (im allgemeinen existieren mehrere Alternativen, von denen sich der Hamster eine aussuchen kann), dann muss der Hamster das Korn von Kachel 1 nach Kachel 3 transportieren und darf das Korn von Kachel 2 fressen. Gerät der Hamster irgendwann in eine Situation, in der sich noch mehr als ein Korn im Territorium befindet, in der er gemäß der vorgegebenen Regeln jedoch kein Korn fressen kann, dann hat er sich irgendwann für die falsche Alternative entschieden (und muss dies per Backtracking rückgängig machen).

Aufgabe 29 (Rekursion): 30 Punkte
Der Hamster soll das bekannte Damenproblem lösen: Er soll eine Stellung für acht Schach-Damen auf einem Schachbrett finden, so dass sich keine zwei Damen gegenseitig schlagen können. Die Damen sind also so zu platzieren, dass jede Zeile, jede Spalte und jede Diagonale des Schachbretts höchstens eine Dame enthält. Die Damen werden dabei durch ein Korn repräsentiert. Der Hamster hat anfangs genau acht Körner im Maul. Insgesamt existieren 92 Lösungen für ein 8x8-Spielbrett, von denen die Abbildung eine mögliche skizziert.
