Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:rekursion:rekursionsschachteln:start [13.01.2022 07:34] – [Fallunterscheidung ist unbedingt notwendig] sbel | faecher:informatik:oberstufe:algorithmen:rekursion:rekursionsschachteln:start [28.01.2025 07:19] (aktuell) – [Fallunterscheidung ist unbedingt notwendig] Frank Schiebel | ||
---|---|---|---|
Zeile 24: | Zeile 24: | ||
</ | </ | ||
- | //Ein Wort Eleganz und Performanz:// | + | //Ein Wort zu Eleganz und Performanz:// |
< | < | ||
Zeile 45: | Zeile 45: | ||
</ | </ | ||
- | **(a)** Zunächst iterativ, z.B. mit einer for-Schleife, | + | **(A)** Zunächst iterativ, z.B. mit einer for-Schleife, |
- | **(b)** Dann rekursiv anhand des folgenden Pseudocodes: | + | **(B)** Dann rekursiv anhand des folgenden Pseudocodes: |
< | < | ||
Zeile 55: | Zeile 55: | ||
</ | </ | ||
- | Teste den Code. Was beobachtest du? Erläutere, was das Problem ist - kannst du es lösen? | + | * Teste den Code. Was beobachtest du? |
+ | * Skizziere eine Programmablaufdiagramm für die rekursive Methode. | ||
+ | * Erläutere, was das Problem ist. | ||
+ | <WRAP center round important 80%> | ||
+ | Jede rekursive Funktion benötigt eine Fallunterscheidung in zwei Fälle: | ||
+ | * **Rekursionsfall**: | ||
+ | * **Basisfall**: | ||
+ | </ | ||
+ | **(C)** Passe deine rekursive Methode anhand des folgenden Pseudocodes mit einer Fallunterscheidung an: | ||
+ | |||
+ | < | ||
+ | countdown_rekursiv(int i): | ||
+ | wenn i<0: | ||
+ | return | ||
+ | sonst: | ||
+ | print(i + " .... ") | ||
+ | countdown_rekursiv(i-1) | ||
+ | </ | ||
+ | |||
+ | * Teste deinen Code | ||
+ | * Skizziere ein Programmablaufdiagramm für die rekursive Variante mit Fallunterscheidung. |