faecher:informatik:oberstufe:algorithmen:rekursion:tuerme_hanoi:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:algorithmen:rekursion:tuerme_hanoi:start [16.05.2023 14:54] – [Analyse] Frank Schiebelfaecher:informatik:oberstufe:algorithmen:rekursion:tuerme_hanoi:start [11.12.2023 15:42] (aktuell) – [Analyse] Marco Kuemmel
Zeile 12: Zeile 12:
 ===== Analyse ===== ===== Analyse =====
  
-Bei genauerer Analyse des Problems, kann man erkennen, dass es rekursiver Natur ist: Beim Umsetzen des Turms mit ''n'' Scheiben vom Platz A zum Platz B muss man immer zunächst den Turm mit ''n-1'' Scheiben, der sich auf der größten (untersten) Scheibe befindet auf den "Hilfsplatz" **C** umsetzen.+Bei genauerer Analyse des Problems, kann man erkennen, dass es rekursiver Natur ist: Beim Umsetzen des Turms mit ''n'' Scheiben vom Platz A zum Platz B muss man immer zunächst den Turm mit ''n-1'' Scheiben, der sich auf der größten (untersten) Scheibe befindetauf den "Hilfsplatz" **C** umsetzen.
  
-Dann kann man die größte Scheibe nach **B** setzen und muss anschließend  nochmal den ''n-1'' schieben großen Turm von **C** nach **B** umsetzen+Dann kann man die größte Scheibe nach **B** setzen und muss anschließend nochmal den ''n-1'' großen Turm von **C** nach **B** umsetzen.
-zu können. Danach muss der Turm von n-1 Scheiben vom Platz C +
-wieder auf den Platz B umgesetzt werden.+
  
 {{ :faecher:informatik:oberstufe:algorithmen:rekursion:tuerme_hanoi:auswahl_128.png?600 |}} {{ :faecher:informatik:oberstufe:algorithmen:rekursion:tuerme_hanoi:auswahl_128.png?600 |}}
Zeile 31: Zeile 29:
 === (A2) === === (A2) ===
  
-Medelliere das Problem in Java. als ADT kannst du einen Stack verwenden, den es in der Java Standardbibliothek gibt:+Modelliere das Problem in Java. Als ADT kannst du einen Stack verwenden, den es in der Java Standardbibliothek gibt:
  
 <code java> <code java>
Zeile 61: Zeile 59:
   * Implementiere die Rekursive Funktion ''move''. Überlege, welche Argumente die Methode benötigt.   * Implementiere die Rekursive Funktion ''move''. Überlege, welche Argumente die Methode benötigt.
  
-[[https://codeberg.org/qg-info-unterricht/template-hanoi|Hier findet sich ein BlueJ-Projekt mit dem Codegerüst]].+=== Hinweise und Hilfestellungen === 
 + 
 +  * [[https://codeberg.org/qg-info-unterricht/template-hanoi|Hier findet sich ein BlueJ-Projekt mit einem Codegerüst]]. 
 +  * Die Türme werden durch Stacks von Integern repräsentiert. Die einzigen benötigten Stack-Methoden sind ''push'' (lege ein Element auf den Stack) und ''pop'' (entferne das oberste Element vom Stack). 
 +  * Überlege dir beim Programmieren der Methode ''init()'', durch welche Zahlen du die Scheiben repräsentieren willst. 
 +  * Die Methode ''moveTower()'' ist der eigentliche Algorithmus, der einen beliebige Anzahl Scheiben von einem Turm zu einem anderen Turm versetzt. Überlege dir einen Basis- und einen Rekursionsfall! 
 +  * Die Methode ''test()'' kannst du nutzen, um deine moveTower-Methode zu testen. 
 +  * Beachte: Beim Ausgeben eines Stacks (''printState'') ist das rechte Element des Stacks das oberste! 
  
  • faecher/informatik/oberstufe/algorithmen/rekursion/tuerme_hanoi/start.1684248845.txt.gz
  • Zuletzt geändert: 16.05.2023 14:54
  • von Frank Schiebel