Для переписывания алгоритма необходимо определить векторы перемещения для каждой команды сместиться в точку (x, y). Вектор определяется как разница между координатами конечной и начальной точек.
Исходный алгоритм:
сместиться в точку (1, 1)опустить перосместиться в точку (1, 2) (Вектор: (1-1, 2-1) = (0, 1))сместиться в точку (5, 2) (Вектор: (5-1, 2-2) = (4, 0))сместиться в точку (5, 1) (Вектор: (5-5, 1-2) = (0, -1))поднять перосместиться в точку (4, 2) (Переместимся в точку (4, 2), начав с последней точки перед поднятием пера, т.е. (5,1) — это неверно. Мы должны исходить из того, что после поднять перо перо находится в точке (5,1). Команда сместиться в точку (4, 2) означает перемещение из текущего положения (5,1) в точку (4,2), т.е. вектор будет (4-5, 2-1) = (-1, 1))опустить перосместиться в точку (4, 5) (Вектор: (4-4, 5-2) = (0, 3))сместиться в точку (3, 5) (Вектор: (3-4, 5-5) = (-1, 0))сместиться в точку (2, 4) (Вектор: (2-3, 4-5) = (-1, -1))сместиться в точку (2, 2) (Вектор: (2-2, 2-4) = (0, -2))конПереписанный алгоритм с использованием команды сместиться на вектор (а, b):
использовать Чертежникалгначсместиться в точку (1, 1)опустить перосместиться на вектор (0, 1)сместиться на вектор (4, 0)сместиться на вектор (0, -1)поднять перосместиться на вектор (-1, 1) (Исходим из того, что после поднять перо перо находится в точке (5,1). Перемещаемся в (4,2))опустить перосместиться на вектор (0, 3)сместиться на вектор (-1, 0)сместиться на вектор (-1, -1)сместиться на вектор (0, -2)конПояснение:
Команда сместиться в точку (x, y) задает абсолютные координаты. Команда сместиться на вектор (а, b) задает относительное перемещение. Чтобы преобразовать абсолютное смещение в относительное, нужно вычесть координаты предыдущей точки из координат текущей точки.
Пример:
Было: сместиться в точку (1, 1), затем сместиться в точку (1, 2). Вектор будет (1-1, 2-1) = (0, 1). Новая команда: сместиться на вектор (0, 1).
Особый случай: после команды поднять перо, следующая команда сместиться на вектор... будет считаться от последней точки, где перо было опущено (т.е. (5,1)), но конечная точка команды сместиться в точку (4, 2) — это абсолютная координата, куда нужно переместиться, поэтому вектор вычисляется как (4-5, 2-1) = (-1, 1).
Ответ:
использовать Чертежникалгначсместиться в точку (1, 1)опустить перосместиться на вектор (0, 1)сместиться на вектор (4, 0)сместиться на вектор (0, -1)поднять перосместиться на вектор (-1, 1)опустить перосместиться на вектор (0, 3)сместиться на вектор (-1, 0)сместиться на вектор (-1, -1)сместиться на вектор (0, -2)кон