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