Вычислить бесконечную сумму с заданной точностью - Pascal
Формулировка задачи:
Вычислить бесконечную сумму с заданной точностью ε (ε > 0). Считать, что требуемая точность достигнута, если вычислена сумма нескольких первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем ε, - это и все последующие слагаемые можно уже не учитывать. Вычислить:∑_(i=1)^∞=(-1)^(i+1)/i(i+1)(i+2).
Решение задачи: «Вычислить бесконечную сумму с заданной точностью»
textual
Листинг программы
var s, a, e: real;
i: integer;
begin
repeat
write('eps > 0; eps = ');
readln(e)
until e > 0;
i := 1;
a := 1 / 6;
s := a;
while abs(a) >= e do
begin
inc(i);
a := (1 - i) * a / (i + 2);
s := s + a
end;
write('S = ', s:0:15);
readln
end.
Объяснение кода листинга программы
- Объявление переменных:
s,a,e- вещественные числа для хранения суммы, элемента последовательности и точности, соответственно.i- целое число для итераций.
- Цикл ввода точности:
- Повторять пока не будет введено положительное значение для точности
e.
- Повторять пока не будет введено положительное значение для точности
- Инициализация переменных:
iустанавливается равным 1.aустанавливается равным 1/6.sустанавливается равнымa(начальный элемент суммы).
- Цикл вычисления суммы:
- Пока абсолютное значение
aбольше или равноe, выполняется следующее:- Увеличивается значение
iна 1. - Значение
aпересчитывается по формуле (1 - i) * a / (i + 2). - Значение
sувеличивается наa.
- Увеличивается значение
- Пока абсолютное значение
- Вывод результата:
- Выводится значение суммы
sс точностью до 15 знаков после запятой. - Ожидается ввод для завершения программы.
- Выводится значение суммы