Вычислить сумму ряда - Free Pascal (421)
Формулировка задачи:
Здравствуйте! Я тут совсем новичек и не разобралась где же можно посмотреть прикрепленное фото. Не могли бы вы помочь с задачей?
Разработать алгоритм и программу определяющие сумму ряда с заданной погрешностью E (ипселон) для произвольно заданного аргумента х. определить число повторений итерационного цикла.
Сам ряд выглядит так:
1 + (x*lna)/1 + ((x*lna)^2)/2 + ... + ((x*lna)^n)/n + ... ;
Диапазон изменения х:
- ∞ < x < ∞ ;
Выражение для проверки:
a^x;
Решение задачи: «Вычислить сумму ряда»
textual
Листинг программы
var a,e,x,t,s:real;
n:integer;
begin
repeat
write('Введите положительное число a=');
readln(a);
until a>0;
write('x=');
readln(x);
repeat
write('Введите точность 0<e<1 e=');
readln(e);
until(e>0)and(e<1);
t:=1;
s:=1;
n:=1;
while abs(t)>e do
begin
t:=t*x*ln(a)/n;
s:=s+t;
if abs(t)/n>e then n:=n+1;
end;
writeln('S=',s:0:4,' n=',n);
write('a^x=',exp(ln(a)*x):0:4);
end.
Объяснение кода листинга программы
- Объявлены переменные a, e, x, t, s типа real и переменная n типа integer.
- В цикле repeat-until пользователю предлагается ввести положительное число a и проверяется его корректность.
- В цикле repeat-until пользователю предлагается ввести точность e и проверяется её корректность.
- Инициализированы переменные t, s, n равными 1.
- В цикле while абсолютный значение t больше e, выполняется следующее:
- t умножается на x и на натуральный логарифм от a, и делится на n.
- t прибавляется к s.
- Если abs(t)/n больше e, то n увеличивается на 1.
- Выводятся значения s и n.
- Выводится значение a в степени x.