- •7. Алгоритмы управления исполнителями.
- •7.1. Исполнитель Робот
- •7.2. Программное управление исполнителем
- •7.3. Общий вид алгоритма
- •7.4. Комментарии в алгоритмическом языке
- •7.5. Исполнение алгоритма
- •7.6. Ошибки в алгоритмах
- •7.7. Запись нескольких команд в одной строке
- •8. Вспомогательные алгоритмы
- •8.1. Понятие о вспомогательном алгоритме
- •Основные и вспомогательные алгоритмы
- •8.3. Пример использования вспомогательных алгоритмов
- •8.4. Метод последовательного уточнения
- •8.5. Заголовки вспомогательных алгоритмов
- •8.6. Разделение труда между компьютером и исполнителями
- •9 Цикл n раз
- •9.1. Пример алгоритма с циклом n раз
- •9.2. Общий вид цикла n раз
- •9.3. Короткие алгоритмы могут описывать длинные последовательности действий
- •9 А15 .4. Внутри цикла можно вызывать вспомогательные алгоритмы
- •9.5. Внутри цикла могут быть другие циклы
- •10. Цикл пока
- •10.1. Команды-вопросы Робота
- •10.2. Цикл пока
- •10.3. Диалог Компьютер — Робот при выполнении цикла пока
- •10.4. Общий вид цикла пока
- •10.5. Цикл n раз и цикл пока
- •10.6. Условия в цикле пока
- •10.7. Свойства цикла пока
- •1. Тело цикла может не выполниться ни разу
- •2. Выполнение цикла может не завершиться
- •3. Условие цикла не проверяется в процессе выполнения тела цикла
- •4. Перед каждым выполнением тела цикла условие обязательно выполняется.
- •5. Сразу после окончания цикла условие не выполняется
- •10.8. Составление алгоритмов с циклом пока
- •10.9. Примеры построения алгоритмов
- •1. Закрашивание ряда
- •2. Закрашивание коридора произвольной длины
- •3. Выход в левый верхний угол в лабиринте
- •11. Команды ветвления и контроля
- •11.1. Пример алгоритма с командой если
- •11.2. Общий вид команды если
- •11.3. Команды контроля
- •11.4. Пример алгоритма с командой утв
- •11.5. Выбор из многих вариантов
- •11.6 Общий вид команды выбор
- •12 Анализ и тестирование алгоритмов
- •12.1. Результаты труда программиста
- •12.2. Что такое правильный алгоритм
- •12.3. Пример рассуждения, подтверждающего правильность алгоритма
- •12.4. Тестирование алгоритмов
9 Цикл n раз
9.1. Пример алгоритма с циклом n раз
При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнить несколько раз подряд (см., например, алгоритм A2). Для упрощения записи алгоритма в таких случаях можно использовать специальную составную команду алгоритмического языка — цикл n раз;
а
А13
дано | Робот в клетке А (рис. 3 а)
надо | Робот в клетке Б (рис. 3 а)
нач
н ц 5 раз
|вверх; вверх; вправо; вниз; вниз; вправо
кц
кон
При выполнении этого, алгоритма компьютер 5 раз повторит последовательность вызовов вверх; вверх; вправо; вниз; вниз; вправо и Робот окажется в клетке Б (рис. 3 а).
9.2. Общий вид цикла n раз
В общем виде цикл n раз записывается так:
нц число повторений раз
| тело цикла (последовательность команд)
кц
Служебные слова нц (начало цикла) и кц (конец цикла) пишутся строго одно под другим и соединяются вертикальной чертой. Правее этой черты записывается повторяемая последовательность команд (тело цикла).
Число повторений — произвольное целое число.
При выполнении алгоритма последовательность команд в теле цикла повторяется указанное число раз. Правила алгоритмического языка допускают задание любого целого числа повторений. Оно может быть нулевым и даже отрицательным. Эти случаи не считаются ошибочными, просто тело цикла не будет выполнено ни разу, а компьютер сразу перейдет к выполнению команд, записанных после кц
9.3. Короткие алгоритмы могут описывать длинные последовательности действий
Использование цикла позволяет очень коротко записать довольно длинные последовательности действий. Рассмотрим пример.
а
А14
дано | на поле Робота стен нет
надо | Робот закрасил 10 клеток вправо и вернулся
| в исходное положение
нач
н ц 10 раз
I закрасить; вправо
кц
нц 10 раз
I влево
кц
кон
При выполнении этого короткого алгоритма компьютер даст Роботу 30 команд: сначала 10 раз будет выполнена пара команд закрасить; вправо, а затем 10 команд влево.
Если вместо числа 10 поставить 100, Робот выполнит уже 300 команд, а ведь длина алгоритма при этом не увеличится!
Таким образом, короткие алгоритмы могут описывать очень длинные последовательности действий.
9 А15 .4. Внутри цикла можно вызывать вспомогательные алгоритмы
алг закрасить прямоугольник
дано | на поле Робота стен нет
надо | закрашен прямоугольник размером 10х6
| Робот в исходное положение (рис. 9)
нач
н ц 6 раз
закрасить ряд из 10 клеток
вниз
кц
нц 6 раз
I вверх
кц
кон
Рис. 9
9.5. Внутри цикла могут быть другие циклы
Задачу из алгоритма А15 можно решить и без использования вспомогательного алгоритма, вставив текст алгоритма "закрасить ряд из 10 клеток" А14 непосредственно в текст основного алгоритма.
а
А16
дано | на поле Робота стен нет
надо | закрашен прямоугольник размером 10х6
| Робот в исходное положение
нач
н ц 6 раз
нц 10 раз
закрасить; вправо
кц
нц 10 раз
влево
кц
вниз
кц
нц 6 раз
I вверх
кц
кон
Цикл, который находится внутри другого, называется вложенным циклом.
ЗАДАЧИ И УПРАЖНЕНИЯ
Решите задачи 6 и 9 из § 7 с использованием цикла n раз.
Решение каких задач из § 8 можно упростить, воспользовавшись циклом n раз? Составьте соответствующие алгоритмы.