≡ информатика
сайты - меню - вход - новости




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

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:

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

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

Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ (также по отношению к наблюдателю):

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

Цикл

ПОКА < условие >

последовательность команд

КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ < условие >

ТО команда1

ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно)

 

Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.

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

 

НАЧАЛО

ПОКАснизу свободно ИЛИ справа свободно

ПОКА справа свободно

вправо

КОНЕЦ ПОКА

вниз

КОНЕЦ ПОКА

КОНЕЦ

Пояснение.

В данной программе РОБОТ поступает следующим образом: сперва РОБОТ проверяет, свободна ли клетка справа или снизу от него. Если это так, то РОБОТ переходит к первому действию внутри цикла. В этом цикле пока у правой стороны клетки, в которой находится РОБОТ, нет стены, он продолжает двигаться вправо. Как только это условие перестанет выполняться, он переходит ко второму действию внутри цикла. Второе действие, заключается в следующем: РОБОТ передвигается на одну клетку вниз. После чего возвращается к началу внешнего цикла.

Проанализировав эту программу, приходим к выводу, что РОБОТ может разбиться. Например, стартовав из клеток А6,B6,C6. Проверив все клетки по выведенному нами правилу движения РОБОТА выясняем, что число клеток, удовлетворяющих условию задачи равно 15 (вся первая строчка, весь столбец F, клетки D2, E2, D4, D6, E4).

 

Ответ: 15.

Спрятать пояснение · ·
Олег Шахнович (Королёв) 22.04.2014 20:54

Здравствуйте,

В задании не учитано, что из D6 и E6 робот также может добраться до F6.

С уважением!

Петр Мурзин

Здравствуйте.

Стартовав из клеток D6 и E6 Робот разобьётся:

 

ПОКАснизу свободно ИЛИ справа сво­бод­но Условие выполнено, начинаем выполнять цикл.

ПОКА спра­ва сво­бод­но Условие выполнено до клетки F6

вправо

КОНЕЦ ПОКА

вниз Делаем один шаг вниз из клетки F6 и разбиваемся.

КОНЕЦ ПОКА

КОНЕЦ