Категория A13 • задача №3
Условие задачи
Дано:
исполнитель РОБОТ может передвигаться на одну клетку вверх, вниз, вправо и влево прямоугольного клетчатого поля, на котором расположены горизонтальные и вертикальные стенки. Двигаться вперед он может только тогда, когда стенок перед ним нет. Команда Крась закрашивает клетку, в которой стоит РОБОТ.
Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:
сверху свободно | снизу свободно | слева свободно | справа свободно |
Цикл
ПОКА < условие > делать
команда 1
.....
команда n
КОНЕЦ
выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Вопрос:
сколько клеток (К1) приведённого лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение? Сколько клеток (К2) приведённого лабиринта будут при этом закрашены? В ответе укажите сумму таких клеток (К1 + К2).
Варианты ответа:
1) 4 2) 5 3) 6 4) 7
Решение
В приведенном алгоритме Робот никогда не разобьётся, так как перед тем как сделать "шаг" Робот проверит, а существует ли возможность для перемещения.
Будем перебирать последовательно все ячейки лабиринта, и перемещать Робота по координатной плоскости. Если Робот завершит свою траекторию движения в той же точке, из которой он ее начал, то будем увеличивать специальный счетчик на единицу и закрашивать фон данной клетки в желтый цвет.
Я хочу детально показать, как производится анализ движения траектории Робота на конкретной ячейке.
Стартовая позиция:
Проверяем условие <слева свободно> ? - ДА, следовательно, Робот движется влево на 1 клетку и закрашивает ее:
Проверяем условие <слева свободно> ? - ДА, следовательно, Робот движется влево на 1 клетку и закрашивает ее:
Проверяем условие <слева свободно> ? - ДА, следовательно, Робот движется влево на 1 клетку и закрашивает ее:
Проверяем условие <слева свободно> ? - НЕТ, следовательно, переходим к анализу условия < снизу свободно >
Проверяем условие <снизу свободно> ? - ДА, следовательно, Робот движется на 1 клетку вниз и закрашивает ее:
Проверяем условие <снизу свободно> ? - НЕТ, следовательно, переходим к анализу условия < справа свободно >
Проверяем условие <справа свободно> ? - НЕТ, следовательно, переходим к анализу условия < сверху свободно >
Проверяем условие <сверху свободно> ? - ДА, следовательно, Робот движется на 1 клетку вверх:
Проверяем условие < сверху свободно > ? - НЕТ, следовательно, нужно переходить к следующей команде, но цикл закончен. То есть Робот завершил свое движение.
Видно, что Робот остановился не в той же клетке, из которой начал свой путь.
Сейчас я продемонстрирую все клетки, удовлетворяющие граничным условиям:
Количество совпадающих клеток: 1
Количество закрашенных клеток: 1
Количество совпадающих клеток: 2
Количество закрашенных клеток: 3
Окончательная картина, когда Робот "осмотрел" все клетки предложенного лабиринта:
В итоге имеем, что:
k1 = 2;
k2 = 3.
Следовательно, k1 + k2 = 2 + 3 = 5.
Среди предложенных вариантов ответа вариант под номером два имеет идентичное значение.
Вывод: |
Итоговая сумма клеток составляет пять. |
Ответ: |
2 |
Категория A13 • задача №3
Остальные решения из билета №3 для подготовки к ЕГЭ по информатике 2013
Условие задачи (наведите курсор мыши на ссылку) |
Аудиовизуальное решение |
Мультимедийная видеопрезентация |
Решение в формате слайд-шоу |
Текстовое решение |
---|
Комментарии