Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:rekursion:callstack_rekursion:start [13.01.2022 12:31] – [Dataillierte Betrachtung des Call-Stacks bei der Rekursion] sbel | faecher: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: | ||
- | |||
- | < | ||
- | 5! = 5*4*3*2*1 | ||
- | fakultaet(5) = 120 | ||
- | fakultaet(3) = 3*2*1 = 6 | ||
- | </ | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A1) Iterativ === | ||
- | |||
- | Implementiere in BlueJ eine iterative Version der Fakultätsfunktion, | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) Rekursiv === | ||
- | |||
- | Implementiere anhand des folgenden Pseudocodes eine rekursive Version '' | ||
- | |||
- | < | ||
- | fak_rekursiv(int n): | ||
- | wenn n=1: | ||
- | return 1 | ||
- | sonst: | ||
- | return n*fak_rekursiv(n-1) | ||
- | </ | ||
- | |||
- | * Was ist der Rekursionsfall, | ||
- | * Teste deine rekursive Methode | ||
- | |||
- | ===== Dataillierte Betrachtung des Call-Stacks bei der Rekursion ===== | ||
- | |||
- | ^ Was passiert | ||
- | |\\ || | ||
- | | '' | ||
- | |\\ || | ||
- | | '' | ||
- | |\\ || |