Ü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.