- •1. Краткие теоретические сведения
- •1.1. Понятие ицвп
- •1.2. Алгоритмы вычисления сумм и произведений в цикле
- •А) суммы; б) произведения
- •1.3. Выбор типа общего члена суммы (произведения) при вычислении сумм и произведений в цикле
- •1.4. Вывод рекуррентных формул
- •А) вариант 1; б) вариант 2
- •1.4. Оператор цикла со спецификацией итерационного типа (типа условия)
- •А) выполнения оператора while ; б) функции примера 8.6
- •1.5. Уточнение корней уравнений
- •1.6. Использование оператора цикла do … while в ицвп
- •1.7. Использование операторов break и continue в ицвп
- •2. Задание
- •2.4.1.2. Пример
- •2.4.1.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Использование рекуррентных формул в цикле
- •2.4.3.1. Условие задания
- •Варианты заданий
- •Варианты заданий
- •2.4.3.2. Пример
- •2.4.3.3. Программа
- •Варианты заданий
- •2.4.4.2. Пример
- •2.4.4.3. Программа
- •2.5.1.2. Пример программы
- •2.5.1.3. Программа
- •2.5.1.4. Тестирование
- •2.5.1.5. Типичные ошибки при выполнении работы
- •2.5.2. Задание 2. Накопление произведений в цикле
- •2.5.2.2. Пример 8.4
- •2.5.2.3. Программа
- •2.5.3.2. Пример для варианта 30
- •2.5.3.3. Программа
- •2.5.3.4. Тестирование
- •2.5.4. Задание 4. Вычисление значения функции с помощью разложения в ряд
- •2.5.4.1. Условие задания
- •Варианты заданий
- •2.5.4.2. Пример для варианта 30
- •2.5.4.3. Программа
- •2.5.4.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие ицвп 2
1.2. Алгоритмы вычисления сумм и произведений в цикле
В практике программирования довольно часто приходится вычислять выражения вида
где – некоторая функция.
Эффективным средством реализации указанных вычислений является использование циклических вычислительных процессов, но при этом следует соблюдать два правила:
Правило накопления суммы: переменной, с помощью которой будет накапливаться сумма в цикле, необходимо присвоить начальное значение 0 (ноль) до входа в цикл.
Правило накопления произведений: переменной, с помощью которой будет накапливаться произведение в цикле, необходимо присвоить начальное значение 1 (единица) до входа в цикл.
Рассмотрим, чем обусловлены эти два правила.
При вычислении сумм вида (8.5) используется принцип накапливания сумм, реализуемый при помощи рекуррентной формулы вида
где – значение суммы, содержащей k-1 слагаемое; – значение суммы, содержащей k слагаемых; – значение k-го слагаемого.
Использование формулы (8.7) заключается в следующем. Примем начальное значение суммы равным нулю: S0 (при k = 1). Зададим индексу k начальное значение к = 1. Тогда получим сумму с первым слагаемым: S1 = S0 + Y1 = 0 + Y1 = Y1 . Увеличим значение индекса k на единицу: k = k + 1 = 2 и вновь просуммируем со вторым слагаемым по выражению (8.7): S2 = S1 + Y2 = (S0 + Y1 ) + Y2 = (0 + Y1 ) + Y2 = Y1 + Y2. Вновь увеличим значение индекса k на единицу и просуммируем с третьим членом: S3 = S2 + Y3 = (S1 + Y2 ) + Y3 = (S0 + Y1 + Y2 ) + Y3 = (0 + Y1 + Y2 ) + Y3 = Y1 + Y2 + Y3 .
Повторяя эти операции до k = n, мы получим искомую сумму
S = Sn = (0 + Y1 + Y2 + … + Yn-1) + Yn .
Поскольку при вычислениях надобности в запоминании значений всех слагаемых и промежуточных сумм нет, в качестве Sk и Yk нужно использовать простые без индексов переменные и накапливание вести в цикле по формуле
S = S +Y, (8.8)
где знак = означает присваивание значения.
Если начальное значение S предварительно приравнять нулю, то после первого выполнения цикла значение S будет равно первому значению функции, находящейся под знаком суммы.
Таким образом, получаем схему, реализующую принцип накапливания суммы. Алгоритм такого принципа включает следующие операции (рис. 8.2,а):
1) присвоение сумме S начального значения: S = 0 (блок 2);
2) присвоение индексу k начального значения: k = 1 (блок 3);
3) вычисление очередного (k-го) слагаемого накапливаемой суммы: (блок 4);
4) накапливание суммы по выражению: S = S + Yk (блок 5);
5) увеличение значения индекса k на единицу: k = k + 1 (блок 6);
6) проверку текущего значения индекса k с его конечным значением n (блок 7). Если k ≤ n, то возвратимся к п. 3 (блок 4). Если нет (k > n), переходим на следующую операцию (п. 7);
7) выводим на печать полученное значение суммы S (блок 8);
8) останавливаем вычисления (блок 9).
По аналогии с накапливанием суммы принцип вычисления произведений вида (8.6), реализуется при помощи рекуррентной формулы вида
где – произведение, содержащее k-1 сомножитель; – произведение, содержащее k сомножителей; – значение k-го сомножителя.
Использование формулы (8.9) заключается в следующем. Примем начальное значение произведения равным единице: р0 = 1 (при k =1 ). Зададим индексу k начальное значение k = 1.
Тогда получим произведение с первым сомножителем: P1 = P0 * Y1 = 1 * Y1 = Y1 .
Увеличим значение индекса k на единицу: k = k + 1 = 2 и вновь произведем умножение со вторым слагаемым по выражению (8.9): P2 = P1 * Y2 = (P0 * Y1 ) * Y2 = (1 * Y1 ) * Y2 = Y1 *Y2. Вновь увеличим значение индекса k на единицу и произведем умножение с третьим членом: P3 = P2 * Y3 = (P1 * Y2 ) * Y3 = (P0 *Y1 * Y2 ) * Y3 = (1 * Y1 * Y2 ) * Y3 = Y1 * Y2 * Y3 .
|
|
а) |
б) |
Рис. 8.2. Блок-схемы алгоритмов вычисления в цикле: