home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
turbo4
/
fib8087.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1987-12-08
|
1KB
|
42 lines
{ Copyright (c) 1985, 87 by Borland International, Inc. }
{$N+}
program Fib8087;
{
Beispielprogramm zu Kapitel 24 des Referenzhandbuchs - demonstriert
rekursive Programmierung ohne Überlauf des 8087-Rechenstack.
**********************************************************************
* HINWEIS: Dieses Programm erfordert einen numerischen Coprozessor! *
**********************************************************************
}
var
i : Integer;
function Fib(N : Integer) : Extended;
{ Berechnet die Fibonacci-Folge für N }
var
F1, F2 : Extended; { lokale Variablen auf dem Stack des 8086(!) }
begin
if N = 0 then Fib := 0.0
else if N = 1 then Fib := 1.0
else
begin
F1 := Fib(N - 1); { Ergebnisse werden in lokalen Variablen }
F2 := Fib(N - 2); { gespeichert - und damit auf dem Stack }
Fib := F1 + F2; { des 8086 }
end;
{ Der direkte rekursive Aufruf von der Funktion Fib mit
Fib := Fib(N - 1) + Fib(N - 2);
würde für N > 8 einen Überlauf des 8087-Rechenstack
erzeugen, weil bei jeder Rekursion ein weiteres
Zwischenergebnis gespeichert werden muß }
end; { Fib }
begin
for i := 0 to 15 do
Writeln(i, '. ', Fib(i):10:0);
end.