СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 14 № 1806

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:

вверх вниз влево вправо

При выполнении этих команд РОБОТ перемещается на одну клетку соответственно: вверх, вниз, влево, вправо.

Четыре команды проверяют истинность условия отсутствия стены у той клетки, где находится РОБОТ:

сверху
свободно
снизу
свободно
слева
свободно
справа
свободно

Цикл

ПОКА <условие> команда

выполняется, пока условие истинно, иначе происходит переход на следующую строку.

Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?

 

НАЧАЛО

ПОКА <сверху свободно> вправо

ПОКА <справа свободно> вниз

ПОКА <снизу свободно> влево

ПОКА <слева свободно> вверх

КОНЕЦ

Решение.

Выясним, что необходимо, чтобы РОБОТ остановился в той же клетке, с которой он начал движение. Так как программа заканчивается командой "ПОКА <слева свободно> вверх", следовательно, для того, чтобы робот остановился в той же клетке, с которой он начал движение, необходимо, чтобы у этой клетки была стенка слева. Этому условию удовлетворяют все клетки левой стенки лабиринта и еще пять клеток кроме нее.

Проверим каждую клетку, удовлетворяющую условию 1. Обратим внимание, что возможны зацикливания, например, если начать движение из клетки А6, если нумеровать цифрами сверху вниз, а буквами слева направо.

 

Ответ: одна клетка Г1.

Спрятать решение · · Видеокурс ·
Гость 26.11.2012 12:24

почему не подходит клетка В3?

Анастасия Смирнова (Санкт-Петербург)

Если робот начнет движение из клетки В3, он остановится в клетке В5 (это будет первая клетка, слева которой будет стенка, при выполнении последнего условия).

Гость 30.05.2013 01:36

Почему не подходят клетки А3 и А5? Двигаемся вправо до стенки, т.к. сверху свободно. Затем т.к. справа не свободно, а снизу свободно - двигаемся обратно влево до стенки. Слева опять не свободно, так что заканчиваем движение.

Петр Мурзин

Поскольку при выполнении программы, робот зациклиться на действии <снизу свободно> влево (оно не будет нарушаться). Таким образом робот окажется в клетке из которой начал движение, однако не ОСТАНОВИТСЯ в ней.