Informatik S4
Das Unmögliche möglich machen. Für jeden.

Rekursion

Die Legendenfunktion:
 
(define (facu n)
(cond ((equal? n 0) 1)
(else (* n (facu (- n 1))))))

macht im Prinzip folgendes:

Die Funktion heißt facu und braucht den Parameter n, also die Eingabe des Nutzers.
Die Bedingung lautet: Sobald die Rückgabe des Wertes n = 0 ist, wird 1 zurückgeliefert. 
Aber solange dies nicht der Fall ist passiert die Rekursion:
N wird mit dem Wert aus facu (- n 1), also dem Wert der um 1 geringer als n ist, und der durch die Methode facu ermittelt wird, multipliziert. Da die Rechnung hier mit einem 

6 x facu (5) gerechnet wird, ergibt sich für facu (5) (rekursiver Abstieg)

facu (5) = 5 x facu (4) usw.

Bis da irgendwann steht

facu (1) = 1x facu (0)

Und dies ergibt 0. Dieser Wert wird wieder nach oben durchgerechet (rekursiver Aufstieg) und 0 wird für facu (1) eingesetzt, da 1 x 0 = 0. Da jede Multiplikation mit 0 auch = 0 ist, ist das Ergebnis 0.

Die cond Bedingung setzt hier ein: Sobald die Ausgabe 0 erfolgt ist, wird für die 0 eine 1 eingesetzt.

Das heißt dass auch 1 x 0 von eben ein 1 x 1 wird, also = 1. Damit ist facu (2) = 2 x 1 (ehemals facu(1) usw.

Am Ende kommt dann ein facu (6) = 6 x 120 (ehemals facu (5)) heraus.
Diese Webseite wurde kostenlos mit Homepage-Baukasten.de erstellt. Willst du auch eine eigene Webseite?
Gratis anmelden