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




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

Исполнитель КОРАБЛИК «живет» в ограниченном прямоугольном водоеме-лабиринте, разделенном на клетки и изображенном на рисунке (вид сверху). Серые клетки — скалистые берега, светлые — свободное пространство, безопасное для передвижения КОРАБЛИКА. По краю водоема-лабиринта также находятся скалы с нанесенными на них номерами и буквами для удобства идентификации клеток.

 

 

Система команд исполнителя КОРАБЛИК:

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

При выполнении любой из этих команд КОРАБЛИК перемещается на одну клетку соответственно (по отношению к наблюдателю): вверх ↑, вниз ↓, влево ←, вправо →. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится КОРАБЛИК (также по отношению к наблюдателю):

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

 

Цикл

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

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

При попытке передвижения на любую серую клетку КОРАБЛИК разбивается о скалы.

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

 

НАЧАЛО

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

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

вверх

влево

КОНЕЦ

Решение.

Алгоритм работает так: пока сверху свободно, то двигается вверх. Когда появится препятствие сверху, то проверяет свободное место слева. Если такое есть, то двигается до препятствия слева. А потом совершает последовательные действия: шаг наверх и один шаг влево.

Эффективным приёмом решения является проверка клеток группами. Если Кораблик начнет движение из клеток H6, I6, D7, D8 он не разобьется. Начав движение из любой другой клетки, Кораблик разобьется, выполняя последние две команды: вверх, влево.