- •5.1. Понятие алгоритма
- •5.1.1. Алгоритм и его свойства
- •5.1.2. Способы описания алгоритма
- •Изображение алгоритма в виде блок-схемы
- •Виды алгоритмов
- •Контрольные задания:
- •5.2. Компьютер как формальный исполнитель алгоритмов
- •5.2.1. Исполнитель и система команд исполнителя
- •5.2.2. Компьютер — автоматический исполнитель алгоритмов
- •Контрольные задания:
- •5.3. Алгоритмические конструкции:
- •5 Рис. 5.8. Линейный алгоритм .3.1. Линейный алгоритм
- •5.3.2. Разветвляющийся алгоритм
- •5.3.3. Циклические алгоритмы
- •5.3.3.1. Цикл со счетчиком
- •5 Рис. 5.17. Цикл с предварительным условием .3.3.2. Циклы с условием
- •Контрольные задания:
5.3.3. Циклические алгоритмы
В алгоритмическую структуру цикл входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла.
Циклические алгоритмические структуры бывают двух типов:
циклы со счетчиком, в которых тело цикла выполняется определенное количество раз;
циклы с условием, в которых тело цикла выполняется, пока условие истинно.
В алгоритмической структуре цикл – серия команд (тело цикла) выполняется многократно.
Давайте себе представим следующую ситуацию. Нам необходимо покрасить забор-штакетник, состоящий из 25 отдельных, рядом находящихся деревянных брусков. Что нам нужно для этого сделать?
Для начала взять банку с краской, кисточку и подойти к забору. Окунуть кисточку в краску и прокрасить один брусок. Перейти ко второму бруску. Снова окунуть кисточку в краску и прокрасить его. Перейти к третьему бруску и снова повторить те же самые действия. И так 25 раз подряд. В этой простой задаче мы с вами можем выделить набор одних и тех же действий. Это:
Окунуть кисточку в краску;
Прокрасить один брусок;
Перейти к следующему бруску.
Этот набор действий и будет является телом цикла, которое будет выполняться 25 раз (брусок, в данном случае, является счетчиком).
5.3.3.1. Цикл со счетчиком
К
Рис.
5.15. Блок-схема цикла со счётчиком
В начале выполнения цикла значение переменной Счетчик устанавливается равным начальному значению (НачЗнач). В примере с покраской забора это 1 (первый брусок). При каждом проходе цикла переменная Счетчик увеличивается на величину шага. В примере с покраской забора это 1 (красим один брусок и переходим к следующему номер следующего бруска = номеру предыдущего бруска + 1). Если Счётчик достигает величины, большей конечного значения (КонЗнач), то цикл завершается и выполняются следующие за ним команды.
ПРИМЕР 5.12. Вывести ряд натуральных чисел от 1 до 10.
РЕШЕНИЕ.
Примечание. Анализируя задачу, замечаем, что входных параметров нет. Нам необходимо вывести числа от 1 до 10, а кто за них отвечает? Конечно счётчик, значит, счётчик и будет выходным параметром. Счётчик обозначим латинской буквой – i. Числа выводятся подряд, значит, шаг равен 1. Блок-схема представлена на рис. 5.16.
Рис. 5.16. Алгоритм решения задачи из примера 5.12
5 Рис. 5.17. Цикл с предварительным условием .3.3.2. Циклы с условием
Давайте немного перестроим нашу задачу. Допустим, что нам неизвестно количество брусков в заборе, которые нужно покрасить. Что делать? Красить забор до тех пор, пока не кончатся бруски.
Часто бывает так, что необходимо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях количество повторений зависит от некоторого условия.
Условие выхода из цикла можно поставить в начале, перед телом цикла. Такой цикл называется циклом с предусловием (Рис. 5.17). Пока условие имеет значение "истина" цикл выполняется. Как только условие примет значение "ложь", выполнение цикла закончится. В этом случае условие является условием продолжения цикла.
Решим ПРИМЕР 5.12. с использованием цикла с предварительным условием.
РЕШЕНИЕ:
Примечание. По сравнению с циклом с параметром, где начальное значение задаётся в самом цикле, сейчас нам необходимо задать его самим (второй блок на рис.5.18). Для увеличения шага на единицу воспользуемся следующей формулой i = i + 1 (вспомните, как изменялся шаг в задаче с покраской забора). Блок-схема представлена на рис. 5.18.
Условие выхода из цикла можно поставить в конце, после тела цикла. Такой цикл называется циклом с постусловием (Рис. 5.19).
Ц
Рис.
5.19
Цикл с постусловием
Решим ПРИМЕР 5.12. используя цикл с постусловием.
РЕШЕНИЕ.
Примечание. В этом случае, мы сначала должны увидеть число, увеличить счётчик на единицу, и только после этого проверить, а находимся ли мы еще в цикле? Блок-схема представлена на рис. 5.20.
Начало
i = 1
Вывод i
i = i + 1
Конец
Рис. 5.20. Алгоритм решения задачи из примера 5.12
Рассмотрим, в чем отличие этих типов алгоритмов:
в цикле с предусловием условие проверяется до тела цикла, в цикле с постусловием - после тела цикла;
в цикле с постусловием тело цикла выполняется хотя бы один раз, в цикле с предусловием оно может не выполниться ни разу;
в цикле с предусловием проверяется условие продолжения цикла, в цикле с постусловием - условие выхода из цикла.
Оба эти цикла взаимозаменяемы, какой из них выбрать - зависит от конкретной задачи и от опыта работы.
