Присоединиться

11 класс·высокий уровень

Сколько клеток лабиринта соответствуют требованию, что, начав движение

Условие

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости, состоит из 8 команд. Четыре команды - это команды-приказы:вверхвнизвлевовправо
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑\uparrow , вниз ↓\downarrow , влево ←\leftarrow , вправо →\mathrm{ \to } .Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:сверху свободноснизу свободнослева свободносправа свободно

ЦиклПОКА условиепоследовательность команд КОНЕЦ ПОКАвыполняется, пока условие истинно. В конструкцииЕСЛИ условие ТО команда1 ИНАЧЕ команда2 КОНЕЦ ЕСЛИвыполняется команда1 (если условие истинно) или команда2 (если условие ложно) В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ, обозначающие логические операции. Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.

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

Рисунок к задаче

НАЧАЛОПОКА снизу свободно ИЛИ справа свободноПОКА справа свободновправоКОНЕЦ ПОКАЕСЛИ снизу свободнoТОвниз КОНЕЦ ЕСЛИКОНЕЦ ПОКАКОНЕЦ

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. [рисунок] При данной программе РОБОТ поступает следующим образом: сперва РОБОТ проверяет свободна ли клетка справа или снизу от него, если это так, то РОБОТ переходит к первому условию. По этому условию, пока у правой стороны клетки в которой находится РОБОТ нет стены, он продолжает двигаться вправо. Как только это условие перестанет выполняться, он переходит ко второму условию. Это условие аналогично первому, только теперь проверяется отсутствие стены у нижней стороны клетки. Проанализировав эту программы приходим к выводу, что РОБОТ будет двигаться вправо или вниз, пока у него есть такая возможность. РОБОТ при данной программе никогда не разобьётся. Видно, что существует всего 2 места, в которых робот может остановиться: нужная нам 6F и 6C. Робот может прийти в клетку 6С, только если он находится в области 2А:6С, количество клеток в этой области равно

Осталось ещё 1 шаг

  1. Общее количество клеток лабиринта равно…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Выполнение алгоритмов для исполнителей»

Сколько клеток лабиринта соответствуют требованию, что, начав движение — решение с объяснением | Lom Ai