Вычислить первые 20 членов последовательности чисел Фибоначчи: u1=1; u2=2; u(n)=u(n-1)+u(n-2), а также значение золотого сечения V(n)=u(n)/u(n-1) — Pascal(Паскаль)

const nmax = 20;
 
{Число Фибоначчи по заданному n}
function fib(n:integer):integer;
begin
if (n=1) then begin fib:=1;exit;end;
if (n=2) then begin fib:=2;exit;end;
fib:=fib(n-1)+fib(n-2);
end;
 
{Значение золотого сечения по заданному n}
function sech(n:integer):real;
begin
sech:=fib(n)/fib(n-1);
end;
 
var i:integer;
 
begin
writeln('u(1) = ',fib(1));
for i:=2 to nmax do
  writeln('u(',i,') = ',fib(i),'    v(',i,') = ',sech(i):2:2);
readln;
end.
uses crt;
var a,b,c,i:longint;
begin
clrscr;
a:=1;{1 и 2 числа = 1}
b:=1;
write('1 1 ');
i:=2;
repeat
c:=a+b;
write(c,' ');
i:=i+1;
a:=b;
b:=c;
until i>19;{19-е это 20-е}
readln
end.
uses crt;
var a,b,c,i:longint;
begin
clrscr;
a:=1;{1 и 2 числа = 1}
b:=1;
write('1 1 ');
i:=2;
while i<20 do
 begin
  c:=a+b;
  write(c,' ');
  i:=i+1;
  a:=b;
  b:=c;
 end;
readln
end.
const nmax = 20;
 
var i:integer;
    u1,u2,u3:integer;
    v:real;
 
begin
u1:=1;
u2:=2;
v:=u2/u1;
writeln('u(1) = ',u1);
writeln('u(2) = ',u2,'    v(2) = ',v:2:2);
for i:=3 to nmax do begin
  u2:=u2+u1;
  u1:=u2-u1;
  v:=u2/u1;
  writeln('u(',i,') = ',u2,'    v(',i,') = ',v:2:2);
end;
readln;
end.

Leave a Comment

− 5 = 2