Вычислить сумму бесконечного ряда с точностью е - Free Pascal (207)

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

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

program test;
var u, s :real;
z, n :integer;
fac :longint;
i :byte;
const e=1e-3; x=0.25;
begin
fac:=1;
s:=0;
n:=0;
u:=(exp(ln(ln(3))*n)/fac)*exp(ln(x)*n);
while abs(u)>e do
begin
for i:=2 to n do
fac:=fac*i;
s:=s+u;
n:=n+1;
u:=u+(exp(ln(ln(3))*n)/fac)*exp(ln(x)*n);
end;
writeln('s=', s:17:2);
end.
Выдает экситкод 215. Где ошибка? Что делать?

Решение задачи: «Вычислить сумму бесконечного ряда с точностью е»

textual
Листинг программы
n:=0;
u:=1;//значение нулевого члена ряда
s:=u;
while abs(u)>e do
 begin
  n:=n+1;//увеличим номер
  u:=u*ln(3)*x/n;//домножим на ln(3)*x поделим на n получим ln^n(3)*x^n/n!
  s:=s+u;
 end;

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

  1. Инициализируем переменные: n := 0; u := 1; // значение нулевого члена ряда s := u;
  2. Запускаем цикл, который будет выполняться до тех пор, пока абсолютное значение u не станет меньше заданной точности e: while abs(u) > e do
  3. Увеличиваем номер n на единицу: n := n + 1;
  4. Вычисляем новое значение u, используя формулу: u := u ln(3) x / n;
  5. Добавляем новое значение u к сумме s: s := s + u;
  6. Повторяем шаги 3-5 до тех пор, пока условие цикла не будет выполнено. В результате выполнения данного кода будет получена сумма бесконечного ряда с заданной точностью e.

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


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

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

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