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

Повторений и специальной переменной - счетчиком циклов

1.4. Общие сведения об операторах цикла

Вычислительные процессы с многократным повторением однотипных вычислений/действий для различных значений входящих величин/данных называются циклическими, повторяющиеся участки вычислений – циклами.

Под циклом понимается многократное выполнение одних и тех же операторов при различных значениях промежуточных данных. Число повторений может быть задано в явной или неявной формах.

При составлении алгоритмов решения практических задач нередко приходится некоторые действия выполнять многократно, каждый раз с новыми значениями для величин, входящих в повторяющуюся группу действий.

Часто при создании программ на ЭВМ требуется много раз выполнить одну и ту же группу операторов. Например, для вычисления суммы ряда длиной N или перебора элементов массива с целью определения наибольшего или наименьшего значения и т.п. Во всех этих случаях необходим инструмент для реализации повторяющихся операций и таким инструментом являются операторы цикла.

Многократно повторяемые участки вычислений называют циклами. Один проход цикла называется итерацией или повторением. Величины, определяющие количество повторений цикла, называются параметрами циклов. Параметрами цикла могут быть константы и переменные, причем среди них обязательно должна быть хотя бы одна переменная, значение которой изменяется при выполнении цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла. Вычислительные процессы, содержащие циклы, называют циклическими.

Циклические алгоритмы можно условно разделить на две группы.

1. Арифметический цикл, у которого заранее известно число повторений.

2. Итерационный цикл, у которого заранее неизвестно число повторений.

Управление циклом выполняет некоторая переменная величина, которая называется «параметр цикла» или «управляющая переменная». Это переменная программы, которая, как правило, изменяется в теле цикла, определяет число повторений цикла и позволяет вовремя завершить его работу.

Можно выделить четыре составные части цикла:

1. Подготовка к выполнению цикла: присваивание начальных значений переменным, в том числе параметру цикла.

2. Тело цикла (рабочая часть цикла): фрагмент, который должен быть повторен многократно.

3. Изменение параметра цикла (подготовку данных для очередного шага цикла): как правило, выполняется в теле цикла.

4. Проверка условия завершения цикла (или условия повторения цикла): в проверке условия, явно или нет, присутствует параметр цикла.

Не всегда эти составляющие присутствуют явным образом.

Различают циклы с предусловием и циклы с постусловием. В циклах с предусловием условие повторения цикла проверяется раньше, чем выполняется тело цикла, поэтому возможно, что цикл не выполнится ни разу. В циклах с постусловием условие повторения цикла проверяется после выполнения тела цикла и подготовки данных для очередного шага цикла, поэтому цикл выполняется всегда хотя бы один раз. В общем виде циклы с предусловием и постусловием графически можно изобразить, как показано на рисунке 7.4.

а) Цикл с предусловием б) Цикл с постусловием

Рис. 7.4. Графические схемы циклов

а) - с предусловием и б) – с постусловием

С точки зрения языка С++ алгоритмы ЦВП могут быть описаны о по­мощью совместного использования уже рассмотренных ранее операторов: оператора присваивания, оператора перехода и условного оператора. Од­нако запись алгоритмов в этом случае получается сложной и излишне гро­моздкой. Поэтому во всех алгоритмических языках высокого уровня, в том числе и в языке С++, для организации ЦВП предусмотрены специальные средства - операторы цикла. Операторы цикла значительно облегчает труд программиста, так как они обеспечивают более компактную (экономичную), проще контролируемую к наглядную запись алгоритма.

Язык С++ имеет, как ни один другой алгоритмический язык, развитые операторы цикла. Заметим, что операторы цикла относятся к числу наибо­лее употребляемых на практике операторов языка С++.

Оператор цикла указывает характер изменения параметра цикла, обеспечивает необходимое количество повторений цикла с соответствующими вычислениями, организует также своевременный выход из цикла.

Различают циклы с пред- и циклы с постусловием (см. табл. 7.1).

Таблица 7.1

Виды циклов

Цикл

Наименование

for

Цикл с предусловием, цикл с параметром

while

Цикл с предусловием

do while

Цикл с постусловием

Пример 7.6. Виды циклов

а) Цикл с неизвестным числом повторений – «определить сумму всех целых чисел, вводимых с клавиатуры до тех пор, пока не будет введен ноль», итерационные процессы

б) Цикл и известным числом повторений – табулирование функции

в) Цикл с предусловием – «определить сумму положительных чисел»

г) Цикл с постусловием – «определить сумму всех целых чисел, вводимых с клавиатуры до тех пор, пока не будет введен ноль»

Задание 1

Приведите примеры вычислительных процессов с многократным повторением однотипных вычислений.

Для организации циклических структур в программах, написанных на языке С++, используются три различных оператора цикла: for, while, do-while.

Указанные три вида операторов цикла одинаково можно использовать для организации любого циклического алгоритма.