faecher:informatik:oberstufe:algorithmen:rekursion:callstack_rekursion:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:oberstufe:algorithmen:rekursion:callstack_rekursion:start [13.01.2022 12:29] – [Dataillierte Betrachtung des Call-Stacks bei der Rekursion] sbelfaecher:informatik:oberstufe:algorithmen:rekursion:callstack_rekursion:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== Der Call-Stack und die Rekursion ====== 
  
-Ein populäres Beispiel für rekursive Algorithmen ist die Fakultätsfunktion: 
- 
-<code> 
-5! = 5*4*3*2*1 
-fakultaet(5) = 120 
-fakultaet(3) = 3*2*1 = 6 
-</code> 
- 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A1) Iterativ ===  
- 
-Implementiere in BlueJ eine iterative Version der Fakultätsfunktion, die als Argument die Zahl entgegennimmt, deren Fakultät berechnet werden soll. 
- 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A2) Rekursiv ===  
- 
-Implementiere anhand des folgenden Pseudocodes eine rekursive Version ''fak_rekursiv''. 
- 
-<code> 
-fak_rekursiv(int n): 
-  wenn n=1:  
-    return 1 
-  sonst: 
-    return n*fak_rekursiv(n-1) 
-</code> 
- 
-  * Was ist der Rekursionsfall, was der Basisfall? 
-  * Teste deine rekursive Methode 
- 
-=====  Dataillierte Betrachtung des Call-Stacks bei der Rekursion ===== 
- 
-^ Was passiert                                                                                                                ^ Wie sieht der Stack aus?  ^ 
-|\\ || 
-| ''fak_rekursiv(3)'' wird aufgerufen.\\ Auf dem Stack wird Speicher für diesen Aufruf reserviert. Es gibt keine Rücksprungadresse.\\ Innerhalb dieses Aufrufs wird ''fak_rekursiv(2)'' (nächster Schtritt) aufgerufen,\\ da die Fallunterscheidung nicht zum Basisfall\\ führt sondern zum Rekursionsfall. |       {{ .:fak001.drawio.png |}}                | 
-|\\ || 
-| ''fak_rekursiv(2)'' wird aus dem vorhergehenden Aufruf heraus aufgerufen.\\ Auf dem Stack wird Speicher für diesen Aufruf reserviert. Es gibt keine Rücksprungadresse |       {{ .:fak001.drawio.png |}}                | 
-|\\ || 
  • faecher/informatik/oberstufe/algorithmen/rekursion/callstack_rekursion/start.1642073363.txt.gz
  • Zuletzt geändert: 13.01.2022 12:29
  • von sbel