Задача 25.
Приближенное вычисление суммы бесконечно убывающего ряда 1+x/1!+x2/2!+x3/3!+ ...
Program Summer2;
var
Eps:real; { Заданное число "эпсилон" }
X: real; { Основание степени в числителе дроби }
S: real; { В этой переменной будем накапливать сумму }
Y; real; { Для хранения очередного слагаемого }
i: integer; { Счетчик числа шагов }
begin
write('Введите X и Epsilon:');
readln(X, Eps);
Y:=l; { Первое слагаемое }
S:=Y; { Положим в сумматор первое слагаемое }
i:=0; { Обнулим счетчик шагов }
while abs(Y)>=Eps do { Пока добавленное слагаемое не меньше "эпсилон", считаем сумму. Если "эпсилон" сразу не меньше 1, цикл не выполнится ни разу! }
begin { Началось тело цикла }
i:=i+l; { Вычислили номер текущего шага }
Y:=Y*X/i; { Посчитали новое слагаемое }
S:=S+Y { Увеличили сумму на текущее слагаемое }
end; { Тело цикла завершилось. После этой строки компьютер перейдет на оператор while для сравнения переменной "эпсилон" с только что добавленным слагаемым }
{ Теперь выведем результат на экран }
Writeln('Сумма чисел=', S:6:4);
readln
end.
|