Вычислить сумму и найти число слагаемых, которые вошли в сумму - Free Pascal (960)

Узнай цену своей работы

Формулировка задачи:

Вычислить сумму и найти число слагаемых, которые вошли в сумму. Процесс вычислений требуется закончить, когда очередное слагаемое по модулю окажется меньше . (((-1)^n)(n^2))/n!, n=1,2,... p.s. такой способ не подходит:
uses crt;
function fact(b : integer) : longint;
var i,st : longint;
begin
st:=1;
for i:=2 to b do st:=st*i;
fact:=st;
end;
var      x,s,e : real;
n,m,k : integer;
begin
clrscr;
repeat
write('Vvedite x: ');
readln(x);
until x<>0;
repeat
write('Vvedite EPSILON: ');
readln(e);
until e>0;
n:=1;
s:=0;
while abs(n*n/fact(n))>=e do
begin
if ((n+1) mod 2=0) then
s:=s-n*n/fact(n) else
s:=s+n*n/fact(n);
n:=n+1;
end;
writeln('Summa ravna: ',s:5:5);
writeln('Kolichestvo chlenov: ',n-1);
readkey;
end.
Надо сделать по следующему примеру: (-1)^n*(((x^n)*cosn)/(n+1)!) Выводим =*(/(k+1)!). Тогда выводим =... после чего /=-x/(k+1). В итоге z=(-x/(k+1))z.
k:=1; S:=0; A:=1, Z:=1;
while abs(a)>eps do
begin
s:=s+a; k:=k+1; z:=-z*x/(k+1); a:=z*cos(k)
end;

Решение задачи: «Вычислить сумму и найти число слагаемых, которые вошли в сумму»

textual
Листинг программы
k:=1; S:=0; Z:=-1;
while abs(z)>eps do
begin
s:=s+z; k:=k+1; z:=-z*k/((k-1)*(k-1));
end;

Объяснение кода листинга программы

  1. Инициализируются три переменные: k=1, S=0, Z=-1.
  2. Запускается цикл while, который выполняется до тех пор, пока абсолютное значение Z больше заданной точности eps.
  3. Внутри цикла к сумме S прибавляется значение переменной Z, а затем переменная k увеличивается на единицу.
  4. Значение переменной Z обновляется в соответствии с формулой Z = -Z k / ((k-1) (k-1)).
  5. После окончания цикла выводится значение переменной S.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы