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