Ablauf einer Rekursiven Funktion |
11.03.2015, 17:16 | Auf diesen Beitrag antworten » | |||||
Tina92 | Ablauf einer Rekursiven Funktion Meine Frage: Hi Leute, ich hätte mal eine Frage zu den rekursiven Funktionen und wie diese eigentlich genau funktionieren. Hab als Beispiel einmal die Fakultätsfunktion geschrieben:
Meine Ideen: Was ich jetzt nicht verstehe, was genau in dieser Zeile passiert: return zahl*fakult(zahl-1); Vielen Dank für Eure Hilfe :-) |
|||||
|
||||||
11.03.2015, 17:33 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Das Programm springt immer wieder in eine Unterfunktion. Ich habe mal ein paar Kontrollausgaben ergänzt:
Das ist der zeitliche Ablauf: die Funktion ruft sich selbst auf, wartet auch ein Ergebnis der Unterfunktion und gibt dieses dann zurück. |
|||||
14.03.2015, 11:04 | Auf diesen Beitrag antworten » | |||||
Tina92 | Vielen Dank für deine Antwort. |
|||||
05.04.2015, 19:37 | Auf diesen Beitrag antworten » | |||||
Tina92 | Hey :-) Ich muss das Thema leider noch einmal aufgreifen, da ich nicht weiterkomme. Den folgenden Code habe ich soeben mal schnell geschrieben:
Könnt ihr mir bitte sagen, wie jetzt hier als Ergebnis 26 rauskommt? Vielen Dank |
|||||
Anzeige | ||||||
|
||||||
05.04.2015, 20:12 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Für zahl = 3 ist das Ergebnis: 2 + 3 * versuch(2) versuch(2) ist 2 + 2 * versuch(1) versuch(1) ist 2 + 1 * versuch(0) versuch(0) ist 1, das Ergebnis eingesetzt ergibt versuch(1) = 2+1*1 = 3 versuch(2) = 2+2*3 = 8 versuch(3) = 2+3*8 = 26 |
|||||
05.04.2015, 21:22 | Auf diesen Beitrag antworten » | |||||
Tina92 | Vielen Dank für deine Antwort :-) |
|||||
06.04.2015, 13:12 | Auf diesen Beitrag antworten » | |||||
Michael90 | Zu diesem Thema hätte ich auch eine Frage: Warum wird a am Ende wieder positiv und nicht negativ, also -1,-2,-3,-4 ?
|
|||||
06.04.2015, 13:25 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Du gibst am Ende wider das a der aufrufenden Funktion aus. rekursion(3) setzt a auf 2, gibt eine 2 aus, ruft rekursion(2) auf (Ausgabe: 1 0 0 1) und gibt die 2 dann erneut aus. |
|||||
12.04.2015, 12:19 | Auf diesen Beitrag antworten » | |||||
Michael90 | Danke dir für die Antwort. Also verstehe ich das richtig, dass es folgendermaßen abläuft, dass erst (angenommener Wert = 3) von 3,2,1,0 abläuft und dann wieder 1,2,3 zurückläuft? |
|||||
12.04.2015, 18:10 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Die Funktion springt in eine Unterfunktion (in dem Fall in sich selbst) rein und arbeitet diese ab. Danach führt sie sich selbst weiter aus. Wie Klammern, die sich gegenseitig umschließen: {[()]} Und sowohl bei der öffnenden, als auch bei der schließenden Klammer hast du eine Ausgabe. |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|