Прогамма вычисления суммы ряда, в чем может быть ошибка? - Pascal
Формулировка задачи:
создать проект для вычисления выражения S с заданной точностью ε.
ε = 10-5; x = 0.3
Ответ: S=0.008838
program bars; const eps=0.000001; var s,x:real; i:integer; begin writeln('Введите число Х='); readln(x); writeln('Введите I='); readln(i); s:=0; i:=1; while s>eps do begin s:=s+(power((-1),(i+1))*exp((2*i+1)*ln(x)))/(4*i*i-1); i:=i+1; end; writeln(s:0:8); end.
Решение задачи: «Прогамма вычисления суммы ряда, в чем может быть ошибка?»
textual
Листинг программы
const eps = 1e-5; var a, s, x: double; n: integer; begin repeat write('|x| <= 1; x = '); readln(x) until abs(x) <= 1; a := x * x * x / 3; x := x * x; s := a; n := 1; while abs(a) >= eps do begin inc(n); a := -x * a / (n + 0.5) * (n - 1.5); s := s + a end; writeln('S = ', s:0:8); readln end.
Объяснение кода листинга программы
- Объявляются константа
eps
со значением1e-5
и переменныеa
,s
,x
с типом данныхdouble
иn
с типом данныхinteger
. - Начинается цикл
repeat- until
, который предотвращает ввод пользователя значенияx
, не превышающего по модулю 1. - После выполнения цикла
repeat-until
, переменнойa
присваивается значениеx * x * x / 3
,x
умножается на само себя, иs
присваивается значениеa
. - Переменной
n
присваивается значение1
. - Начинается цикл
while
, который выполняется до тех пор, пока значение по модулю переменнойa
больше или равноeps
. - Внутри цикла выполняются следующие действия:
- Увеличивается значение переменной
n
на 1. - Переменной
a
присваивается значение-x * a / (n + 0.5) * (n - 1.5)
. - К переменной
s
добавляется значениеa
.
- Увеличивается значение переменной
- После завершения цикла
while
выводится значение переменнойs
с точностью до 8 знаков. - Происходит ожидание ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д