Übungen zur Lehrveranstaltung
"Programmierkurs Java"
WS 1999/2000
FB Informatik
D. Boles
Übungsblatt 7
Ausgabe: 01.12.1999
Hinweise: Zur Lösung der Aufgaben dürfen nur Konzepte benutzt werden, die in der Vorlesung schon behandelt worden sind.
Aufgabe 26 (Rekursion): 15 Punkte
Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest
, (Terminal.readChar()) bis ein #-Zeichen eingegeben wird, und anschließend die eingegebenen Zeichen in umgekehrter Reihenfolge wieder auf den Bildschirm ausgibt (Achtung: keine Arrays oder Strings verwenden!).Beispiel:
Eingabe: a
b
c
#
Ausgabe: cba
Aufgabe 27 (Rekursion): 30 Punkte
Implementieren Sie in Java eine Funktion public static int convert(int zahl) , die als Parameter eine natürliche Zahl (int-Wert) übergeben bekommt und die Zahl mit umgekehrten Ziffern wieder zurückgibt. Implementieren Sie sowohl eine iterative als auch eine rekursive Lösung.
Beispiele.:
convert(12345) == 54321
convert(2540) == 452
Aufgabe 28 (Rekursion): 15 Punkte
Kopieren Sie sich die Datei /user/fb10/dibo/java/Aufgabe28.java vom ARBI-Cluster in Ihr Verzeichnis (ist auch über die PK-Java-Homepage (unter Übungen) abrufbar). Schauen Sie sich das Programm an. Was tut es? Versehen Sie es mit geeigneten Kommentaren, und erläutern Sie die Funktionalität!
Aufgabe 29 (Rekursion): 40 Punkte
Implementieren Sie im Hamster-Modell folgende Aufgabe: Der Hamster befindet sich in einem Labyrinth (ein durch Mauern abgeschlossenes rechteckiges Kornfeld, in dem sich Gänge befinden, die jeweils höchstens 1 Kachel breit sind). Der Hamster sitzt auf einer beliebigen freien Kachel. Er hat (prinzipiell) unendlich viele Körner im Maul. Auf genau einer Kachel im Kornfeld (die vom Hamster aus erreichbar ist!) liegt ein Haufen mit 2 Körnern, ansonsten liegen keine Körner im Kornfeld. Der Hamster soll die Körner suchen, sie fressen und zu seinem Ausgangsfeld zurückkehren. Alle Körner, die der Hamster unterwegs eventuell ablegt, sollen irgendwann wieder eingesammelt werden.
