"Информатика и ИКТ (в 2 частях)", Бененсон Е.П., Паутова А.Г.
Чертёжник — исполнитель алгоритмов, который перемещается по координатной плоскости и может рисовать пером. Чтобы задать ему конкретное движение, используют команду с параметрами: в команде «Сместиться на (a, b)» числа показывают, насколько изменить горизонтальную и вертикальную координаты. Знаки параметров определяют направление, а длина сдвига — его величину. Если перо опущено, перемещение оставляет след; если поднято — Чертёжник движется без рисования. Из таких команд составляют алгоритмы, которые создают линии и фигуры.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Исполнитель алгоритмов — объект, который выполняет команды из заданного набора, называемого системой команд. Команда должна быть понятна исполнителю и входить в его возможности: иначе он не сможет правильно её выполнить. Это определение помогает отличать алгоритм для человека от набора указаний, который способен выполнить конкретный исполнитель.
Чертёжник — исполнитель, который перемещается по плоскости и может оставлять след пером. Его положение задаётся координатами точки, в которой он находится, а состояние пера показывает, будет ли движение рисовать. Эти сведения нужны, чтобы заранее понять, где появится линия и откуда начнётся следующий шаг.
Команда с параметрами — команда, действие которой зависит от указанных в ней значений. Параметры сообщают исполнителю конкретные подробности: для движения Чертёжника они задают величину и направление сдвига. Благодаря этому одна команда подходит для разных перемещений, а не только для одного заранее заданного случая.
В команде «Сместиться на (a, b)» параметры a и b — числа, задающие изменение координат Чертёжника по горизонтали и вертикали. Первое число относится к горизонтальному направлению, второе — к вертикальному. Такое обозначение позволяет кратко описать смещение и затем вычислить новое положение, если известна исходная точка.
Положение Чертёжника удобно описывать с помощью координатной плоскости: у каждой точки есть горизонтальная и вертикальная координаты. Оси служат направлениями отсчёта, поэтому пара чисел однозначно указывает место на плоскости. Зная координаты до и после движения, можно проверить, правильно ли выполнена команда, или восстановить её параметры.
Команда «Сместиться на (a, b)» задаёт перемещение на вектор — направленный сдвиг от текущего положения. Число a отвечает за горизонтальную составляющую, а b — за вертикальную, поэтому компоненты нельзя менять местами. Если исходное положение обозначить как (x, y), то после команды получится (x + a, y + b). Например, сдвиг на (4, 2) увеличивает обе координаты, но не означает переход именно в точку (4, 2).
Знак каждого параметра показывает направление вдоль соответствующей оси, а его величина — насколько далеко нужно переместиться. При положительном a Чертёжник движется вправо, при отрицательном — влево; для b положительное значение означает движение вверх, отрицательное — вниз. Если параметр равен нулю, сдвига по этой оси нет, а пара (0, 0) оставляет исполнителя на месте. Так знаки и числа вместе описывают и направление, и размер смещения.
Рисование зависит не только от команды перемещения, но и от состояния пера. Когда перо опущено, оно касается плоскости, поэтому пройденный путь становится линией. Когда перо поднято, Чертёжник меняет положение, но следа не оставляет. Переключение состояния пера позволяет, например, передвинуть исполнителя к началу фигуры, не добавляя к рисунку лишний отрезок.
Алгоритм рисунка состоит из команд, выполняемых по очереди, и результат каждой зависит от текущего положения и состояния пера. При опущенном пере последовательность векторов превращается в линии, соединённые в порядке выполнения команд. Если заменить параметры, изменятся длины или направления отдельных перемещений, а вместе с ними — форма или положение рисунка. Чтобы изменить только положение всей фигуры, а не её форму, сохраняют относительные перемещения и сдвигают начальную точку.
| Команда или характеристика | Что задаёт | Что происходит |
|---|---|---|
| Сместиться на (a, b) | Общее смещение по двум осям | Горизонтальная координата изменяется на a, вертикальная — на b |
| Параметр a | Горизонтальное смещение | Положительное значение ведёт вправо, отрицательное — влево |
| Параметр b | Вертикальное смещение | Положительное значение ведёт вверх, отрицательное — вниз |
| Перо опущено | Рисование при движении | Чертёжник оставляет след на плоскости |
| Перо поднято | Движение без рисования | Чертёжник перемещается, не оставляя линии |
Сначала найдите в таблице команду или характеристику, которая нужна для задачи, затем проверьте смысл каждого параметра и состояние пера. Чтобы определить конечное положение, прибавьте a к горизонтальной координате, а b — к вертикальной. Для проверки рисунка дополнительно проследите, в каком состоянии было перо во время каждого перемещения.
Условие. Чертёжник находится в точке (0, 0). Нужно переместить его на 4 единицы вправо и на 2 единицы вверх. Требуется записать команду с параметрами, а не конечные координаты точки.
Ответ: команда «Сместиться на (4, 2)». После неё Чертёжник окажется в точке (4, 2), поскольку к обеим координатам начала прибавлены соответствующие смещения.
Условие. Нужно нарисовать прямоугольник со сторонами 5 и 3 единицы, начиная в точке (0, 0), при опущенном пере. Для определённости построим его сначала вправо, затем вверх, потом влево и вниз. Длины сторон противоположных направлений должны совпасть, чтобы контур замкнулся.
Ответ: алгоритм: «Сместиться на (5, 0); Сместиться на (0, 3); Сместиться на (-5, 0); Сместиться на (0, -3)». Все четыре стороны будут нарисованы, потому что перо опущено. Алгоритм вернёт Чертёжника в (0, 0) и замкнёт прямоугольник.
Условие. Нужно получить такую же ломаную, как в исходном алгоритме, но на 2 единицы левее и на 3 единицы ниже. Требуется изменить алгоритм так, чтобы форма ломаной сохранилась. Направления и длины её отдельных звеньев менять не нужно.
Ответ: нужно сдвинуть начальное положение влево на 2 и вниз на 3, сохранив команды относительных перемещений. Если для этого добавляется команда движения, выполняем её с поднятым пером, а перед рисованием перо опускаем.
Менять местами a и b. Так делают, потому что оба числа выглядят как равноправные координаты. Но a задаёт горизонтальный сдвиг, а b — вертикальный. Проверьте себя: при команде (3, 0) Чертёжник должен двигаться только вправо, а при (0, 3) — только вверх.
Считать отрицательный параметр ошибкой. Иногда отрицательное число принимают за недопустимое, хотя оно обозначает движение в обратную сторону по оси. Проверьте знак по направлению: отрицательное a ведёт влево, отрицательное b — вниз. Отрицательные значения позволяют задавать обратный путь и замыкать фигуры.
Принимать параметры за координаты конечной точки. Путаница возникает из-за того, что положение тоже записывается парой чисел. Однако команда задаёт приращение, поэтому её параметры нужно прибавить к координатам, где Чертёжник находится сейчас. Для проверки возьмите ненулевую исходную точку: из (2, 1) команда (3, 0) приведёт в (5, 1), а не в (3, 0).
Не учитывать состояние пера. Можно правильно рассчитать движение, но ошибиться в ожидаемом рисунке, если забыть, поднято перо или опущено. Перед каждой рисующей частью алгоритма проверьте состояние пера: опущенное оставляет след, поднятое — нет. Чтобы найти лишний или отсутствующий отрезок, проследите команды вместе с изменениями состояния пера.
Для работы с Чертёжником нужны координатная плоскость, оси и умение читать координаты точки: без них трудно определить направление и результат перемещения. Тема также опирается на понятия алгоритма, исполнителя и системы команд, потому что Чертёжник выполняет указания в заданном порядке и только из доступного ему набора. Команды с параметрами помогают строить сложные рисунки, а повторяющиеся команды — объединять в циклы. Эти же идеи применяются при программировании графических исполнителей.
Что означает команда «Сместиться на (a, b)»?
Она приказывает изменить положение Чертёжника на заданное смещение: на a единиц по горизонтали и на b единиц по вертикали. Это приращение координат, а не название точки, в которую он должен прийти.
Как понять, в какую сторону переместится Чертёжник при отрицательном параметре?
Отрицательное значение означает движение против положительного направления соответствующей оси. Например, отрицательное a задаёт сдвиг влево, а отрицательное b — вниз.
Чем перемещение на вектор отличается от перехода в точку?
Вектор задаёт, на сколько и в каком направлении нужно переместиться от текущего положения. Переход в точку задаёт конечные координаты независимо от того, где Чертёжник находился раньше.
Почему при поднятом пере Чертёжник не рисует линию?
Поднятое перо не касается плоскости, поэтому движение меняет положение исполнителя, но не оставляет следа. Чтобы нарисовать линию, перед перемещением нужно опустить перо.
Как проверить, что алгоритм рисования прямоугольника завершён правильно?
Проследите перемещения по четырём сторонам и проверьте, что направления чередуются, а длины противоположных сторон совпадают. После последней команды координаты Чертёжника должны стать такими же, как в начале.
Исполнитель алгоритмов Чертёжник. Команды с параметрами