Rekursion: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) |
|||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 48: | Zeile 48: | ||
== Veranschaulichung == | == Veranschaulichung == | ||
[[Datei:Rekursion BlueJ.png|mini|Veranschaulichung einer Rekursion mit dem Debugger]] | [[Datei:Rekursion BlueJ.png|mini|Veranschaulichung einer Rekursion mit dem Debugger]] | ||
Veranschaulichen lässt sich die Rekursion am Beispiel der Fakultät auch an Hand der folgenden Darstellung. Ruft man die [[Methode]] <code>fakultät(4)</code> auf, so wird als Eingabeparameter n=4 übergeben. Dieser Aufruf ist Aufruf Nummer 1. Es folgen drei weitere Aufrufe der [[Methode]] <code>fakultät(n)</code>, um die Fakultät vom Wert 4 zu berechnen. Im vierten und letzten Aufruf hat die Variable n den Wert 1 angenommen. Die Abbruchbedingung ist erfüllt. Nun werden die Methodenaufrufe - symbolisiert durch die Pfeile - nacheinander abgearbeitet. Durch dieses nachträgliche Abarbeiten, wird die latinische Bedeutung des Wortes Rekursion ersichtlich: recursio = das Zurücklaufen. Die Reihenfolge kann in BlueJ auch anhand der Call Sequenz im Debugger nachvollzogen werden. | Veranschaulichen lässt sich die Rekursion am Beispiel der [[Fakultät]] auch an Hand der folgenden Darstellung. Ruft man die [[Methode]] <code>fakultät(4)</code> auf, so wird als Eingabeparameter n=4 übergeben. Dieser Aufruf ist Aufruf Nummer 1. Es folgen drei weitere Aufrufe der [[Methode]] <code>fakultät(n)</code>, um die Fakultät vom Wert 4 zu berechnen. Im vierten und letzten Aufruf hat die [[Variable (Informatik)|Variable]] n den Wert 1 angenommen. Die Abbruchbedingung ist erfüllt. Nun werden die Methodenaufrufe - symbolisiert durch die Pfeile - nacheinander abgearbeitet. Durch dieses nachträgliche Abarbeiten, wird die latinische Bedeutung des Wortes Rekursion ersichtlich: recursio = das Zurücklaufen. Die Reihenfolge kann in [[BlueJ]] auch anhand der Call Sequenz im [[Debugger]] nachvollzogen werden. | ||
[[Kategorie:Programmierung]] | [[Kategorie:Programmierung]] | ||
[[Kategorie:FI_I_SDM]] | [[Kategorie:FI_I_SDM]] | ||
[[Kategorie:AHR_I_Informatik_LK]] | [[Kategorie:AHR_I_Informatik_LK]] | ||
[[Kategorie:FI_I_TP1]] |