Сало. Выполнение алгоритмов для исполнителя
Скачать 1.59 Mb.
|
Ещё пример задания:Р-04. Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости: вверх вниз влево вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно снизу свободно слева свободно справа свободно Цикл ПОКА < условие > последовательность команд КОНЕЦ ПОКА выполняется, пока условие истинно. В конструкции ЕСЛИ < условие > ТО команда1 ИНАЧЕ команда2 КОНЕЦ ЕСЛИ выполняется команда1 (если условие истинно) или команда2 (если
Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся. Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)? 1) 8 2) 15 3) 24 4) 27 НАЧАЛО ПОКА < справа свободно ИЛИ снизу свободно > ПОКА < справа свободно > вправо КОНЕЦ ПОКА ПОКА < снизу свободно > вниз КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ Решение: обратим внимание, что в программе три цикла, причем два внутренних цикла вложены в один внешний цикл ПОКА < справа свободно > вправо КОНЕЦ ПОКА означает «двигаться вправо до упора», а цикл ПОКА < снизу свободно > вниз КОНЕЦ ПОКА означает «двигаться вниз до упора» тогда программу можно записать в свободном стиле так: ПОКА не пришли в угол двигаться вправо до упора двигаться вниз до упора КОНЕЦ ПОКА где угол – это клетка, в которой есть стенки снизу и справа за каждый шаг внешнего цикла Робот проходит путь в виде «сапога», двигаясь сначала вправо до упора, а затем – вниз до упора:
клетка, выделенная красным фоном особая – в ней заканчивается один шаг внешнего цикла и начинается следующий: Робот может попасть в эту клетку, двигаясь вниз из клетки, где справа – стенка снизу есть стенка; снизу стенка есть, справа – нет, поэтому будет выполнен еще один шаг внешнего цикла. в клетку F6 (это угол, где Робот остановился), Робот мог придти за один шаг внешнего цикла (за один «сапог») только из отмеченных клеток:
теперь отметим красным фоном особые клетки, которые удовлетворяют условиям а-в пункта 4 (см. выше), их всего 2:
отметим все пути в форме «сапога», которые приводят в особые клетки:
больше особых клеток (см. пункт 4) нет; всего отмечено 24 клетки (считая конечную клетку F6) таким образом, правильный ответ – 3.
|