- •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
Министерство финансов Российской Федерации
Всероссийская государственная налоговая академия
ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ
Бакалавры: 230700 "Прикладная информатика"
Язык программирования С++
Лабораторная работа № 08
ПРОГРАММИРОВАНИЕ ИТЕРАЦИОННЫХ ЦИКЛИЧЕСКИХ
ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Автор профессор кафедры "Прикладной информатики в экономике"
кандидат технических наук Л.К. Кузнецов
10 апреля 2012 г.
Москва
ВГНА
2012
Лабораторная работа № 03
ПРОГРАММИРОВАНИЕ ИТЕРАЦИОННЫХ ЦИКЛИЧЕСКИХ
ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Цель работы:
Ознакомиться:
- с понятием итерационного циклического вычислительного процесса (ЩВП);
- с понятием ИЦВП с известным заранее и неизвестным заранее числом циклов;
с правилами (алгоритмами) накопления (вычисления) сумм и произведений в цикле;
с правилами вывода рекуррентных формул;
с оператором цикла со спецификацией итерационного типа (типа условия);
Получить практические навыки:
по накоплению сумм и произведений в цикле;
по выводу рекуррентных формул;
по программированию ИЦВП.
Цель работы. Освоить методику, программирования рекуррентных вычислений.
1. Изучить методику вывода рекуррентных соотношений.
2. Изучить алгоритмы рекуррентных вычислений.
1. Краткие теоретические сведения
Ниже приводятся минимальные сведения, необходимые только для выполнения лабораторной работы
1.1. Понятие ицвп
Итерация – результат многократного применения какой-либо математической операции. Пусть у = f(х), тогда последовательность f(х), f[f(х)], f{f[f(х)]} есть последовательность итераций функции f(х). В частности, если f(х) = ах, то эта последовательность записывается в виде ах, а2х, а3х, … , аnх. Число, показывающее, сколько раз применена операция, называется показателем итерации, процесс составления итерации – итерирование – находит многочисленные приложения в программировании циклических вычислительных процессов.
Итерационным называется вычислительный процесс, в котором для определения последующего значения переменной используются её предыдущие значения. При использовании итерационных процессов реализуется метод последовательных приближений.
Примером ИЦВП является вычисление приближенного значения квадратного корня из числа х по формуле Ньютона:
где У0 – заданное начальное приближение корня.
Так как по формуле (8.1) можно при некотором k вычислить не точное, а приближенное значение величины , то в условиях задачи необходимо указать величину , характеризующую требуемую точность вычислений. Тогда определение корня состоит в многократном вычислении (пересчете) по формуле (8.1), в правой части которой используется предыдущее значение переменной y. Вычисление следует прекратить при достижении требуемой точности, то есть при выполнении условия
С помощью итераций, то есть многократного применения какой-либо математической операции (в нашем случае вычисления по рекуррентной формуле (8.1)), реализуется метод последовательных приближений.
Рассмотренный выше итерационный вычислительный процесс можно представить в виде блок-схемы (рис. 8.1).
Рис.8.1. Блок-схема алгоритма вычисления квадратного корня по формуле Ньютона
Очевидно, что никаких изменений в структуре цикла при переходе от арифметических циклов, рассмотренных в предыдущей лабораторной работе, к итерационным не происходит. Итерационный ЦВП состоит из тех же частей и строится по той же типовой блок-схеме, что и арифметический.
ИЦВП можно разделить на ЦВП, в которых число повторений цикла заранее известно, и на ЦВП, в которых число повторений цикла заранее неизвестно.
В ИЦВП, в которых число повторений цикла заранее известно, проверка окончания цикла происходит по специальной переменной – счетчику циклов. Например, при вычислении суммы вида
используется рекуррентная (итерационная) формула
для определения очередного k-го члена суммы через значение предыдущего k-1 члена этой суммы. При этом число циклов, необходимое для вычисления суммы (8.3), известно заранее и равно n.
В ИЦВП, в которых число повторений цикла заранее неизвестно, проверка окончания цикла происходит по достижении некоторого условия. Например, по достижении нужной точности (8.2) в рассмотренном выше примере вычисления приближенного значения квадратного корня по формуле Ньютона (8.1).
Наибольшее распространение получили ИЦВП, в которых заранее неизвестно число повторений цикла. Поэтому обычно под итерационным ЦВП понимают ЦВП, в которых число повторений цикла заранее неизвестно, и, наоборот, ЦВП, в которых число повторений цикла заранее известно, чаще всего связывают с ЦВП.
На языке С++ алгоритмы ИЦВП могут быть описаны с помощью уже рассмотренных ранее операторов присваивания, перехода и условного оператора. Однако запись алгоритмов в этом случае получается сложной и излишне громоздкой. Поэтому в языке С++ для организации ИЦВП предусмотрены специальные оператор цикла: оператор цикла с предусловием while и оператор цикла с постусловием do.. while (рассмотрены в предыдущей работе).
Существует классический набор задач, при решении которых используются ИЦВП. Все эти задачи, помимо общего, что они итерационные, имеют свои особенности. В алгоритмах вычисления сумм, произведений, количеств, пределов, последовательностей особенностью является содержание тела цикла. При вычислении суммы к значению суммы многократно прибавляются новые значения слагаемых. При вычислении произведения значение многократно помножается на очередной сомножитель. При вычислении количеств значение счетчика увеличивается на 1. При вычислении предела или последовательности значение многократно вычисляется на базе предыдущего значения. Итоговое значение, кроме вычисления последовательностей, чаще единственное, так как все остальные вычисленные значения являются промежуточными. Управление циклами этого вида выполняется также с использованием управляющих переменных, которыми фактически служит номер вычисляемого значения (слагаемого, множителя, элемента последовательности). Если число повторений известно, цикл должен быть арифметическим. В задачах вычисления с указанной точностью цикл должен быть итерационным, так как заранее не может быть известно число повторений, которое понадобится, чтобы достичь заданной точности.
Организация ИЦВП чаще всего опирается на рекуррентные формулы. Рассмотрим применение рекурсии в алгоритмах вычисления сумм и произведений.