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


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

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

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

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

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

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

Цикл

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

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

Если РОБОТ начнёт движение в сторону стены, то он разрушится, и программа прервётся.

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

 

НАЧАЛО

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

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

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

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

КОНЕЦ

Решение.

Выясним, что необходимо для того, чтобы РОБОТ остановился в той же клетке, с которой он начал движение. Так как программа заканчивается командой "ПОКА <снизу свободно> вправо", следовательно, для того, чтобы робот остановился в той же клетке, с которой он начал движение, необходимо, чтобы у этой клетки была стенка снизу. Этому условию удовлетворяют все клетки нижней стенки лабиринта и еще восемь клеток кроме нее. Все клетки стенки не подходят, так как там происходит зацикливание либо на первой команде, либо на второй, либо на третьей(только Е6, если нумеровать цифрами сверху вниз, а буквами слева направо). Проверим каждую оставшуюся клетку. Обратим внимание, что возможны зацикливания, например, если начать движение из клеток А5, В2, В6, Г1 (нумерация цифрами сверху вниз, а буквами слева направо). Получим четыре клетки В3, Г2, Б5, Д5.

Спрятать решение · · Видеокурс ·
Владимир Жуков (С-Пб) 26.05.2012 21:22

Здравствуйте.

1) Разве робот не сломается о левую стенку клетки Г2 при начале Г2)?

2) Разве робот не сломается о правую стенку клетки А3 при начале Б5?

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

4) Разве правильный ответ В3 и Д4, итого две клетки?

Петр Мурзин (Казань)

Владимир, здесь робот не ломается, он просто не идет, если не выполняется условие.

1) Нет, так как из Г2 он идет вверх.

2) Он вообще не достигнет этой стенки, так как на первом шаге у него справа НЕ свободно.

3) Не может и не двигается.

 

Если у робота не выполняется условие движения (даже на первом шаге!), то он переходит к следующему циклу.