Помогите сделать ** ПАСКАЛЕ. Вычислить с точностью ε значение выражения.Считать, что...

0 голосов
21 просмотров

Помогите сделать на ПАСКАЛЕ. Вычислить с точностью ε значение выражения.Считать, что требуемая точность достигнута, если модуль очередного слагаемого стал меньше ε.


image

Информатика (33 баллов) | 21 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  i,k:integer;
  x,s,eps,xk,sk:real;
begin
  Write('Введите значение x и точность eps: ');
  Readln(x,eps);
  if x>1 then Writeln('Значение не должно превышать 1')
  else begin
    k:=1; xk:=-x; sk:=xk; s:=xk;
    while abs(sk)>=eps do begin
      k:=k+1;
      xk:=(-xk)*x; sk:=xk/k; s:=s+sk
    end;
    Writeln('С заданной точностью сумма равна ',s);
  end
end.

Тестовое решение:
Введите значение x и точность eps: 0.751 1e-7
С заданной точностью сумма равна -0.560187020839545

(142k баллов)
0

Извини за беспокойство!Возникли трудности в "понимании" вот этих строчек как они получились? k:=1; xk:=-x; sk:=xk; s:=xk;
while abs(sk)>=eps do begin
k:=k+1;
xk:=(-xk)*x; sk:=xk/k; s:=s+sk

0

Вы по сути переписали все строки программы, кроме ввода и вывода и спрашиваете, как "они получились?". Это, в общем-то, стандартный итерационный цикл, в теле которого записана заданная формула.