- •Урок 1. Понятие алгоритма и его свойства
- •Урок 2. Исполнители
- •Урок 3. Что такое программа для исполнителя?
- •Урок 4: Самостоятельная работа
- •Урок 5. Среда и система команд Робота – исполнителя с 4 реда Робота
- •Урок 6. Программа для Робота. Линейные алгоритмы
- •Урок 7. «Ручное» исполнение алгоритма
- •Урок 8. Самостоятельная работа
- •Урок 9. Циклические алгоритмы. Цикл «n раз»
- •Урок 10. Решение задач
- •Урок 11. Контрольная работа
- •Урок 12. Вспомогательный алгоритм
- •Урок 13. Решение задач
- •Урок 14. Решение задач
- •Урок 15. Самостоятельная работа
- •Урок 16. Зачет
Урок 8. Самостоятельная работа
Для успешного выполнения самостоятельной работы вам необходимо уметь составлять линейные алгоритмы для Робота с использованием команд перемещения, закраски и построения стенок.
Дополнительные задания:
Робот находится в лабиринте. Напишите программу, которая позволит ему выбраться из него.
Н апишите программу изображения орнамента.*
Урок 9. Циклические алгоритмы. Цикл «n раз»
Итак, мы с вами научились управлять Роботом. Под нашим руководством он рисует красивые узоры, ремонтирует трубопроводы и многое другое. Но давайте представим такую ситуацию: нам нужно, чтобы робот закрасил сто подряд идущих клеток. Так и писать сто раз команды закрасить и вправо? А если нужно закрасить несколько тысяч клеток? Такого количества команд никакой программный листок не вместит. Да и писать это тоскливо.
Конечно, чтобы закрасить сто клеток, Робот сто раз должен выполнить команды закрасить и вправо, тут уж ничего не поделаешь. Но совершенно не обязательно записывать их сто раз. Есть способ указать в алгоритме, что некоторая команда или группа команд должна выполниться Роботом несколько раз. Такая структура записи команд алгоритма называется циклом.
Ц
икл
– это многократное исполнение
последовательности команд.
Итак, пусть исполнителю требуется перекрасить в красный цвет ряд из 6 синих клеток (см. рисунок справа). При решении этой задачи Робот должен подойти к ряду клеток, которые необходимо перекрасить, а затем выполнить 6 раз команды закрасить и вправо.
Для нашей задачи подходит цикл "N раз" с известным числом повторений.
В общем виде структура цикла выглядит так:
н
ц
n раз
{тело цикла}
команда 1;
команда 2;
…
кц
А как вы думаете зачем писать кц, обозначающий конец цикла?
Дело в том, что, как мы уже сказали, повторять иногда необходимо несколько команд и слово «кц» как раз и отделяет команды, которые выполняются многократно, от других, которые не нужно повторять. А чтобы легче было заметить, какие команды находятся внутри цикла, их следует писать с небольшим отступом вправо.
Для графического изображения цикла так же существует свой символ:
Решение задачи перекраски ряда с использованием цикла "N раз" выглядит так:
алг ряд
дано! ряд из 6 синих клеток
надо! перекрасить ряд в красный цвет
нач
краска (4);
вправо (3);
нц 6 раз
закрасить;
вправо;
кц
кон
В виде блок-схемы решение этой задачи будет выглядеть следующим образом:
Правила использования оператора цикла:
Цикл "N раз" используется тогда, когда число повторений цикла заранее известно или может быть вычислено.
Цикл начинается заголовком цикла – ключевым словом нц, за которым указывается нужное количество повторений цикла.
Цикла заканчивается ключевым словом кц.
В цикле повторяются все команды, находящиеся между заголовком цикла и ключевым словом кц (тело цикла).
Для того чтобы легче разбираться в программе, применяют специальную систему записи с отступами: все команды, входящие в цикл, смещают вправо на 2-3 символа – это позволяет сразу видеть, где начинается и где заканчивается цикл.
Задание:
Нарисуйте конечное положение робота (звездочка) после выполнения следующего алгоритма:
алг поход
|
|
|
|
… |
|
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
надо! передвинуть робота
нач
нц 300 раз
вправо;
кц
нц 298 раз
влево;
кц
кон
Что будет изображено на экране и где будет расположен Робот, после выполнения следующего алгоритма:
алг стенки
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
надо! выполнить алгоритм
нач
вправо(2);
нц 6 раз
построить(1);
построить(0);
вниз;
вправо;
кц
кон
Робот должен был построить следующее изображение, но при составлении алгоритма была допущена ошибка. Исправьте алгоритм.
алг узор
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◦ |
|
|
|
надо! выполнить алгоритм
нач
вправо;
вниз;
краска(5);
нц 5 раз
закрасить;
вниз;
вправо;
вправо;
вниз;
кон
Нужно провести робота сквозь лабиринт. Допишите начатый алгоритм до конца
а лг лабиринт
дано! лабиринт
надо! выйти из лабиринта
нач
вправо(2);
вниз;
нц раз
Нужно создать узор следующего вида. Составьте два алгоритма: С одним циклом и двумя циклами. Оформите решения в виде блок-схем.
|
|
|
|
|
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С одним циклом С двумя циклами
