Сало. Выполнение алгоритмов для исполнителя
Скачать 1.59 Mb.
|
Еще пример задания:
вверх вниз влево вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно снизу свободно слева свободно справа свободно Цикл ПОКА <условие> команда выполняется, пока условие истинно, иначе происходит переход на следующую строку. Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ уцелеет (не врежется в стену) и остановится в той же клетке, с которой он начал движение? 1) 1 2) 2 3) 3 4) 0 НАЧАЛО ПОКА <слева свободно> вверх ПОКА <сверху свободно> вправо ПОКА <справа свободно> вниз ПОКА <снизу свободно> влево КОНЕЦ
особенность этой задач в том, что РОБОТ проверяет стенку в одном направлении, а движется в другом рассмотрим первый цикл: ПОКА <слева свободно> вверх понятно, что при движении вверх РОБОТ остановится в первой же клетке, где слева будет стена рассуждая аналогично, находим, что во втором цикле при движении вправо РОБОТ останавливается в клетке, где есть стена сверху; в третьем цикле (движение вниз) РОБОТ останавливается в клетке, где есть стена справа; наконец, в четвертом цикле РОБОТ останавливается в клетке, где есть стена снизу; при этом он должен попасть обратно в исходную клетку, обозначенную на рисунке красной точкой; кроме этих четырех стенок, необходимо, чтобы коридор, выделенный на рисунке зеленым фоном, был свободен для прохода, иначе РОБОТ врежется в стенку теперь отметим на карте все клетки-кандидаты, где снизу есть стена:
при движении из клеток B5, D1, E1, E6, F1 и F3 РОБОТ врежется в стенку, потому что слева стены нет и условие «слева свободно» всегда истинно:
начав движение с клетки A1, C1 или C2, РОБОТ также врезается в стенку и разрушается:
и только путь, начатый в клетке B1, приводит РОБОТА обратно в точку старта:
таким образом, только клетка B1 удовлетворяет условию задачи, поэтому … правильный ответ – 1. |