Условие задача: вычислять сумму элементов рекуррентной последовательности, пока её элемент по модулю не станет меньше 0,00001, элементы последовательности вычисляются по формуле -a(n)=2^n*n!/(n^n)!
program symma;
var a,s,z,e,k,p:real; n,m,j:integer;
begin
read(e);
z:=2;{первое слагаемое 2, цикл начинаем с второго слагаемого}
s:=1;
n:=1;
k:=2;
a:=2;
m:=1;
while abs(a)>=e do begin
k:=k*2;{вычисляем 2 в степени n}
n:=n+1;
p:=1;
for j:=1 to (n-1) do begin
p:=p*n;
end;
s:=s*p ;
a:=k/s;{слагаемое}
writeln(' a=',a:8:5);
z:=z+a;
m:=m+1;{кол-во слагаемых}
end;
writeln(' кол-во слагаемых=',m:3);
writeln(' otvet=',z:8:5);
end.
Результат:
0.00001
a= 2.00000
a= 0.44444
a= 0.01389
a= 0.00004
a= 0.00000
кол-во слагаемых= 6
otvet= 4.45838
Комментариев нет:
Отправить комментарий