rekursive Funktionen (Fakultät)
Funktionswerte aus vorherigen Funktionswerten berechnen
function Faku(a: integer): integer;
begin
if a=1 then Faku:=1 else Faku:= a* Faku(a-1);
end;
rekursive Funktion (Fibonacci-Zahlen)
die Zahlenfolge beginnt mit 1,1 und dann ist die nächste Fibonaccizahl die Summe der beiden vorherigen Zahlen
function Fibo(a: integer): integer;
if a<3 then Fibo:=1 else result:=Fibo(a-1)+Fibo(a-2)
—> die Funktion ruft sich bei jedem Aufruf zwei Mal auf —> mit zunehmendem a nimmt die Anzahl aller Funktionsaufrufe exponentiell zu
rekursive Funktion
eine Funktion, die sich in ihrem Quelltext selbst aufruft
es muss ein Abbruchkriterium dafür sorgen, das die Rekursion auch tatsächlich ein Ende hat (sich also nicht unendlich selbst aufruft)
Rekursionen, die sich innerhalb ihrer Deklaration mehrfach selbst aufrufen führen zu einer extremen Verlangsamung des Programmablaufs bei größerer Anzahl von Durchläufen
—> exponentielle Zunahme an Selbstaufrufen (Fibonacci-Zahlen)
iterativ ist das Gegenteil von rekursiv
rekursive Prozeduren
Prozeduren können auch rekursiv sein
—> procedure Sternenreihe (a:integer);
if a>1 the
Rekursion und Iteration
sowohl Rekursion als auch Iteration sind beides Formen der Wiederholung von Teilen eines Algorithmmus
Iteration: Wiederholung durch aneinanderreihung
—> als Kontrollstruktur Wiederholanweisungen (Schleifen)
Rekursion: Wiederholung durch Ineinanderschachtelung
Last changed2 years ago