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