Ludwig-Maximilians-Universit¨ at M¨ unchen WS 2014/15
Institut f¨ ur Informatik Ubungsblatt 11 ¨
Prof. Dr. R. Hennicker, A. Klarl
Ubungen zu Einf¨ ¨ uhrung in die Informatik:
Programmierung und Software-Entwicklung
Aufgabe 11-1 Rekursion und Terminierung Pr¨ asenz Gegeben ist folgende rekursive Methode zur Berechnung einer Funktion:
1
p u b l i c s t a t i c i n t f ( i n t x ) {
2
i f ( x == 0)
3
return 0;
4
e l s e i f ( x > 0)
5
return f ( x - 2);
6
e l s e
7
return f ( x + 2);
8
}
a) Welcher Wert wird von f f¨ ur die folgenden Funktionsaufrufe berechnet?
f(2), f(8), f(9), f(-1), f(-8), f(-9)
b) Charakterisieren Sie die Menge aller Integerzahlen x, f¨ ur die der Funktionsaufruf f(x) terminiert.
Aufgabe 11-2 T¨ urme von Hanoi Pr¨ asenz
Bei dem Spiel “T¨ urme von Hanoi“ sind drei S¨ aulen A, B und C gegeben. Auf S¨ aule A sind n Scheiben unterschiedlicher Gr¨ oße so aufgesteckt, dass jeweils eine kleinere Scheibe auf einer gr¨ oßeren zu liegen kommt.
Die Aufgabe des Spiels besteht darin, die n Scheiben von A nach C zu transportieren, wobei B als Zwischenlager benutzt werden darf. Spielregel ist, dass nur einzelne Scheiben bewegt werden d¨ urfen und dass nach jedem Einzelschritt niemals eine gr¨ oßere Scheibe auf einer kleineren zu liegen kommt.
In dieser Aufgabe sollen Sie ein Programm mit einer grafischen Benutzeroberfl¨ ache implemen- tieren, welches f¨ ur eine beliebige Zahl n eine L¨ osung des Problems f¨ ur n Scheiben ausgibt. Die Anzahl der Scheiben n soll vom Benutzer frei w¨ ahlbar sein und wie gewohnt durch einen modalen Dialog zu Beginn der Anwendung abgefragt werden.
1
a) Die grafische Benutzeroberfl¨ ache soll wie folgt aussehen:
Es soll einen Button mit der oben angegebenen Aufschrift geben. Darunter soll der Ausga- bebereich f¨ ur die Protokollierung der Scheibenbewegungen platziert werden. Da die Proto- kollierung aller Schritte relativ lang sein kann, k¨ onnen Sie mit Hilfe der Klassen ScrollPane und ScrollPaneConstants der Swing-Bibliothek dem Ausgabebereich auf folgende Weise eine vertikale Scrollbar hinzuf¨ ugen:
1
J S c r o l l P a n e s c r o l l P a n e = new J S c r o l l P a n e ( a u s g a b e B e r e i c h );
2
s c r o l l P a n e . s e t H o r i z o n t a l S c r o l l B a r P o l i c y (
3