Rekursion: Unterschied zwischen den Versionen

 
(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]]