Приближённое вычисление суммы бесконечно убывающего ряда - Turbo Pascal (248581)
Формулировка задачи:
Приходится обратиться к ранее рассматриваемой книжной программе
из книги Паскаль для школьников, 2005 год. Пример 7.1 со стр. 113.
Хотелось бы довести её до ума.
Приближённое вычисление суммы бесконечно убывающего ряда:
1 + + + + + + + + + …
1+х/1!+х^2/2!+x^3/3!+x^4/4!+x^5/5!+x^6/6!+x^7/7!+x^8/8!+x^9/9!+…
Зададим Х = 2 и Eps = 0.005.
Десятое слагаемое x^9/9!=512/362880 = 0.0014 < Eps = 0.005.
Поэтому количество слагаемых должно быть 9 и сумма их S = 7.3873.
Вот эта программа. В ней добавлены строки 11, 18, 21 и 22 ( для печати).
И выход такой:
И всё тот же вопрос:
Почему печатается 10-е слагаемое, равное 0.0014 < Eps = 0.005 и
это же слагаемое суммируется в окончательную сумму S = 7.3887.
Должно быть девять слагаемых, последнее из них равно 0.0063 > Eps = 0.005 и
сумма должна быть S = 7.3873.
Можно удалить строки 11, 18, 21, 22 будет копия книжной. Результат тот же –
только без печатания ряда слагаемый и количества их (но такой выход слишком –
куцый – невозможно проверить).
Строку 11 ввёл – чтобы печаталось первое слагаемое, равное единице.
Решение задачи: «Приближённое вычисление суммы бесконечно убывающего ряда»
textual
Листинг программы
t:=первый_элемент; while t<eps do begin s:=s+t; t:=следующий_элемент; end;
Объяснение кода листинга программы
- Введенные переменные:
- t := первый_элемент;
- s := 0;
- В цикле while выполняется следующее:
- t < eps;
- s := s + t;
- t := следующий_элемент;
- Значение переменной s приближенно равно сумме бесконечно убывающего ряда.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д