|
|
|
§ 3.3. Управление исполнителем Робот Команда ветвленияВспомним, что форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий, называется ветвлением. Графически ветвление можно представить, как показано на рис. 3.19.
Для организации ветвлений в СКИ Робота предусмотрена специальная команда ЕСЛИ. Ее общий вид: ЕСЛИ <условие> ТО <серия действий 1> ИНАЧЕ <серия действий 2> КОНЕЦ Служебные слова ЕСЛИ, ТО, ИНАЧЕ имеют обычный смысл. Между ТО и ИНАЧЕ записываются одно или несколько действий, составляющих серию действий 1. Между ИНАЧЕ и КОНЕЦ помещается серия действий 2. Служебное слово ИНАЧЕ вместе с серией действий 2 может отсутствовать (сокращенная форма ветвления). Пусть теперь Робот находится в горизонтальном коридоре, нижняя граница которого сплошная, а в верхней имеются выходы (рис. 3.20). Требуется провести Робота через весь коридор и закрасить клетки коридора, не имеющие верхних границ.
Единственным признаком коридора является наличие нижней границы, т. е. выполнение условия НЕ снизу свободно. Если при этом выполняется условие сверху свободно, то клетку нужно закрасить, иначе — красить не надо. Аналогично случаю закрашивания вертикального коридора, предполагаем, что слева и справа от горизонтального коридора есть клетки. Блок-схема алгоритма имеет вид, показанный на рис. 3.21.
Программа: ПОКА НЕ снизу свободно ДЕЛАТЬ
Коротко о главном Исполнитель Робот действует на прямоугольном клетчатом поле. Между некоторыми клетками поля могут быть расположены стены. Некоторые клетки могут быть закрашены. Робот занимает ровно одну клетку поля. Система команд исполнителя представлена в следующей таблице:
Робот может выполнять цикл «повторить n раз» . Если заранее не известно, сколько именно раз следует выполнить тело цикла, используется специальная конструкция алгоритмического языка — цикл «пока». В цикле «пока» могут использоваться не только простые, но и составные условия. Составное условие образуется из одного или нескольких простых условий и служебных слов И, ИЛИ, НЕ. Для организации ветвлений в СКИ Робота предусмотрена специальная команда ЕСЛИ. Вопросы и задания 1. Приведите все алгоритмы из трех команд, которые переместят Робота из исходного положения в клетку Б.
Существует ли для этой задачи алгоритм, при выполнении которого Робот делает: а) два шага; б) четыре шага; в) пять шагов; г) семь шагов; д) 2001 шаг; е) 2006 шагов? 2. Петя составил алгоритм, переводящий Робота из клетки А в клетку Б с закрашиванием каких-то клеток. Что должен сделать Коля с этим алгоритмом, чтобы получить алгоритм, переводящий Робота из Б в А и закрашивающий те же клетки? 3. Петя составил алгоритм, при выполнении которого Робот вернулся в исходное положение. Коля стер одну из команд. При выполнении Колиного алгоритма Робот также вернулся в исходное положение. Какую команду стер Коля? 4. Маша придумала узор для Робота. Коля стер ровно половину закрашенных клеток. Восстановите рисунок, зная, что он симметричен относительно вертикальной оси. Напишите программу для Робота.
|
|
|