|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Das Divide-and-Conquer-Prinzip
2.2 Die Türme von Hanoi |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2 Die Türme von Hanoi2.2.1 Die SpielregelnEs sind n Scheiben unterschiedlichen Durchmessers gegeben, welche geordnet zu einem Turm geschichtet sind, die untere Scheibe ist die größte. Der Turm steht auf einem Anfangsplatz. Unter Verwendung eines Hilfsplatzes soll dieser Turm nun zu einem Zielplatz transportiert werden, wobei verschiedene Regeln einzuhalten sind.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.2 Die LösungDie Aufgabe läßt sich kurz folgendermaßen formulieren:
a) Der 2. Schritt ist trivial und sofort ausführbar. b) Der 1. und der 3. Schritt sind von der gleichen Art wie das Ausgangsproblem, nur die Anzahl der Scheiben ist um 1 kleiner und die Bedeutung der Plätze hat sich verändert. Damit hat man für das Gesamtproblem eine rekursive Lösungsvorschrift
formuliert.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.3 Die Behandlung im UnterrichtZuerst sollte die Frage stehen, ob dieses Problem überhaupt im Unterricht behandelt werden soll. Für den Leistungskursbereich läßt sich diese Frage sicherlich ohne weiteres mit ja beantworten.Für einen Grundkurs sieht das schon ganz anders aus. Im Rahmenplan wird gefordert, daß der Schüler einfache Algorithmen entwickeln kann, die Türme von Hanoi gehören sicherlich nicht dazu. Wenn dieses Problem also überhaupt im Grundkurs behandelt wird, dann wird der Lehrer mit großer Sicherheit wesentliche Teile der Lösung vorgeben müssen. Es ist daher schon als Erfolg zu werten, wenn die Schüler erkennen, daß eine Rekursion vorliegt. Wenn die Lösung als Programm vorliegt, ist es für die Schüler sicherlich verblüffend, wie ein schwierig anmutendes Problem sich auf diese einfache und elegante Art und Weise lösen läßt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.3.1 Die grafische Darstellung der SchritteNach der Bekanntgabe der Spielregeln sollte man die Schüler zuerst einmal spielen lassen. Für eine geringe Anzahl an Scheiben (maximal 4) stellen dann die Schüler ihre Lösungen vor. Um auf die angestrebte Zerlegung zu kommen, ist es sinnvoll, die Lösungen für 2 bis 4 Scheiben grafisch darzustellen. Dabei sollten die Scheiben so farbig dargestellt werden, daß jeweils die untere Scheibe eine neue Farbe bekommt.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.3.2 Die sprachliche Formulierung der LösungZiel der Sprachlichen Formulierung ist eine Schrittfolge, wie sie bereits im Abschnitt 2.2.2 dargestellt wurde. Nachdem die Folien mit den Schülern ausgewertet wurden, ist sicherlich eine solche Schrittfolge nicht auf Anhieb zu erwarten.Der entscheidende Hinweis ist sicherlich, daß das Bewegen von
n-1 Scheiben auch als ein Schritt gilt. Dann kommt es nur noch darauf an,
die Bedeutung der Plätze richtig zuzuordnen. Das läßt sich
mit Hilfe der Folien für zwei und drei Scheiben nachvollziehen. Es
ergibt sich folgende Schrittfolge:
Bewege eine Scheibe von Platz 1 nach Platz 3 Bewege eine Scheibe von Platz 2 nach Platz 3 Bewege zwei Scheiben von Platz 3 nach Platz 2 (Hilfsplatz ist Platz 1)
Bewege eine Scheibe von Platz 3 nach Platz 2 Bewege eine Scheibe von Platz 1 nach Platz 2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.3.3 Das Struktogramm |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.3.4 Das ProgrammFür die Türme von Hanoi läßt sich jetzt die folgende rekursive Prozedur formulieren:
begin
turm(ap,hp,zp,n-1); writeln(' Scheibe von Platz ',ap,' auf Platz ',zp); turm(hp,zp,ap,n-1); end;
zp - Zielplatz hp - Hilfsplatz n - Anzahl der Scheiben
vollständiges Programm
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.4 Mögliche WeiterentwicklungenBei der Lösung, welche im Abschnitt 2.2.3.4 dargestellt wurde, habe ich auf eine grafische Darstellung der Schritte bewußt verzichtet. Erstens ist mit der TurboPascal Version 1.5 für Windows Grafik nur möglich mit Hilfe der objektorientierten Programmierung und zweitens würde diese Variante sehr viel Zeit beanspruchen, ohne das die Schüler sich mit Rekursion beschäftigen.Für Interessierte an dieser Stelle trotzdem noch einmal eine Lösung mit Grafik: Programm
Wer rekursiv weiterarbeiten möchte, dem empfehle ich die Berechnung der Schritte für eine bestimmte Anzahl von Scheiben. Die Funktion sieht folgendermaßen aus: function schritte(n:byte):longint;
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|