
Циклические алгоритмы
Алгоритм, который предусматривает многократное повторение одного и того же действия, называется циклическим. В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в циклические алгоритмы входит последовательность команд, выполняемая многократно. Такая последовательность команд называется телом цикла.
Существуют три основных типа циклов – пока, до и для. Отличие первых двух циклов состоит в том, что в них количество повторений заранее определено. В первом случае, если препятствие никогда не встретится, движение будет продолжаться бесконечно долго. Такие явления при выполнении алгоритмов называются “зацикливанием”.
Любой цикл состоит из нескольких этапов.
Это:
1. Подготовка цикла, в которую входят начальные присвоения;
2. Тело цикла - команды повторения цикла;
3. Условие - обязательная часть циклов “До” и “Пока”.
Цикл называется арифметическим, если число повторений цикла известно заранее или может быть вычислено.
Цикл, как и любая другая алгоритмическая структура, может быть:
• записан на естественном языке;
• изображен в виде блок-схемы;
• записан на алгоритмическом языке;
• закодирован на языке программирования.
Блок-схемы базовых структур
Цикл, для которого нельзя указать число повторения, и проверка окончания которого происходят по достижению нужного условия, называется итерационным.
Алгоритм движения для трех типов циклов.
Цикл ПОКА (число шагов не известно)
Пока нет препятствия
сделать шаг вперед
Завершить цикл;
Цикл ДО (число шагов неизвестно)
Сделать шаг вперед
до встречи с препятствием
Завершить цикл.
Цикл ДЛЯ (число шагов известно)
Для количества шагов менее 100
сделать шаг вперед
Завершить цикл.
Задание № 1: Нужно исправить неверно составленный алгоритм:
На перемене школьник зашел в столовую съесть пирожков, и некто посоветовал ему воспользоваться алгоритмом
1. Пока не исчезнет чувство голода повторять:
2. Купить пирожок
3. Конец цикла
4. Съесть пирожок.
Какие строки алгоритма надо поменять местами, чтобы школьник ушел сытым?
Цикл ПОКА
пока <условие>
выполнять
<тело цикла>
Выполнение цикла ПОКА начинается с проверки условия его окончания. Эту разновидность цикла называют циклом с предусловием.
Если условие выполняется, то осуществляется изменение значений аргументов. В противном случае происходит выход из цикла. Может оказаться, что тело цикла не будет выполнено ни разу (если с самого начала условие не выполняется).
Цикл ДО
выполнять
<тело цикла >
до <условие>
Условие выполнения цикла проверяется в конце выполнения тела цикла, то есть в любом случае тело цикла будет выполнено хотя бы один раз.
Цикл ДЛЯ
Повторять N раз
<тело цикла>
При выполнении алгоритма последовательность команд в теле цикла повторяется указанное число раз. Правила алгоритмического языка допускают задание любого целого числа повторений. Оно может быть нулевым и даже отрицательным. Эти случаи не считаются ошибочными, просто тело цикла не будет выполнено ни разу, а компьютер сразу перейдет к выполнению команд, записанных после цикла. Среди команд, составляющих тело цикла, могут быть и другие циклы. Программисты часто пользуются циклами, в том числе многократно вложенными.
Вложенные циклы:
Начало цикла 1
Начало цикла 2
Конец цикла 2
Начало цикла 3
... ... ...
Начало цикла N
Конец цикла N
Конец цикла 3
Конец цикла 1
Составление блок-схем.
Задача № 1: Ученик в первый день выучил 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов выучит ученик в 10-ый день занятий? Составьте словесный алгоритм и блок-схему (тремя способами).
Словесный:
Начало
1. а=5 (считает слова)
2. d=1 (считает дни)
3. если D <= 10, то перейти к п. 4, иначе перейти к п.6
4. а = а + 2
5. d = d + 1
6. вывод а
7. конец
Задача № 2. Составить блок-схемы для нахождения y=x2, для х=2, 4, 6, 8, 10.
Задание для самостоятельной работы.
Составить блок-схемы вычисления суммы N первых натуральных чисел (N=3).


