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

Робот — автоматическое устройство, которое действует по заранее составленной программе.

Среда обитания и система команд исполнителя Робот

Средой обитания исполнителя Робот является прямоугольное клетчатое поле. Размеры этого поля, как и для исполнителя Чертежник, задаются командой Field(n, m). При этом начальное положение Робота — клетка в центре поля.

Между некоторыми клетками, а также по периметру поля находятся стены. Робот может передвигаться по полю и закрашивать указанные клетки. Большой желтый квадрат означает начальное положение Робота, маленький — конечное.

Поле Робота, на котором определено положение стен, начальное и конечное положение исполнителя, называют обстановкой.

Система команд исполнителя Робот

Команда - Действие

Right - Перемещает Робота вправо

Left - Перемещает Робота влево

Up - Перемещает Робота вверх

Down - Перемещает Робота вниз

Paint - Закрашивает текущую ячейку

Загрузка задания a1
для исполнителя робот (рисунок 2)

Uses Robot;

Begin

Task('a1');


End.

Робот может становиться на обычную и закрашенную клетку. Робот не может переместиться с клетки на клетку, если они разделены стеной. Робот не может переместиться за границы поля. Эти действия вызывают ошибку. Робот может закрасить уже закрашенную клетку. Такое действие ошибку не вызывает.

Рисунок 2

Упражнения

1. Начальная обстановка на поле Робота изображена на рисунке.

Три учащихся составили и выполнили алгоритм, по которому Робот закрасил все клетки пути от начальной к конечной. На каком из рисунков изображено решение данной задачи? Почему?

2. Какой из приведенных алгоритмов решает задачу, сформулированную в предыдущем задании? Объясните, почему другие программы не могут быть алгоритмами решения данной задачи.

а)

paint; down;

right;

paint; down;

right;

paint; right;

up;

paint; right;

up;

paint;

б)

paint; down;

paint; right;

paint; down;

paint; right;

paint; right;

paint; up;

paint; right;

paint; up;

paint;

в)

ToPoint(0,3);

PenDown;

OnVector(1,0);

OnVector(0,-1);

OnVector(1,0);

OnVector(0,-1);

OnVector(1,0);

OnVector(0,1);

OnVector(1,0);

OnVector(0,1);

OnVector(1,0);

3. Для какого исполнителя приведен алгоритм в задании 2, в? Сформулируйте для этого исполнителя задачу, решением которой будет приведенный алгоритм.

4. Для исполнителя Робот была составлена следующая программа:

Изобразите в тетради «узор», который нарисует Робот. При каких минимальных размерах поля Робот сможет выполнить данную программу?

paint;

right; up;

paint;

right; down;

5. Все команды в программе из задания 4 учащийся скопировал три раза. Как изменится «узор» после выполнения программы? Как можно по-другому записать этот алгоритм? Какого размера поле нужно создать?

Подсказка. Воспользуйтесь вспомогательным алгоритмом.

6. Программа решения задачи была записана на доске. Два учащихся, переписывая этот алгоритм для исполнителя Робот, пропустили из-за невнимательности по одной команде. Какую команду пропустил каждый из учащихся? Что будет результатом работы каждой программы?

Сохраните правильный текст программы.

Программа, записанная первым учащимся

uses Robot;

begin

Field(15,15);

paint; right;

paint; right;

paint; down;

paint; down;

paint;

down; left;

down; left;

paint; down;

paint; down;

paint; right;

paint; right;

paint; up;

paint; up;

paint; up;

left; up;

left;

paint; up;

paint; up;

end.

Программа, записанная вторым учащимся

uses Robot;

begin

Field(15,15);

paint; right;

paint; right;

paint; down;

paint; down;

paint;

down; left;

paint;

down; left;

paint; down;

paint; down;

paint; right;

paint; right;

paint; up;

paint; up;

paint; up;

left; up;

paint; up;

paint; up;

end.

7. Составьте программу для решения задачи a2 из встроенного задачника.

8. Составьте программу для решения задачи a4 из встроенного задачника.

9. Составьте программу для решения задачи p2 из встроенного задачника.

Закрасить помеченные клетки, составив процедуру.

Исправьте предложенный фрагмент кода программы и доведите решение задачи до конца.

usesRobot;procedure squere2;beginpaint;right;paint;down;paint;left;paint;up;end;beginTask('p2');squere2;right;right;right;squere2;end.

10. Исправьте код программы упражнения 9 для решения задания p3 для исполнителя Робот

11. Составьте программу для решения задания p6

12. Составьте программу для решения задания p9