Вычислить сумму ряда - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д