Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
60
Task/Fibonacci-sequence/Oberon-2/fibonacci-sequence.oberon
Normal file
60
Task/Fibonacci-sequence/Oberon-2/fibonacci-sequence.oberon
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
MODULE Fibonacci;
|
||||
IMPORT
|
||||
Out := NPCT:Console;
|
||||
|
||||
PROCEDURE Fibs(VAR r: ARRAY OF LONGREAL);
|
||||
VAR
|
||||
i: LONGINT;
|
||||
BEGIN
|
||||
r[0] := 1.0; r[1] := 1.0;
|
||||
FOR i := 2 TO LEN(r) - 1 DO
|
||||
r[i] := r[i - 2] + r[i - 1];
|
||||
END
|
||||
END Fibs;
|
||||
|
||||
PROCEDURE FibsR(n: LONGREAL): LONGREAL;
|
||||
BEGIN
|
||||
IF n < 2. THEN
|
||||
RETURN n
|
||||
ELSE
|
||||
RETURN FibsR(n - 1) + FibsR(n - 2)
|
||||
END
|
||||
END FibsR;
|
||||
|
||||
PROCEDURE Show(r: ARRAY OF LONGREAL);
|
||||
VAR
|
||||
i: LONGINT;
|
||||
BEGIN
|
||||
Out.String("First ");Out.Int(LEN(r),0);Out.String(" Fibonacci numbers");Out.Ln;
|
||||
FOR i := 0 TO LEN(r) - 1 DO
|
||||
Out.LongRealFix(r[i],8,0)
|
||||
END;
|
||||
Out.Ln
|
||||
END Show;
|
||||
|
||||
PROCEDURE Gen(s: LONGINT);
|
||||
VAR
|
||||
x: POINTER TO ARRAY OF LONGREAL;
|
||||
BEGIN
|
||||
NEW(x,s);
|
||||
Fibs(x^);
|
||||
Show(x^)
|
||||
END Gen;
|
||||
|
||||
PROCEDURE GenR(s: LONGINT);
|
||||
VAR
|
||||
i: LONGINT;
|
||||
BEGIN
|
||||
Out.String("First ");Out.Int(s,0);Out.String(" Fibonacci numbers (Recursive)");Out.Ln;
|
||||
FOR i := 1 TO s DO
|
||||
Out.LongRealFix(FibsR(i),8,0)
|
||||
END;
|
||||
Out.Ln
|
||||
END GenR;
|
||||
|
||||
BEGIN
|
||||
Gen(10);
|
||||
Gen(20);
|
||||
GenR(10);
|
||||
GenR(20);
|
||||
END Fibonacci.
|
||||
Loading…
Add table
Add a link
Reference in a new issue