Thema: Delphi Frage zur Kochkurve

Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Frage zur Kochkurve

  Alt 8. Jun 2007, 21:26
Hi, herzlich Willkommen!

Zitat von gnui:
müsste es hier nicht so sein dass die procedur immerwieder schon beim ersten koch aufruf nach begin wiederholt wird und die darauffolgenden befehle garnicht an die reihe kommen? schließlich wird schon mit dem 1. befehl die procedur erneut aufgerufen, eben bis die ordnung = 0 ist
versteh nicht wie die darauffolgenden befehle aufgerufen werden können, vllt nur ein denkfehler von mir irgendwie
Zugegeben, Rekursionen sind komplexer, als sich vermuten lässt. Ich versuche es mal bewusst sehr einfach auszudrücken:
Jede Prozedur/Funktion läuft im Prinzip von vorne bis hinten durch, da diese nicht vorzeitig verlassen wird. Ruft eine Prozedur sich selbst auf, wir der nachfolgende Code erst einmal ignoriert, jedoch nach Eintreten der Abbruchbedingung, die dafür sorgt, dass die Selbstaufrufe nicht mehr stattfinden, von hinten nach vorne abgearbeitet.

Der Grund hierbei liegt im Stack. Es wird sukzessive bei den Selbstaufrufen etwas in den Stack geschrieben und dieser wird dann wieder rückwärts geleert bzw. abgearbeitet.
Bildlich kannst du dir einen Stack (einen Speicher) vorstellen wie eine sehr schmale Sackgasse. Es fahren Autos hinein, doch ein Umdrehen ist nicht möglich. Daher müssen die zuletzt eingefahrenen Autos zuerst wieder entfernt werden, um ans erste Auto zu kommen.
  Mit Zitat antworten Zitat