§ 6. Использование основных алгоритмических конструкций для решения задач
6.4. Нахождение суммы элементов числовой последовательности
Пример 6.15. В секретной лаборатории выводят полезные бактерии. Экспериментально было установлено, что количество бактерий (в млн) завит от номера дня, в который проводится эксперимент, следующим образом: «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨16px¨»«mrow»«msub»«mi»a«/mi»«mi»n«/mi»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mfrac»«msup»«mi»n«/mi»«mn»3«/mn»«/msup»«msqrt»«msup»«mi»n«/mi»«mn»3«/mn»«/msup»«mo»§#160;«/mo»«mo»-«/mo»«mo»§#160;«/mo»«mi»n«/mi»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»1«/mn»«/msqrt»«/mfrac»«/mrow»«/mstyle»«/math». Определите, сколько бактерий вывели за m дней. Этапы выполнения задания. I. Исходные данные: m (число дней). II. Результат: s (общее количество бактерий). III. Алгоритм решения задачи. 1. Ввод числа m. IV. Описание переменных: m – int, s, a – double. Пример 6.16. Написать программу для вычисления суммы, имеющей своими слагаемыми элементы последовательности «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨16px¨»«mrow»«msub»«mi»a«/mi»«mi»n«/mi»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«mrow»«mi»n«/mi»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msup»«mn»2«/mn»«mi»n«/mi»«/msup»«/mrow»«mrow»«mi»n«/mi»«mo»!«/mo»«/mrow»«/mfrac»«/mrow»«/mstyle»«/math». Вычисления производить до тех пор, пока не найдется слагаемое, для которого верно неравенство «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨16px¨»«mrow»«mfenced open=¨|¨ close=¨|¨»«msub»«mi»a«/mi»«mi»n«/mi»«/msub»«/mfenced»«mo»§#160;«/mo»«mo»§#60;«/mo»«mo»§#160;«/mo»«mi»e«/mi»«mi»p«/mi»«mi»s«/mi»«/mrow»«/mstyle»«/math». Значение eps вводится («math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨16px¨»«mrow»«mn»0«/mn»«mo»§#160;«/mo»«mo»§#60;«/mo»«mo»§#160;«/mo»«mi»e«/mi»«mi»p«/mi»«mi»s«/mi»«mo»§#160;«/mo»«mo»§#60;«/mo»«mo»§#160;«/mo»«mn»1«/mn»«/mrow»«/mstyle»«/math»). Этапы выполнения задания I. Исходные данные: eps (точность вычислений). II. Результат: переменная s (сумма). III. Алгоритм решения задачи. 1. Ввод числа eps. 2.1. Так как количество слагаемых заранее не известно, то для вычисления суммы воспользуемся циклом do…while. 3. Вывод результата s. IV. Описание переменных: n – int, eps, a, s, d, f – double. |
Пример 6.15. V. Программа:
VI. Тестирование VII. Анализ результата. Для проверки правильности результата можно посчитать значение суммы на калькуляторе: «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨14px¨»«mrow»«msub»«mi»a«/mi»«mn mathvariant=¨italic¨»1«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mn»1«/mn»«mo»;«/mo»«/mrow»«/mstyle»«/math» «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨14px¨»«msub»«mi»a«/mi»«mn»2«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«msup»«mn»2«/mn»«mn»3«/mn»«/msup»«mrow»«msqrt»«mn»8«/mn»«/msqrt»«mo»§#160;«/mo»«mo»-«/mo»«mo»§#160;«/mo»«mn»2«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»1«/mn»«/mrow»«/mfrac»«mo»§#8776;«/mo»«mn»4«/mn»«mo».«/mo»«mn»38«/mn»«mo»;«/mo»«/mstyle»«/math» «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨14px¨»«msub»«mi»a«/mi»«mn»3«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«msup»«mn»3«/mn»«mn»3«/mn»«/msup»«mrow»«msqrt»«mn»27«/mn»«/msqrt»«mo»§#160;«/mo»«mo»-«/mo»«mo»§#160;«/mo»«mn»3«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»1«/mn»«/mrow»«/mfrac»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»8«/mn»«mo».«/mo»«mn»44«/mn»«mo»,«/mo»«/mstyle»«/math» «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨14px¨»«mi»S«/mi»«mo»§#160;«/mo»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»13«/mn»«mo».«/mo»«mn»82«/mn»«mo».«/mo»«/mstyle»«/math» Пример 6.16. V. Программа:
VI. Тестирование VII. Анализ результата. Поскольку факториал является чрезвычайно быстро растущей функцией, то элементы последовательности убывают. Выпишем элементы: «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨14px¨»«msub»«mi»a«/mi»«mn»1«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«mrow»«mn»1«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»2«/mn»«/mrow»«mn»1«/mn»«/mfrac»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mn»3«/mn»«mo»;«/mo»«mo»§#160;«/mo»«mo»§#160;«/mo»«mo»§#160;«/mo»«mo»§#160;«/mo»«mo»§#160;«/mo»«msub»«mi»a«/mi»«mn»2«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«mrow»«mn»2«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msup»«mn»2«/mn»«mn»3«/mn»«/msup»«/mrow»«mrow»«mn»2«/mn»«mo»!«/mo»«/mrow»«/mfrac»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mn»3«/mn»«mo»;«/mo»«mspace linebreak=¨newline¨/»«msub»«mi»a«/mi»«mn»3«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«mrow»«mn»3«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msup»«mn»2«/mn»«mn»3«/mn»«/msup»«/mrow»«mrow»«mn»3«/mn»«mo»!«/mo»«/mrow»«/mfrac»«mo»§#160;«/mo»«mo»=«/mo»«mfrac»«mn»11«/mn»«mn»6«/mn»«/mfrac»«mo»§#160;«/mo»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»1«/mn»«mo»,«/mo»«mn»83«/mn»«mo»;«/mo»«mspace linebreak=¨newline¨/»«msub»«mi»a«/mi»«mn»4«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«mrow»«mn»4«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msup»«mn»2«/mn»«mn»4«/mn»«/msup»«/mrow»«mrow»«mn»4«/mn»«mo»!«/mo»«/mrow»«/mfrac»«mo»§#160;«/mo»«mo»=«/mo»«mfrac»«mn»20«/mn»«mn»24«/mn»«/mfrac»«mo»§#160;«/mo»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»0«/mn»«mo»,«/mo»«mn»83«/mn»«mo»;«/mo»«mspace linebreak=¨newline¨/»«msub»«mi»a«/mi»«mn»5«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«mrow»«mn»5«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msup»«mn»2«/mn»«mn»5«/mn»«/msup»«/mrow»«mrow»«mn»5«/mn»«mo»!«/mo»«/mrow»«/mfrac»«mo»§#160;«/mo»«mo»=«/mo»«mfrac»«mn»37«/mn»«mn»120«/mn»«/mfrac»«mo»§#160;«/mo»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»0«/mn»«mo»,«/mo»«mn»31«/mn»«mo»;«/mo»«mspace linebreak=¨newline¨/»«msub»«mi»a«/mi»«mn»6«/mn»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«mrow»«mn»6«/mn»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msup»«mn»2«/mn»«mn»6«/mn»«/msup»«/mrow»«mrow»«mn»6«/mn»«mo»!«/mo»«/mrow»«/mfrac»«mo»§#160;«/mo»«mo»=«/mo»«mfrac»«mn»70«/mn»«mn»720«/mn»«/mfrac»«mo»§#160;«/mo»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»0«/mn»«mo»,«/mo»«mn»097«/mn»«mo».«/mo»«/mstyle»«/math» Шестой элемент меньше 0.1. Это последнее слагаемое в сумме. Сумма первых шести элементов — ≈9.07. Если eps = 0.01, то к сумме, полученной для eps = 0.1, будут добавляться слагаемые, которые меньше 0.1, которые незначительно изменят значение суммы. Разница в значениях суммы — ≈0.03. Чем меньше точность, тем меньше будут отличаться суммы. |