- •1. Краткие теоретические сведения
- •1.1. Понятие циклического вычислительного процесса
- •1.2. Типовая блок-схема организация цвп
- •1.3. Классификация цвп
- •Повторений и специальной переменной - счетчиком циклов
- •1.4. Общие сведения об операторах цикла
- •1. Оператор while:
- •2. Оператор do…while:
- •3. Оператор for:
- •1.5. Оператор цикла типа "прогрессия" for
- •1.6. Основные правила и порядок выполнения оператора цикла for:
- •Оператор цикла со спецификацией, заданной скалярным выражением
- •1.7. Оператор цикла while
- •1.5.4.1. Оператор цикла while
- •1.5.4.3. Оператор цикла while
- •1.5.5.4. Оператор цикла while
- •1. Цикл с предусловием:
- •1.5.5.5. Основные правила использования и порядок выполнения оператора цикла while:
- •1.5.5.6. Пример № 1
- •1.8. Оператор цикла do...While
- •1.5.5.1. Оператор цикла do while
- •1.5.5.2. Оператор цикла с постусловием do
- •1.5.5.3. Оператор цикла do while
- •1.5.5.4. Оператор цикла do-while
- •2. Цикл с постусловием:
- •1.9. Табулирование функций
- •1.10. Вычисление конечных сумм и произведений
- •1.11. Правила организации циклических алгоритмов
- •1.12. Операторы перехода и их использование в циклах
- •1.12.1. Оператор прерывания циклов break
- •1.Break – оператор прерывания цикла.
- •1.12.2. Оператор перехода к следующей итерации цикла continue
- •Оператор продолжения continue для циклов do, while, for
- •1.12.3. Оператор перехода goto
- •1.12.4. Оператор возврата из функции return
- •Замечание:
- •2. Задание
- •2.1. Изучить теоретические сведения
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Табуляция неразветвляющейся функции
- •2.4.1.1. Условие задания
- •Варианты заданий
- •2.4.2. Задание 2. Табулирование разветвляющейся функции
- •2.4.2.1. Условие задания
- •2.4.3. Задание 3. Табулирование разветвляющейся функции
- •2.4.3.1. Условие задания
- •2.5. Задания для дома
- •2.5.1. Задание 1. Табулирование неразветвляющейся функции в равноотстоящих точках
- •2.5.1.1. Условие задания
- •2.5.2. Задание 2. Табулирование разветвляющейся функции в равноотстоящих точках
- •2.5.2.1. Условие задания
- •2.5.2.2.Пример программы табулирования функции
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие циклического вычислительного процесса 2
1.2. Типовая блок-схема организация цвп
При организации любого ЦШ необходимо проделать следующие четыре действия:
1. Установить начальное значение параметра цикла.
2. Провести вычисления в цикле.
3. После выполнений очередного цикла изменить значение параметра цикла так, чтобы подготовить следующий цикл вычислений.
4. Проверить условие продолжения цикла (или окончания цикла).
Исходя из этого, блок-схему организации одиночного ЦВП можно пред- ставить в виде, показанном на рис. 7.1.
Блок Б1 служит для установки начального значения параметра цикла. Блок Б2 является телом цикла. Это блок, в котором выполняются действия, представляющие собой цикл, данный блок может быть очень большим куском программы и, как правило, содержит большое количество различных операторов. Блок БЗ служит для изменения параметров цикла. Он подготавливает параметр цикла к очередному (следующему) выполнению цикла. Наконец, блок Б4 служит для проверки условия продолжения вычислений в цикле. Этот блок определяет конечное число выполнений цикла.
Порядок выполнения (расположения) указанных блоков в ряде случаев может нарушаться, некоторые блоки могут задаваться неявно или видоизменяться. Тем не менее, приведенную на рис. 7.1, блок-схему организации одиночного ЦВП принято считать типовой.
Пример 7.3. Составить блок-схему алгоритма, реализующего циклические вычисления функции (7.1).
Исходя из требований к организации ЦВП, можно представить блок-схему цикла для функции (7.1) следующим образом (рис. 7.1,б).
В приведенной схеме:
1) вводятся исходные данные а b, с (блок 2);
2) переменной х (параметру цикла) присваивается начальное значение интервала изменения аргумента х = 0 (блок 3). Этот блок соответствует блоку Б1 типовой блок-схемы ЦВП;
3) вычисляется функция у по выражению (7.1). Результаты вычисления: аргумент х и функция у выводятся из ЭВМ. Эти блоки (4,5,6) соответствуют блоку Б2 типовой блок-схемы ЦВП;
4) рассчитывается новое значение аргумента х по выражению хi+1 = хi + х (блок 7). Этот блок соответствует блоку БЗ типовой блок-схемы ЦВП;
5) проверяется условие продолжения цикла (блок 8). Для этого значение х, полученное в блоке 7, сравнивается с числом 2 (конечным значением интервала изменения аргумента х = 2). Если х 2, то передают управление на блок 4 (на продолжение вычислений в цикле). Иначе (когда х > 2) вычислительный процесс останавливается (управление передается на блок 9). Этот блок соответствует блоку Б4 типовой блок-схемы ЦВП.
1.3. Классификация цвп
можно классифицировать по разным признакам. Обычно ЦВП классифицируют следующим образом:
1. По числу повторений цикла:
– циклы с заранее известным (конечным числом повторений цикла;
– циклы с неизвестный заранее (переменным) числом повторений. Как правило, такие циклы одновременно являются итеративными
Рис. 7.1. Блок-схемы:
а) типовая организации одиночного ЦВП;
б) алгоритма ЦВП вычисления функции (7.1)
2. По используемому параметру цикла:
– в роли параметра цикла выступает аргумент функции, вычисляемой в цикле. Параметр цикла участвует в вычислениях в теле цикла;
– в роли параметра цикла выступает специальная переменная - счетчик повторений цикла. Параметр цикла не участвует, либо участвует неявно в вычислениях в теле цикла. В качестве параметра цикла чаще всего используется индексная переменная (не путать с индексированной переменной и переменной с индексами).
3. По числу вложений цикла:
– одиночные циклы;
– вложенные циклы (цикл в цикле), при числе вложений 2.
4. По использованию результатов вычислений предыдущего цикла:
– итеративные (используют);
– неитеративные (не используют).
Приведенная классификация ЦВП носит несколько условный характер, так как чаще всего циклы носят более сложный характер, то есть используется одновременно сочетание приведенных выше циклов. Так, например, ЦВП может быть одновременно одиночным (не вложенным), итеративным, с неизвестным заранее числом повторений, в роли параметра цикла выступает аргумент.
Поскольку данная лабораторная работа посвящена программированию ЦВП с заранее известным числом циклов, то остановимся на них несколько более подробно. При организации таких процессов в роли параметра цикла может выступать, как аргумент функции, вычисляемый в цикле, так и специальная переменная – счетчик циклов, не связанная на прямую с телом цикла.
При проведении научно- и инженерно-технических расчетов наиболее часто приходится сталкиваться с ЦВП, для которых заранее известно число повторений цикла, а в роли параметра выступает аргумент функции, вычисляемой в цикле. Примером задачи на эту разновидность ЦВП может служить вычисление функции (7.1) (пример 7.3 и рис. 7.1,б). Составление блок-схем алгоритмов и программ такого рода ЦВП является наиболее привычным и понятным для студентов и обычно не вызывает особых затруднений. Рассмотрим еще один пример на этот тип ЦВП.
Пример 7.4
Составить блок-схему алгоритма вычисления таблиц площади поверхности и объема шара с заданным шагом изменения радиуса DR и с заданным максимальным радиусом Rmax. Минимальное значение радиуса принять равным 0.
Блок-схема, составленная для такого расчета, приведена на рис.7.2,а. Напомним, что площадь поверхности шара S и объем шара V в зависимости от его радиуса выражаются формулами:
где = 3.14159.
При организации циклов с заранее известным числом повторений цикла в ряде случаев придется использовать специальную переменную – счетчик, по которой будет организовываться выход из цикла. Такой счетчик может фиксировать либо число проделанных повторений, либо число оставшихся повторений цикла. В первом случае начальным значением счетчика является ноль и счетчик наращивается на 1 (единицу) при каждом прохождении цикла. Условием выхода из цикла здесь будет достижение счетчиком заданного числа (N повторений (рис. 7.3,а, где счетчик - переменная С). Во втором случае начальным значением счетчика является заданное число повторений, и при каждом повторении цикла счетчик уменьшается на 1 (единицу). Условием выхода из цикла будет здесь достижение счетчиком куля (рис. 7.3,б).
В качестве счетчика целесообразно использовать переменную целого типа. Если нет необходимости сохранять по окончании циклов число повторений N, то вместо счетчика С можно использовать число повторений N и организовать цикл по второму способу.
ЦВП с использованием счетчика заданного числа повторений чаще всего используется при работе с массивами (рассмотрим в последующих лабораторных работах), а также при решении инженерно-экономических задач.
Рассмотрим пример использования цикла с заранее известным числом повторений и с параметром цикла - счетчиком числа повторений.
Рис. 7.2. Блок-схемы алгоритмов ЦВП: а) примера 7.4; б) примера 7.5
Пример 7.5
Составить блок-схему алгоритма для вычисления и печати п -го члена ряда
z = sinx + sin(sinx) + sin(sin(sin(x))) + ……
для заданного значения аргумента x.
Блок-схема алгоритма, реализующего указанные вычисления представлена на рис. 7.2,б. В этом алгоритме каждый последующий член получается из предыдущего, путем его функционального преобразования. Так как предыдущее значение ряда не надо сохранять, то при таком преобразовании оно теряется. В качестве начального значения текущего члена у выбрано у = х. Поэтому после первого прохождения цикла мы получаем у = sinx, то есть первый член ряда, и уменьшаем на 1 (единицу) значение счетчика N. Если это значение было при вводе равно 1, то при проверке условия окажется, что N = 0, и вычисления прекратятся. На печать будет выведено значение аргумента х и соответствующее ему значение первого члена ряда. При N = 2 цикл повторяется дважды и будет вычислено значение у = sin(sinx) и т.д.
Другие разновидности ЦВП, приведенные в классификации будут рассмотрены в последующих лабораторных работах.
В языке С++ дли удобства, экономичности и наглядности записи алгоритмов ЦВП введены специальные операторы цикла.
Рис. 7.3. Блок-схема организации ЦВП с заранее известным числом