Циклические алгоритмы.
Содержание:
- Циклы со счетчиком
- Циклы с предусловием
- Циклы с постусловием
- Сложные циклы
Циклические алгоритмы применяются в тех случаях, когда требуется реализовать многократно повторяющиеся однотипные вычисления.
Циклическим называется алгоритм, в котором некоторая часть операций (тело цикла – последовательность команд) выполняется многократно, т.е. более одного раза. Однако «многократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности – получения результата за конечное число шагов.
Различают:
- циклы с известным числом повторений (или со счетчиком);
- циклы с неизвестным числом повторений (циклы с предусловием и циклы с постусловием).
В любом цикле должна быть переменная, которая управляет выходом из цикла, т.е. определяет число повторений цикла.
Перед операцией цикла осуществляются операции присвоения начальных значений тем объектам, которые используются в теле цикла. В цикл входят в качестве базовых следующие структуры:
- блок проверки условия;
- блок, называемый телом цикла.
Телом цикла или рабочей частью цикла называется последовательность действий, которая должна выполняться на каждом шаге цикла (т.е. определяет число повторений цикла).
Циклы со счетчиком
В циклах такого типа известно число повторений цикла, т.е. оно является фиксированным числом. В этом случае переменная, которая считает количество повторений (шагов) цикла, называется счетчиком цикла (или параметром цикла, или управляющей переменной цикла).
Блок-схема циклического алгоритма в этом случае выглядит так:
Такая блок-схема хорошо иллюстрирует работу цикла со счетчиком. Перед выполнением первого шага цикла счетчику цикла должно быть присвоено начальное значение – любое число в зависимости от алгоритма. Если величина счетчика цикла не превышает конечное значение, то далее будет выполняться группа действий, составляющих тело цикла. После выполнения тела цикла счетчик цикла изменяется на определенную величину – шаг изменения счетчика цикла h. Если полученное значение счетчика цикла не превысит конечное значение, то цикл продолжится до тех пор, пока счетчик цикла не станет больше конечного значения – тогда управление передается действию, следующему за циклом.
В блок-схемах для изображения цикла со счетчиком используют блок «Подготовка». В блоке «Подготовка» записывается счетчик цикла (I), далее последовательно указываются начальное значение (Iн), конечное значение (Iк) счетчика цикла и шаг его изменения (h). Если шаг изменения h равен 1, его можно не записывать. Желательно, чтобы линия потока входила в блок сверху, линия потока к телу цикла выходила снизу, слева (или справа) входила линия потока перехода к следующему шагу цикла, а справа (или слева) выходила линия потока – выход из цикла.
При использовании цикла со счетчиком необходимо соблюдать некоторые требования:
- в теле цикла нельзя принудительно изменять значение счетчика цикла;
- не разрешается передавать управление оператору тела цикла извне, т.е. вход в цикл допускается только через начало цикла.
Циклы с предусловием
Циклы с предусловием чаще всего используются тогда, когда неизвестно число повторений цикла. Циклы с предусловием – это такие циклы, в которых до начала выполнения тела цикла проверяется условие выполнения его шага цикла. Если значение этого условия истинно (т.е. условие выполняется), то выполняется тело цикла. В теле цикла должно изменяться значение по крайней мере одной переменной, которая влияет на значение условия (иначе произойдет «зацикливание»). Далее опять проверяется условие выполнения цикла, и если значение условия ложно, то осуществляется выход из цикла.
Можно использовать и еще один вариант этого цикла, когда проверяется не истинность значения условия, а ложность. В этом случае выход из цикла происходит, когда значение условия цикла становится истинным. Тот или иной вариант цикла используется в зависимости от того, какое условие в данном алгоритме программисту удобнее использовать.
На блок-схеме такой цикл реализуется следующей конструкцией:
Особенность этого цикла в том, что тело цикла может не выполниться ни разу, если условие первоначально ложно в первом варианте (или истинно во втором).
Циклы с постусловием
Этот тип цикла также используется при неизвестном заранее количестве повторений цикла, но в отличие от цикла с предусловием здесь условие на выход из цикла проверяется после того, как выполнились операторы тела цикла, поэтому хотя бы один раз тело цикла будет обязательно выполнено.
На блок-схеме этот тип цикла изображается следующим образом:
Сложные циклы
Циклы, которые содержат внутри себя (в теле цикла) один или несколько других циклов, называются сложными или вложенными циклами.
При этом циклы, охватывающие другие циклы, называются внешними. А циклы, входящие во внешние циклы, — внутренними циклами.
На каждом шаге внешнего цикла внутренний цикл «прокручивается» полностью.
Контрольные вопросы
- Какие виды циклов вы знаете?
- Объясните работу циклов со счетчиком.
- В чем отличие циклов с предусловием от циклов с постуcловием?
- Что такое сложные циклы?