Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР7-С++-05 апреля-2012.doc
Скачиваний:
19
Добавлен:
15.09.2019
Размер:
2.45 Mб
Скачать

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. Блок-схема организации ЦВП с заранее известным числом