197.89K
Category: programmingprogramming

Исполнитель Робот

1.

Исполнитель Робот

2.

Команды Робота
Робот живет на плоскости, разделенной на квадраты
одинакового размера.
Он находится на одном из квадратов и может переходить на
любой из соседних квадратов, расположенных слева, справа
сверху или снизу от того квадрата, на котором находится
робот, но не может переходить на квадраты по диагонали.
Кроме того, Робот может закрасить квадрат, на котором
находится.
Робот выполняет 5 команд:
• вправо
• влево
• вверх
• вниз
• закрасить

3.

Команды Робота
Команды вверх, вниз и т. д. заставляют Робота
передвинуться на одну клетку в соответствующем
направлении.
По команде «закрасить» он не двигается, а
закрашивает квадрат, на котором находится.
Если квадрат уже закрашен, то команда «закрасить»
не изменяет цвета квадрата (как будто бы Робот
ничего не делает).

4.

Проверка условий
Интереснее всего в жизни Робота то, что между
некоторыми квадратами есть стены. Иногда они
даже образуют сложную фигуру, которую мы будем
называть лабиринтом.
Робот не способен проходить сквозь стену. Если
он попробует сделать это, то разрушится. Иначе
говоря, это приведет к ОТКАЗу.
Чтобы предотвратить такой
несчастный случай,
необходимо проверить четыре
условия:
• сверху свободно
• слева свободно
• снизу свободно
• справа свободно

5.

Проверка условий
Последнее условие:
• закрашено
позволяет проверить,
закрашена или нет клетка,
на которой стоит Робот.

6.

Неполный условный
оператор
Возможные
Если <условие>
то <несколько команд> условия:
• сверху свободно
все
Полный условный
оператор
• слева свободно
• снизу свободно
• справа свободно
Если <условие>
то <несколько команд>
иначе <несколько команд>
все

7.

Какие программы могут быть?
Сколько команд в оптимальных программах?
Каким числом выражено количество команд?
Почему?

8.

Что будет?
нц 5 раз
вниз
вправо
вправо
кц
Отказ – состояние Исполнителя, при котором
он не может выполнить известную ему
команду.
Что такое синтаксическая ошибка?

9.

Отказ
нц 5 раз
вниз
вправо
вправо
кц
Где остановится Робот?

10.

Как избежать отказа?
нц 3 раз
вниз
вправо
вправо
кц
вниз

11.

Как закрасить 3 клетки?
нц 3 раз
вниз
вправо
вправо
закрасить
кц

12.

Как закрасить 4 клетки?
закрасить
нц 3 раз
вниз
вправо
вправо
закрасить
кц

13.

Какие клетки закрасит Робот?
нц 3 раз
закрасить
вниз
вправо
вправо
кц
закрасить

14.

Какие клетки закрасит Робот?
нц 3 раз
закрасить
вниз
вправо
вправо
закрасить
кц

15.

Сколько команд
в оптимальной программе?

16.

Одинаково ли количество
закрашенных клеток?
закрасить
вправо
закрасить
вниз
закрасить
вправо
закрасить
вниз
закрасить
закрасить
вправо
закрасить
вниз
закрасить
влево
закрасить
вверх
закрасить

17.

Найдите пропущенную команду
вверх
вправо
???
вниз
влево
влево
На поле Робота нет стен. Какая пропущена
команда, если известно, что Робот вернулся в
исходную клетку?

18.

Лабиринт
вверх
вверх
вправо
вправо
вверх
влево
влево
вверх
Выполните программу.
Напишите программу, которая позволит вернуться
в исходную клетку.
Как это сделать без рисунка?

19.

Теперь стен НЕТ
вверх
вверх
вправо
вправо
вверх
влево
влево
вверх
Как вернуться в исходную клетку более коротким
путем?
Как написать программу, не используя рисунок?

20.

Известно, что на поле Робота
стен нет. Робот исполнил
указанную программу. При
этом Робот переместился из
клетки А в клетку В. Напишите
программу, выполняя которую
Робот самым коротким путем
возвратится из клетки В
в клетку А. Постарайтесь
обойтись без рисунка.
вниз
вниз
вниз
вправо
вправо
вниз
вправо
вверх
вверх
влево
влево
English     Русский Rules