vor

Objektorientierte Programmierung mit Object-Pascal

weiter

4.11 Rekursion

Rekursiv ist eine Prozedur oder Funktion, die sich in ihrem Anweisungsteil selbst aufruft. Das ähnelt einer Schleifenbildung.
Eine rekursive Prozedur muss unbedigt eine Endbedingung enthalten.

Beispiel für eine rekursive Berechnung der Fakultšt:
implementation

{$R *.DFM}

function Fak(n: Integer): LongInt;

begin
  IF n < 0 THEN;
    Fak := -1;              {Argument negativ - Fehler!}
  ELSE IF n = 0 THEN;
    Fak := 1;               {Ende der Rekursion}
  ELSE;
    Fak := n * Fak(n-1);    {rekursiver Aufruf}
end;


Bei jedem erneuten Aufruf der Prozedur werden für die Werteparameter neue Speicherplätze angelegt. Deshalb kann es zu einem Programmabsturz kommen, wenn die rekursive Prozedur bzw. Funktion zu häufig aufgerufen wird.

vor

Inhaltsverzeichnis

weiter