Fachbereich Elektrotechnik und Informationstechnik

Slides:



Advertisements
Similar presentations
Visualisierung der Funktionsweise des Programms auf S. 9 des Skripts
Advertisements

Übung 1 Löse folgendes Erfüllbarkeitsproblem mit dem
The Past Tense Part Three!. The past Tense with Sein As with haben the past participle (ge word) goes to the end of the sentence. You also need a bit.
Diskrete Mathe Diskrete Mathematik I Rekursion Vorlesung 3.
A question of German
This presentation is timed so you will only need to click on the left mouse button when it is time to move to the next slide. Right click on this screen.
Hemistim rechtshemisphärisch
Banner printing / Bannerdruck ineo+ 250/350/450/P Firmware 2.0
§37 and §38 Things to come RfE 21 §37Future with to be going to1 2 3 §38Future with to will §37 and §38mixed exercises Index.
Gründlich durchgecheckt steht sie da Thoroughly checked over she stands there und wartet auf den Start alles klar And waits on the start…All is clear.
At the end of the presentation return to the main Grammar page.
Eine kleine Sammlung – A small collection. Es wäre ratsam. - It would be advisable….. 1) Es wäre ratsam. - It would be advisable….. Es muss betont werden…
Prep for Test 5 Unit 4. a b a b Tranlsate into English:
Session Tracking Problem: Identifizierung und Speicherung persönlicher Daten Warenkorb Lösung: Session mit ID Anmeldung ID REQ + ID RES ID: JKLMGHNB45kdse43k.
Eine schöne Reise mit Jesus Durch ihr sind wir satt und hungrig In ihr sind wir Fastende Von Woche zu Woche.
Vorbilder in der Bibel Johannes der Täufer. Die Geburt von Johannes Die Geburt von Johannes dem Täufer war ein Wunder. Obwohl seine Eltern sehr alt waren,
Deutsche Idiome Ich bin gesund wie ein Fisch im Wasser.
© NFA, Neuromuscular Functional Assessment: Funktionelle Neurologie und Rehabilitation, Hans Garten, 2011 No Go Smiley Dieses Programm kannst du benutzen,
© NFA, Neuromuscular Functional Assessment: Funktionelle Neurologie und Rehabilitation, Hans Garten, 2013 Hemistim linkshemisphärisch Setzen Sie sich in.
Von Spencer Petersen und Kellen Knight. Dative and accusative prepositions are so named because the prepositional phrase that the preposition makes is.
7.3 Lektion 7 Wissenschaft und Technologie STRUKTUREN © and ® 2012 Vista Higher Learning, Inc Adverbs Er ist bereits eingetroffen. Adverbs modify.
Das steht auf einem anderen Blatt. Thats a different story. / Thats a horse of a different color. (Meaning – That is a different matter) Literal German:
Grundsätze und Herausforderungen der -Archivierung | SER Forum | Dr. Ulrich Kampffmeyer | PROJECT CONSULT Unternehmensberatung | 2007
Du fehlst mir Ein Rocksong von Fotos Meagan Murray.
Deciphering Case. Nominative = Subject First, look for the subject of the sentence. The subject is usually the very first part of the sentence. The sentence.
Migration in die Cloud – so gelingt ein nachhaltiger Umstieg.
NEXT Topic One Topic Two Topic Three Topic Four Topic Five Team One Team Two Team Three Team Four Team.
Strukturen 2B.1 LEKTION 2B 2B.1-1© 2014 by Vista Higher Learning, Inc. All rights reserved. Prepositions of direction Startblock You learned to use prepositions.
A* Pathfinding. Basis A* Algorithmus add the starting node to the open list while the open list is not empty { current node=node from open list with the.
Sort the given string, without using string handling functions.
Tastatur Esc F1F2F3F4F5F6F7F8F9 F10F11F12 DruckPause Rollen  Num  Rollen WRTZUIOPÜ °^°^ !1!1  „ 2 2 &6&6 $4$4 %5%5 / 7 { ( 8 [ ) 9 ] = 0 } ? ß \ `´`´
By Senem Kumova Metin 1 POINTERS + ARRAYS + STRINGS REVIEW.
Kapitel 3: Erhaltungssätze 3.6 Drehimpulserhaltung.
Universität Konstanz MPIEW Jena Universität Karlsruhe (TH) Inflexibilitäten und die Rolle strategischer Interaktion bei der Festlegung der Lohn- und Beschäftigungspolitik.
Smart 2 Unit 6 It’s our world! – Crossword puzzle.
Präsentation Baulandbewertung Präsentation am Institut für Stadt- und Regionalforschung Versuch einer Baulandbewertung.
 Geschichte  Kulturhauptstadt  Sehenswürdigkeiten  Klima  Verkehrsmittel  Sprache.
Projektarbeit: Tätigkeits-Bewertungssystem (TBS)
OTTO VON GUERICKE UNIVERSITÄT MAGDEBURG Professorin: apl. Prof. Dr. rer. nat. habil. Heidemarie Bräsel Graphentheorie in der Schule Graphentheorie in der.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Systeme II Christian Schindelhauer Sommersemester 2006.
“Girls only want boyfriends with great grammar.”.
Präsentiert: Dialog am Telefon zwischen Mutter und Tochter Irgendeine Ähnlichkeit mit der Wirklichkeit..... ist kein ZUFALL.
242/102/49 0/51/59 181/172/166 Primary colors 248/152/29 PMS 172 PMS 137 PMS 546 PMS /206/ /227/ /129/123 Secondary colors 114/181/204.
läuft automatisch Was gibt es Schöneres, als eine festlich geschmückte Wohnung!
PEPPOL (Pan European Public Procurement Online) by IBM
3.2 Lektion 3 Medieneinflüsse STRUKTUREN © and ® 2012 Vista Higher Learning, Inc Coordinating, adverbial, and subordinating conjunctions —Er wacht.
Das Internet und die Telefonverbindung in Deutschland.
Wie kann man Papier sparen??? Ich möchte euch erklären wie man Papier sparen oder Recyceln kann damit man die Umwelt schützen kann.
Urgeschichte des Faustball. Geschichte 1111555: Antonio Scanio schrieb die erste genaue Beschreibung des Faustballsportes 111 : Goethe.
ist ein Außerirdischer mit hellseherischen Fähigkeiten, der in riskanten Situationen mit seinem Raumschiff zur Stelle ist. Sicherheit macht mich richtig.
Die rückgedeckte Unterstützungskasse Informationen für den Arbeitnehmer.
Formate der betrieblicher Weiterbildung AußensteuerungSelbststeuerung Lernen in nicht- problematischen Berufs- und Lebenssituationen berufliches, privates,
Auswahl von Praxisprojekten des ComputerProjekts Köln e.V.
HERZLICH WILLKOMMEN ZUM DFB ELTERN-ABEND DFB STÜTZPUNKT SCHLOßBERG A.Schreffl P.Steinberger.
Ergebnisse der Erhebung zur MinistrantInnenarbeit 2015 im Bistum Speyer.
 GZD Und Gott sprach zu Abram: Ganz gewiss sollst du wissen, dass deine Nachkom-menschaft Fremdling sein wird in einem Land, das ihnen nicht gehört;
Leitfaden zur Erstellung eines Förderungsantrags COIN – Programmlinie „Aufbau“
Fahrer Sebastian Schmitt Rothenbergerweg Wald-Michelbach Tel.:06207/83078 Tel.: 06207/ Sponsorenmappe Familie Mike, Stefanie und Michelle.
The SHA Family of Hash Functions: Recent Results
Cases with prepositions
Cases with prepositions
Paralympischen Spiele.  Geschichte der Olympischen Spiele ist vielen bekannt. Leider viel weniger bekannt ist, Paralympics, oder, wie sie schreiben,
Redesign Firmen-Websites
ObenWebdesign Agentur Berlin Wenn es um Webdesign Agentur Berlin geht, sollten Sie nicht lange überlegen und direkt eine professionelle Online Marketing.
Wie beheben wir Probleme bei der Produktrückgabeschlüsseln bei der technischen Unterstützungsnummer von Microsoft ?
This presentation uses a free template provided by FPPT.com Container Transporte Hamburg By Robert Dittmers.
This presentation uses a free template provided by FPPT.com Container Transporte Hamburg By Robert Dittmers.
PILGERN – WARUM, SEIT WANN und WER?. BEDEUTUNG DES WORTES „PILGERN“! Das Wort „Pilger“ kommt aus dem Lateinischen (peregrinus) = „Fremder“. Eine Pilgerreise.
Click the placeholder text and type your own text.
Ppt宝藏_www.pptbz.com_提供下载 This text can be replaced with your own text.
Presentation transcript:

Fachbereich Elektrotechnik und Informationstechnik Die Türme von Hanoi Timm Grams Fachhochschule Fulda Fachbereich Elektrotechnik und Informationstechnik © Timm Grams, Fulda, 21.11.02

Die Türme von Hanoi - Das Problem Gegeben seien drei Pflöcke, die wir mit A, B und C bezeichnen. Zu Beginn stecken auf Pflock A genau n Scheiben. Die Scheiben werden von unten nach oben immer kleiner. Folgende Grundregel ist während des ganzen Spiels einzuhalten: Scheiben werden grundsätzlich auf Pflöcke gesteckt und nie daneben gelegt, und außerdem darf nie eine Scheibe auf einer kleineren liegen. Die Aufgabe lautet, die Scheiben - unter Beachtung der Regel - von Pflock A nach Pflock B zu transportieren.

Die Türme von Hanoi A B C

Die Türme von Hanoi - Programmidee Die Aufgabe, n Scheiben vom Quellturm zum Zielturm zu transportieren, führt man auf die wohl etwas einfachere Aufgabe für n-1 Scheiben zurück. Also: Man bringt die n-1 obersten Scheiben vom Ziel- auf den Hilfsturm, dann legt man die unterste Scheibe auf den Zielturm und anschließend werden die n-1 Scheiben vom Hilfsturm auf den Zielturm transportiert. Das Problem für n-1 Scheiben behandelt man nun genau so. Man führt es zurück auf den Transport von n-2 Scheiben. Und so weiter. Bis man nur noch eine Scheibe transportieren muss.

Die Türme von Hanoi - Programm /*A, B, C: Quell-, Ziel und Hilfsturm*/ void move(char A, char B, char C, int n){ if(n>1) move(A, C, B, n-1); printf("%5d:%c ---> %c\n", n, A, B); if (n>1) move(C, B, A, n-1); } void main(){ int n; printf("DIE TUERME VON HANOI\n"); printf("? Anzahl Scheiben = "); scanf("%d", &n); move('A', 'B', 'C', n);

Zur Visualisierung des Ablaufs Aufbau der folgenden Folien Programmspeicher (Ausschnitt) Befehlszähler (Program Counter, PC) Stapelspeicher (Stack) Für jeden Funktionsaufruf wird ein Funktions-segment (Activation Record) angelegt. Es wird als ein Blatt Papier visualisiert, das auf die bereits daliegenden Papiere gelegt wird. Es enthält die automatischen Variablen für die Parameter und die Rücksprungadresse (RA). Nach Beendigung der Funktion wird der Befehlszähler auf den Wert der Rücksprung-adresse (Return Address, RA) gesetzt und das Segment wird vom Stack entfernt. Die Türme

Das ergibt die folgende Situation. Ablauf Programmspeicher (Ausschnitt) Befehlszähler (Program Counter, PC) Nach Eingabe der Zahl 3 erfolgt im Hauptprogramm der Funktionsaufruf "move('A', 'B', 'C', 3);". Das ergibt die folgende Situation. (Das zuunterst liegende Funktionssegment für das Hauptprogramm ist weggelassen worden. Der weitere Fortgang ist dem Wert des Befehlszählers zu entnehmen.) Die Türme

Ablauf PC: 1 C A: 'A' B: 'B' A: 'A' A: 'A' B: 'C' C: 'C' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 1 C A: 'A' B: 'B' C: 'C' n: 1 RA: 2 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 2 C A: 'A' B: 'B' A: 'A' A: 'A' B: 'C' C: 'C' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 2 C A: 'A' B: 'B' C: 'C' n: 1 RA: 2 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 3 C A: 'A' B: 'B' A: 'A' A: 'A' B: 'C' C: 'C' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 3 C A: 'A' B: 'B' C: 'C' n: 1 RA: 2 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 4 C A: 'A' B: 'B' A: 'A' A: 'A' B: 'C' C: 'C' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 4 C A: 'A' B: 'B' C: 'C' n: 1 RA: 2 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 2 C A: 'A' A: 'A' B: 'C' B: 'B' C: 'B' C: 'C' n: 2 n: 3 void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 2 C A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 3 C A: 'A' A: 'A' B: 'C' B: 'B' C: 'B' C: 'C' n: 2 n: 3 void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 3 C A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 1 C A: 'B' A: 'A' B: 'C' A: 'A' B: 'C' C: 'A' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 1 C A: 'B' B: 'C' C: 'A' n: 1 RA: 4 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 2 C A: 'B' A: 'A' B: 'C' A: 'A' B: 'C' C: 'A' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 2 C A: 'B' B: 'C' C: 'A' n: 1 RA: 4 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 3 C A: 'B' A: 'A' B: 'C' A: 'A' B: 'C' C: 'A' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 3 C A: 'B' B: 'C' C: 'A' n: 1 RA: 4 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 4 C A: 'B' A: 'A' B: 'C' A: 'A' B: 'C' C: 'A' B: 'B' C: 'B' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 4 C A: 'B' B: 'C' C: 'A' n: 1 RA: 4 A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 4 C A: 'A' A: 'A' B: 'C' B: 'B' C: 'B' C: 'C' n: 2 n: 3 void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 4 C A: 'A' B: 'C' C: 'B' n: 2 RA: 2 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 2 C A: 'A' B: 'B' C: 'C' n: 3 RA: STOP B A void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 2 C A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 3 C A: 'A' B: 'B' C: 'C' n: 3 RA: STOP B A void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 3 C A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 1 C A: 'C' A: 'A' B: 'B' B: 'B' C: 'A' C: 'C' n: 2 n: 3 void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 1 C A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 1 C A: 'C' B: 'A' A: 'C' A: 'A' B: 'B' C: 'B' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 1 C A: 'C' B: 'A' C: 'B' n: 1 RA: 2 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 2 C A: 'C' B: 'A' A: 'C' A: 'A' B: 'B' C: 'B' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 2 C A: 'C' B: 'A' C: 'B' n: 1 RA: 2 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 3 C A: 'C' B: 'A' A: 'C' A: 'A' B: 'B' C: 'B' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 3 C A: 'C' B: 'A' C: 'B' n: 1 RA: 2 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 4 C A: 'C' B: 'A' A: 'C' A: 'A' B: 'B' C: 'B' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 4 C A: 'C' B: 'A' C: 'B' n: 1 RA: 2 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 2 C A: 'C' A: 'A' B: 'B' B: 'B' C: 'A' C: 'C' n: 2 n: 3 void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 2 C A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 3 C A: 'C' A: 'A' B: 'B' B: 'B' C: 'A' C: 'C' n: 2 n: 3 void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 3 C A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 1 C A: 'A' A: 'C' B: 'B' A: 'A' B: 'B' C: 'C' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 1 C A: 'A' B: 'B' C: 'C' n: 1 RA: 4 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 2 C A: 'A' A: 'C' B: 'B' A: 'A' B: 'B' C: 'C' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 2 C A: 'A' B: 'B' C: 'C' n: 1 RA: 4 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 3 C A: 'A' A: 'C' B: 'B' A: 'A' B: 'B' C: 'C' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 3 C A: 'A' B: 'B' C: 'C' n: 1 RA: 4 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 4 C A: 'A' A: 'C' B: 'B' A: 'A' B: 'B' C: 'C' B: 'B' C: 'A' void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 4 C A: 'A' B: 'B' C: 'C' n: 1 RA: 4 A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 4 C A: 'C' A: 'A' B: 'B' B: 'B' C: 'A' C: 'C' n: 2 n: 3 void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 4 C A: 'C' B: 'B' C: 'A' n: 2 RA: 4 A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: 4 C A: 'A' B: 'B' C: 'C' n: 3 RA: STOP B A void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: 4 C A: 'A' B: 'B' C: 'C' n: 3 RA: STOP A B

Ablauf PC: STOP C Das war's B A void move(char A, char B, char C, int n){ 1: if(n>1) move(A, C, B, n-1); 2: printf("%5d:%c ---> %c\n", n, A, B); 3: if (n>1) move(C, B, A, n-1); 4: } PC: STOP C Das war's A B

So sieht die Sache jetzt aus B C

Ende des Foliensatzes