KNOWLEDGE HYPERMARKET


Управление исполнителем Чертежник
Строка 5: Строка 5:
<br>  
<br>  
-
'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.2. Управление исполнителем Чертежник<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Знакомимся с Чертежником'''<br><br>Исполнитель Чертежник предназначен для построения рисунков на координатной плоскости.
+
'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.2. Управление исполнителем Чертежник<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Знакомимся с Чертежником'''<br><br>Исполнитель Чертежник предназначен для построения рисунков на координатной плоскости.  
-
При задании точек этой координатной плоскости, в отличие от того, как это принято в математике, координаты х и у разделяются запятой.
+
При задании точек этой координатной плоскости, в отличие от того, как это принято в математике, координаты х и у разделяются запятой.  
-
Например, координаты выделенной на рис. 3.1 точки будут записаны так: (1, 1).<br><br>карт<br><br>Чертежник имеет перо, которое можно поднимать, опускать и перемещать. При перемещении опущенного пера за ним остается след — отрезок от предыдущего положения пера до нового. При перемещении поднятого пера никакого следа на плоскости не остается. В начальном положении перо Чертежника всегда поднято и находится в точке (0, 0).
+
Например, координаты выделенной на рис. 3.1 точки будут записаны так: (1, 1).<br><br>[[Image:19-02-55.jpg]]<br><br>Чертежник имеет перо, которое можно поднимать, опускать и перемещать. При перемещении опущенного пера за ним остается след — отрезок от предыдущего положения пера до нового. При перемещении поднятого пера никакого следа на плоскости не остается. В начальном положении перо Чертежника всегда поднято и находится в точке (0, 0).  
По команде подними перо Чертежник поднимает перо. Если перо уже было поднято, Чертежник игнорирует эту команду: он не меняет положение пера и не сообщает об отказе. Иначе говоря, каким бы ни было положение пера до команды подними перо, после этой команды оно будет поднятым.  
По команде подними перо Чертежник поднимает перо. Если перо уже было поднято, Чертежник игнорирует эту команду: он не меняет положение пера и не сообщает об отказе. Иначе говоря, каким бы ни было положение пера до команды подними перо, после этой команды оно будет поднятым.  
-
Точно так же, независимо от первоначального положения, после выполнения команды опусти перо оно оказывается опущенным, то есть готовым к рисованию.
+
Точно так же, независимо от первоначального положения, после выполнения команды опусти перо оно оказывается опущенным, то есть готовым к рисованию.  
Рисунки Чертежник выполняет с помощью команд переведи в точку и сдвинь на вектор.&nbsp;  
Рисунки Чертежник выполняет с помощью команд переведи в точку и сдвинь на вектор.&nbsp;  
-
По команде переведи в точку (а, Ь) Чертежник сдвигается в точку с координатами (а, &amp;). На рис. 3.2 показаны результаты выполнения команды переведи в точку (2, 3) при различных положениях пера до этой команды. Видно, что независимо от предыдущего положения перо оказывается в точке (2, 3), но длина и направление отрезка, который при этом чертится, могут быть различны. Команду переведи в точку называют командой абсолютного смещения.<br>&nbsp;<br>карт<br><br>Назовите координаты точек, в которых находился Чертежник до выполнения команды переведи в точку (2, 3).
+
По команде переведи в точку (а, Ь) Чертежник сдвигается в точку с координатами (а, &amp;). На рис. 3.2 показаны результаты выполнения команды переведи в точку (2, 3) при различных положениях пера до этой команды. Видно, что независимо от предыдущего положения перо оказывается в точке (2, 3), но длина и направление отрезка, который при этом чертится, могут быть различны. Команду переведи в точку называют командой абсолютного смещения.<br>&nbsp;<br>[[Image:19-02-56.jpg]]<br><br>Назовите координаты точек, в которых находился Чертежник до выполнения команды переведи в точку (2, 3).  
-
В каком случае в результате выполнения команды переведи в точку (2, 3) из различных показанных на рис. 3.2 начальных положений не будет прочерчен ни один отрезок?
+
В каком случае в результате выполнения команды переведи в точку (2, 3) из различных показанных на рис. 3.2 начальных положений не будет прочерчен ни один отрезок?  
Пусть перо Чертежника находится в точке (х, у). По команде сдвинь на вектор (а, b) Чертежник отсчитывает а единиц вправо вдоль горизонтальной оси (оси абсцисс), b единиц вверх вдоль вертикальной оси (оси ординат) и сдвигает перо в точку с координатами (х + а; у + b). Таким образом, координаты, указанные в команде, отсчи- тываются не от начала координат, а относительно текущего положения пера Чертежника. Поэтому команду сдвинь на вектор называют командой относительного смещения.&nbsp;  
Пусть перо Чертежника находится в точке (х, у). По команде сдвинь на вектор (а, b) Чертежник отсчитывает а единиц вправо вдоль горизонтальной оси (оси абсцисс), b единиц вверх вдоль вертикальной оси (оси ординат) и сдвигает перо в точку с координатами (х + а; у + b). Таким образом, координаты, указанные в команде, отсчи- тываются не от начала координат, а относительно текущего положения пера Чертежника. Поэтому команду сдвинь на вектор называют командой относительного смещения.&nbsp;  
-
На рис. 3.3 показаны результаты выполнения команды сдвинь на вектор (2, 3) при различных положениях пера до этой команды. Из рисунка видно, что положение пера после этой команды зависит от его предыдущего положения, зато в результате получаются отрезки, длина и направление которых одинаковы. В математике направленные отрезки называются векторами, отсюда и происходит название команды.<br>&nbsp;<br>rfhn<br><br>Назовите координаты точек, в которых находилось перо Чертежника до выполнения команды сдвинь на вектор (2, 3) и куда оно переместилось после выполнения этой команды.
+
На рис. 3.3 показаны результаты выполнения команды сдвинь на вектор (2, 3) при различных положениях пера до этой команды. Из рисунка видно, что положение пера после этой команды зависит от его предыдущего положения, зато в результате получаются отрезки, длина и направление которых одинаковы. В математике направленные отрезки называются векторами, отсюда и происходит название команды.<br>&nbsp;<br>[[Image:19-02-57.jpg]]<br><br>Назовите координаты точек, в которых находилось перо Чертежника до выполнения команды сдвинь на вектор (2, 3) и куда оно переместилось после выполнения этой команды.  
-
Как будет выполняться команда сдвинь на вектор (а, b) , если:<br><br>а) а &lt; 0;<br>б) b &lt; 0;<br>в) а &lt; 0 и b &lt; 0? <br><br>Чертежник может исполнять только правильно записанные команды. Например, если вместо команды сдвинь на вектор написать здвинь на вектор, то Чертежник эту запись не поймет и сразу же сообщит об ошибке. Ошибки в записи команд называются синтаксическими.
+
Как будет выполняться команда сдвинь на вектор (а, b) , если:<br><br>а) а &lt; 0;<br>б) b &lt; 0;<br>в) а &lt; 0 и b &lt; 0? <br><br>Чертежник может исполнять только правильно записанные команды. Например, если вместо команды сдвинь на вектор написать здвинь на вектор, то Чертежник эту запись не поймет и сразу же сообщит об ошибке. Ошибки в записи команд называются синтаксическими.  
-
Алгоритм может содержать логические ошибки. Например, все команды записаны правильно, но последовательность их выполнения не приводит к поставленной цели или выполнение некоторых команд приводит к отказу.<br>'''<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Пример алгоритма управления Чертежником'''<br><br>Изобразим с помощью Чертежника треугольник, положение вершин которого на координатной плоскости определяется парами чисел (1, 1), (3, 5), (5, 2) (рис. 3.4).<br>&nbsp;<br>rfhn<br><br>Так как в начале работы перо Чертежника всегда поднято, то для рисования треугольника с заданными координатами достаточно выполнить следующую последовательность команд:
+
Алгоритм может содержать логические ошибки. Например, все команды записаны правильно, но последовательность их выполнения не приводит к поставленной цели или выполнение некоторых команд приводит к отказу.<br>'''<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Пример алгоритма управления Чертежником'''<br><br>Изобразим с помощью Чертежника треугольник, положение вершин которого на координатной плоскости определяется парами чисел (1, 1), (3, 5), (5, 2) (рис. 3.4).<br>&nbsp;<br>[[Image:19-02-58.jpg]]<br><br>Так как в начале работы перо Чертежника всегда поднято, то для рисования треугольника с заданными координатами достаточно выполнить следующую последовательность команд:  
-
переведи в точку (1, 1)<br>опусти перо<br>переведи в точку (3, 5)<br>переведи в точку (5, 2)<br>переведи в точку (1, 1) <br>&nbsp;<br>Предложите другие варианты выполнения этого задания. При этом число команд не должно превышать пяти (есть пять других вариантов).
+
переведи в точку (1, 1)<br>опусти перо<br>переведи в точку (3, 5)<br>переведи в точку (5, 2)<br>переведи в точку (1, 1) <br>&nbsp;<br>Предложите другие варианты выполнения этого задания. При этом число команд не должно превышать пяти (есть пять других вариантов).  
-
А теперь составим такой алгоритм управления Чертежником, чтобы с его помощью в произвольном месте координатной плоскости можно было нарисовать прямоугольник со сторонами, параллельными координатным осям, длины которых равны 2 и 4 единицам.
+
А теперь составим такой алгоритм управления Чертежником, чтобы с его помощью в произвольном месте координатной плоскости можно было нарисовать прямоугольник со сторонами, параллельными координатным осям, длины которых равны 2 и 4 единицам.  
-
Зафиксируем одну из вершин прямоугольника в точке (1, 1). Нужный рисунок на координатной плоскости может выглядеть, как показано на рис. 3.5.<br><br>rfhn<br>&nbsp; <br>Предложите другой вариант рисунка, удовлетворяющий заданным условиям: одна из вершин прямоугольника расположена в точке (1, 1), а длины его сторон равны 2 и 4 единицам? (Существует еще семь вариантов.)
+
Зафиксируем одну из вершин прямоугольника в точке (1, 1). Нужный рисунок на координатной плоскости может выглядеть, как показано на рис. 3.5.<br><br>[[Image:19-02-59.jpg]]<br>&nbsp; <br>Предложите другой вариант рисунка, удовлетворяющий заданным условиям: одна из вершин прямоугольника расположена в точке (1, 1), а длины его сторон равны 2 и 4 единицам? (Существует еще семь вариантов.)  
-
Можно определить координаты каждой из вершин этого прямоугольника и для его изображения составить следующую программу:
+
Можно определить координаты каждой из вершин этого прямоугольника и для его изображения составить следующую программу:  
-
переведи в точку (1, 1)<br>опусти перо <br>переведи в точку (1, 3) <br>переведи в точку (5, 3)<br>переведи в точку (5, 1)<br>переведи в точку (1, 1)<br>&nbsp; <br>Этот алгоритм не будет решать поставленную задачу, если изменить координаты начальной точки (рис. 3.6). Изменение координат одной из вершин повлечет за собой пересчет координат всех вершин прямоугольника. Причем это придется делать самому разработчику алгоритма.<br><br>rfhn<br><br>Воспользуемся для рисования заданного прямоугольника командой относительного смещения.
+
переведи в точку (1, 1)<br>опусти перо <br>переведи в точку (1, 3) <br>переведи в точку (5, 3)<br>переведи в точку (5, 1)<br>переведи в точку (1, 1)<br>&nbsp; <br>Этот алгоритм не будет решать поставленную задачу, если изменить координаты начальной точки (рис. 3.6). Изменение координат одной из вершин повлечет за собой пересчет координат всех вершин прямоугольника. Причем это придется делать самому разработчику алгоритма.<br><br>[[Image:19-02-60.jpg]]<br><br>Воспользуемся для рисования заданного прямоугольника командой относительного смещения.  
-
Пусть (х, у) — координаты вершины А прямоугольника ABCD (рис. 3.7).<br><br>rfhn<br><br>Тогда координаты вершины В можно записать как (х, у 4- 2), вершины С — как (х + 4, у 4- 2), вершины D — как (х + 4, у) (рис. 3.8).<br><br>rfhn<br><br>Чтобы изобразить отрезок АВ, воспользуемся командой сдвинь на вектор (0, 2).
+
Пусть (х, у) — координаты вершины А прямоугольника ABCD (рис. 3.7).<br><br>[[Image:19-02-61.jpg]]<br><br>Тогда координаты вершины В можно записать как (х, у 4- 2), вершины С — как (х + 4, у 4- 2), вершины D — как (х + 4, у) (рис. 3.8).<br><br>[[Image:19-02-62.jpg]]<br><br>Чтобы изобразить отрезок АВ, воспользуемся командой сдвинь на вектор (0, 2).  
-
В результате Чертежник сдвинет перо из точки с координатами (х, у) в точку с координатами (х + 0, у + 2).
+
В результате Чертежник сдвинет перо из точки с координатами (х, у) в точку с координатами (х + 0, у + 2).  
-
По команде сдвинь на вектор (4, 0) перо окажется в точке (х + 4, у + 2). Чтобы из этой точки перейти в точку (х + 4, у + 0), следует выполнить команду сдвинь на вектор (0, -2). По команде сдвинь на вектор (-4, 0) перо Чертежника прочертит отрезок к точке А:<br>
+
По команде сдвинь на вектор (4, 0) перо окажется в точке (х + 4, у + 2). Чтобы из этой точки перейти в точку (х + 4, у + 0), следует выполнить команду сдвинь на вектор (0, -2). По команде сдвинь на вектор (-4, 0) перо Чертежника прочертит отрезок к точке А:<br>  
{| cellspacing="1" cellpadding="1" border="1" style="width: 547px; height: 129px;"
{| cellspacing="1" cellpadding="1" border="1" style="width: 547px; height: 129px;"
|-
|-
-
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; '''Команда'''
+
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; '''Команда'''  
| '''&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Координаты точки'''
| '''&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Координаты точки'''
|-
|-
-
| &nbsp; Начальная точка
+
| &nbsp; Начальная точка  
| &nbsp;&nbsp;&nbsp; (x, y)
| &nbsp;&nbsp;&nbsp; (x, y)
|-
|-
-
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(0,&nbsp;&nbsp; &nbsp;2)
+
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(0,&nbsp;&nbsp; &nbsp;2)  
| &nbsp;&nbsp;&nbsp; (х+ 0, у +2)
| &nbsp;&nbsp;&nbsp; (х+ 0, у +2)
|-
|-
-
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(4,&nbsp;&nbsp; &nbsp;0) <br>
+
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(4,&nbsp;&nbsp; &nbsp;0) <br>  
| &nbsp; &nbsp; (х+ 4, у + 2)
| &nbsp; &nbsp; (х+ 4, у + 2)
|-
|-
-
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(0,&nbsp;&nbsp; &nbsp;-2)
+
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(0,&nbsp;&nbsp; &nbsp;-2)  
| &nbsp;&nbsp; (х + 4, у+ 0)
| &nbsp;&nbsp; (х + 4, у+ 0)
|-
|-
-
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(-4&nbsp;&nbsp; &nbsp;, 0)
+
| &nbsp; сдвинь на вектор&nbsp;&nbsp; &nbsp;(-4&nbsp;&nbsp; &nbsp;, 0)  
| &nbsp;&nbsp;&nbsp; (x, y)
| &nbsp;&nbsp;&nbsp; (x, y)
|}
|}
-
<br>Если в качестве вершины А зафиксировать точку с координатами (1, 1), то программа будет выглядеть так:
+
<br>Если в качестве вершины А зафиксировать точку с координатами (1, 1), то программа будет выглядеть так:  
-
переведи в точку(1, 1) <br>опусти перо <br>сдвинь на вектор (0, 2) <br>сдвинь на вектор (4, 0) <br>сдвинь на вектор (0, -2) <br>сдвинь на вектор (-4, 0) <br><br>Для того чтобы нарисовать прямоугольник в другом месте координатной плоскости, например в точке с координатами (5, 5), достаточно изменить в этой программе только первую строку:
+
переведи в точку(1, 1) <br>опусти перо <br>сдвинь на вектор (0, 2) <br>сдвинь на вектор (4, 0) <br>сдвинь на вектор (0, -2) <br>сдвинь на вектор (-4, 0) <br><br>Для того чтобы нарисовать прямоугольник в другом месте координатной плоскости, например в точке с координатами (5, 5), достаточно изменить в этой программе только первую строку:  
-
переведи в точку (5, 5)
+
переведи в точку (5, 5)  
-
С помощью команды абсолютного смещения рисунок «привязывается» к строго определенным точкам координатной плоскости. Она используется чаще всего для установки начального положения пера Чертежника.
+
С помощью команды абсолютного смещения рисунок «привязывается» к строго определенным точкам координатной плоскости. Она используется чаще всего для установки начального положения пера Чертежника.  
-
Команды относительного смещения применяются для создания рисунков, у которых точное место не важно или которые нужно воспроизводить в разных местах.
+
Команды относительного смещения применяются для создания рисунков, у которых точное место не важно или которые нужно воспроизводить в разных местах.  
-
'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Чертежник учится, или Использование вспомогательных алгоритмов'''
+
'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Чертежник учится, или Использование вспомогательных алгоритмов'''  
-
Чертежник может рисовать любые фигуры из отрезков, например цифры почтового индекса. Как известно, каждая такая цифра вписана в прямоугольник (рис. 3.9). <br><br>карт<br>&nbsp; <br>Условимся при рисовании каждой цифры за начальную точку брать левую нижнюю точку соответствующего прямоугольника.
+
Чертежник может рисовать любые фигуры из отрезков, например цифры почтового индекса. Как известно, каждая такая цифра вписана в прямоугольник (рис. 3.9). <br><br>[[Image:19-02-63.jpg]]<br>&nbsp; <br>Условимся при рисовании каждой цифры за начальную точку брать левую нижнюю точку соответствующего прямоугольника.  
-
Программа рисования цифры 0 может иметь вид:
+
Программа рисования цифры 0 может иметь вид:  
-
опусти перо<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(0, 2)<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(1, 0)<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(0, -2)<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(-1, 0) <br>подними перо<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(2, 0)
+
опусти перо<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(0, 2)<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(1, 0)<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(0, -2)<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(-1, 0) <br>подними перо<br>сдвинь на вектор&nbsp;&nbsp; &nbsp;(2, 0)  
-
Для рисования цифры 6 можно использовать программу:
+
Для рисования цифры 6 можно использовать программу:  
-
сдвинь на вектор (1, 2) <br>опусти перо<br>сдвинь на вектор (-1, -1)<br>сдвинь на вектор (1, 0)<br>сдвинь на вектор (0, -1)<br>сдвинь на вектор (-1, 0)<br>сдвинь на вектор (0, 1) <br>подними перо<br>сдвинь на вектор (2, -1) &nbsp;
+
сдвинь на вектор (1, 2) <br>опусти перо<br>сдвинь на вектор (-1, -1)<br>сдвинь на вектор (1, 0)<br>сдвинь на вектор (0, -1)<br>сдвинь на вектор (-1, 0)<br>сдвинь на вектор (0, 1) <br>подними перо<br>сдвинь на вектор (2, -1) &nbsp;  
-
Для чего нужна последняя команда?
+
Для чего нужна последняя команда?  
-
А теперь представьте, что необходимо составить алгоритм рисования почтового индекса города Красноярска — 660000.
+
А теперь представьте, что необходимо составить алгоритм рисования почтового индекса города Красноярска — 660000.  
-
Самый простой вариант — составить очень длинную программу, в которой дважды повторить алгоритм рисования цифры 6 и четырежды — цифры 0.
+
Самый простой вариант — составить очень длинную программу, в которой дважды повторить алгоритм рисования цифры 6 и четырежды — цифры 0.  
-
Но есть и другой способ. Оказывается, Чертежник может «запомнить», как рисуется та или иная цифра. Для решения основной задачи (рисования почтового индекса 660000) достаточно «научить» Чертежника рисовать цифру 6 и цифру 0. Для этого алгоритм рисования цифры нужно предварительно оформить в виде процедуры (вспомогательного алгоритма).
+
Но есть и другой способ. Оказывается, Чертежник может «запомнить», как рисуется та или иная цифра. Для решения основной задачи (рисования почтового индекса 660000) достаточно «научить» Чертежника рисовать цифру 6 и цифру 0. Для этого алгоритм рисования цифры нужно предварительно оформить в виде процедуры (вспомогательного алгоритма).  
-
Процедура рисования цифры 0 будет выглядеть так:<br><br>ПРОЦ цифра__0<br>НАЧАЛО<br>&nbsp;&nbsp;&nbsp; опусти перо<br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (0, 2) <br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (1, 0) <br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (0, -2) <br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (-1, 0) <br>&nbsp;&nbsp;&nbsp; подними перо сдвинь на вектор (2, 0)<br>КОНЕЦ<br>&nbsp;<br>Строка ПРОЦ цифра 0 называется заголовком процедуры. Имя процедуры — цифра 0. Алгоритм рисования буквы помещается чуть правее между служебными словами НАЧАЛО и КОНЕЦ.
+
Процедура рисования цифры 0 будет выглядеть так:<br><br>ПРОЦ цифра__0<br>НАЧАЛО<br>&nbsp;&nbsp;&nbsp; опусти перо<br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (0, 2) <br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (1, 0) <br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (0, -2) <br>&nbsp;&nbsp;&nbsp; сдвинь на вектор (-1, 0) <br>&nbsp;&nbsp;&nbsp; подними перо сдвинь на вектор (2, 0)<br>КОНЕЦ<br>&nbsp;<br>Строка ПРОЦ цифра 0 называется заголовком процедуры. Имя процедуры — цифра 0. Алгоритм рисования буквы помещается чуть правее между служебными словами НАЧАЛО и КОНЕЦ.  
-
Процедура рисования цифры 6 будет выглядеть так:
+
Процедура рисования цифры 6 будет выглядеть так:  
-
ПРОЦ цифра_6 <br>НАЧАЛО<br>сдвинь на вектор (-1, -1) &nbsp;<br>сдвинь на вектор (1, 0)<br>сдвинь на вектор (0,-1)<br>сдвинь на вектор (-1, 0)<br>сдвинь на вектор (0,1)<br>подними перо<br>сдвинь на вектор (2, -1) <br>КОНЕЦ<br><br>Приказ на выполнение вспомогательного алгоритма (процедуры) называется вызовом процедуры и записывается в основном алгоритме.
+
ПРОЦ цифра_6 <br>НАЧАЛО<br>сдвинь на вектор (-1, -1) &nbsp;<br>сдвинь на вектор (1, 0)<br>сдвинь на вектор (0,-1)<br>сдвинь на вектор (-1, 0)<br>сдвинь на вектор (0,1)<br>подними перо<br>сдвинь на вектор (2, -1) <br>КОНЕЦ<br><br>Приказ на выполнение вспомогательного алгоритма (процедуры) называется вызовом процедуры и записывается в основном алгоритме.  
-
Теперь запишем основной алгоритм, с помощью которого будет нарисован индекс 660000:
+
Теперь запишем основной алгоритм, с помощью которого будет нарисован индекс 660000:  
-
переведи в точку (1, 1)<br>цифра_6<br>цифра_6<br>цифра_0<br>цифра_0<br>цифра_0<br>цифра_0<br><br>К какому типу алгоритмов относится этот основной алгоритм?<br>'''<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Цикл ПОВТОРИТЬ n РАЗ'''<br><br>При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнять несколько раз подряд. Для упрощения записи алгоритма в таких случаях можно использовать специальную конструкцию повторения.
+
переведи в точку (1, 1)<br>цифра_6<br>цифра_6<br>цифра_0<br>цифра_0<br>цифра_0<br>цифра_0<br><br>К какому типу алгоритмов относится этот основной алгоритм?<br>'''<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Цикл ПОВТОРИТЬ n РАЗ'''<br><br>При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнять несколько раз подряд. Для упрощения записи алгоритма в таких случаях можно использовать специальную конструкцию повторения.  
-
Например, основной алгоритм рисования ряда из пяти ромбов (рис. 3.10) с помощью конструкции повторения можно записать так:<br><br>переведи в точку (1,2) <br>опусти перо <br>ПОВТОРИТЬ 5 РАЗ<br>&nbsp; сдвинь на вектор (1, 2) <br>&nbsp; сдвинь на вектор (1, -2) <br>&nbsp; сдвинь на вектор (-1, -2) <br>&nbsp; сдвинь на вектор (-1, 2) <br>&nbsp; подними перо<br>&nbsp; сдвинь на вектор (3, 0) <br>КОНЕЦ<br>&nbsp;<br>rfhn<br><br>Можно рисование ромба оформить в виде отдельной процедуры:<br><br>ПРОЦ ромб <br>НАЧАЛО<br>&nbsp; сдвинь на вектор (1, 2)<br>&nbsp; сдвинь на вектор (1, -2)<br>&nbsp; сдвинь на вектор (-1, -2)<br>&nbsp; сдвинь на вектор (-1, 2) <br>КОНЕЦ<br><br>Тогда основной алгоритм будет выглядеть так:<br><br>переведи в точку (1,2) <br>опусти перо <br>ПОВТОРИТЬ 5 РАЗ<br>&nbsp; ромб<br>&nbsp; подними перо <br>&nbsp; сдвинь на вектор (3, 0) <br>КОНЕЦ <br>&nbsp;<br>В общем виде конструкция повторения записывается так:<br><br>ПОВТОРИТЬ &lt;число повторений&gt; РАЗ<br>&lt;тело цикла (последовательность команд)&gt;<br>КОНЕЦ<br><br>Служебные слова ПОВТОРИТЬ и КОНЕЦ пишутся одно под другим. Чуть правее между ними записывается повторяющаяся последовательность команд (тело цикла). Число повторений — произвольное целое число. Именно столько раз при выполнении алгоритма будут повторены команды, образующие тело цикла.
+
Например, основной алгоритм рисования ряда из пяти ромбов (рис. 3.10) с помощью конструкции повторения можно записать так:<br><br>переведи в точку (1,2) <br>опусти перо <br>ПОВТОРИТЬ 5 РАЗ<br>&nbsp; сдвинь на вектор (1, 2) <br>&nbsp; сдвинь на вектор (1, -2) <br>&nbsp; сдвинь на вектор (-1, -2) <br>&nbsp; сдвинь на вектор (-1, 2) <br>&nbsp; подними перо<br>&nbsp; сдвинь на вектор (3, 0) <br>КОНЕЦ<br>&nbsp;<br>[[Image:19-02-64.jpg]]<br><br>Можно рисование ромба оформить в виде отдельной процедуры:<br><br>ПРОЦ ромб <br>НАЧАЛО<br>&nbsp; сдвинь на вектор (1, 2)<br>&nbsp; сдвинь на вектор (1, -2)<br>&nbsp; сдвинь на вектор (-1, -2)<br>&nbsp; сдвинь на вектор (-1, 2) <br>КОНЕЦ<br><br>Тогда основной алгоритм будет выглядеть так:<br><br>переведи в точку (1,2) <br>опусти перо <br>ПОВТОРИТЬ 5 РАЗ<br>&nbsp; ромб<br>&nbsp; подними перо <br>&nbsp; сдвинь на вектор (3, 0) <br>КОНЕЦ <br>&nbsp;<br>В общем виде конструкция повторения записывается так:<br><br>ПОВТОРИТЬ &lt;число повторений&gt; РАЗ<br>&lt;тело цикла (последовательность команд)&gt;<br>КОНЕЦ<br><br>Служебные слова ПОВТОРИТЬ и КОНЕЦ пишутся одно под другим. Чуть правее между ними записывается повторяющаяся последовательность команд (тело цикла). Число повторений — произвольное целое число. Именно столько раз при выполнении алгоритма будут повторены команды, образующие тело цикла.  
-
Предложите вариант решения задачи о почтовом индексе Красноярска с использованием конструкции повторения.
+
Предложите вариант решения задачи о почтовом индексе Красноярска с использованием конструкции повторения.  
-
Можно ли обойтись без вспомогательного алгоритма в следующих ситуациях?<br>&nbsp;<br>rfhn<br><br>'''Коротко о главном'''<br><br>Исполнитель Чертежник предназначен для построения рисунков на координатной плоскости.
+
Можно ли обойтись без вспомогательного алгоритма в следующих ситуациях?<br>&nbsp;<br>[[Image:19-02-65.jpg]]<br><br>'''Коротко о главном'''<br><br>Исполнитель Чертежник предназначен для построения рисунков на координатной плоскости.  
-
Система команд исполнителя представлена в следующей таблице:<br>
+
Система команд исполнителя представлена в следующей таблице:<br>  
{| cellspacing="1" cellpadding="1" border="1" style="width: 527px; height: 108px;"
{| cellspacing="1" cellpadding="1" border="1" style="width: 527px; height: 108px;"
|-
|-
-
| '''&nbsp;&nbsp; Команда '''<br>
+
| '''&nbsp;&nbsp; Команда '''<br>  
| &nbsp;&nbsp;'''Действие'''
| &nbsp;&nbsp;'''Действие'''
|-
|-
-
| &nbsp; подними перо
+
| &nbsp; подними перо  
| &nbsp;&nbsp;&nbsp; Чертежник поднимает перо
| &nbsp;&nbsp;&nbsp; Чертежник поднимает перо
|-
|-
-
| &nbsp; опусти перо
+
| &nbsp; опусти перо  
| &nbsp;&nbsp;&nbsp; Чертежник опускает перо
| &nbsp;&nbsp;&nbsp; Чертежник опускает перо
|-
|-
-
| &nbsp; переведи в точку (а, b)
+
| &nbsp; переведи в точку (а, b)  
| &nbsp;&nbsp;&nbsp; Чертежник сдвигается в точку с координатами (а, b)
| &nbsp;&nbsp;&nbsp; Чертежник сдвигается в точку с координатами (а, b)
|-
|-
-
| &nbsp; сдвинь на вектор (а, b)
+
| &nbsp; сдвинь на вектор (а, b)  
| &nbsp;&nbsp;&nbsp; Чертежник сдвигается на вектор (а, b)
| &nbsp;&nbsp;&nbsp; Чертежник сдвигается на вектор (а, b)
|}
|}
-
<br>Алгоритм, решающий некоторую подзадачу основной задачи, называется вспомогательным алгоритмом. Вспомогательный алгоритм оформляется в виде процедуры. Приказ на выполнение вспомогательного алгоритма называется вызовом процедуры и записывается в основном алгоритме.
+
<br>Алгоритм, решающий некоторую подзадачу основной задачи, называется вспомогательным алгоритмом. Вспомогательный алгоритм оформляется в виде процедуры. Приказ на выполнение вспомогательного алгоритма называется вызовом процедуры и записывается в основном алгоритме.  
-
При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнять несколько раз подряд. Для упрощения записи алгоритма в таких случаях можно использовать специальную конструкцию повторения — ПОВТОРИТЬ n РАЗ.<br><br>'''Вопросы и задания'''<br><br>1. Охарактеризуйте исполнителя Чертежник.
+
При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнять несколько раз подряд. Для упрощения записи алгоритма в таких случаях можно использовать специальную конструкцию повторения — ПОВТОРИТЬ n РАЗ.<br><br>'''Вопросы и задания'''<br><br>1. Охарактеризуйте исполнителя Чертежник.  
-
2. Составьте для Чертежника алгоритм рисования равнобедренного треугольника, если известны координаты концов отрезка, являющегося его высотой: (4, 1) и (4, 6), а также координаты (2, 1) одной из его вершин.
+
2. Составьте для Чертежника алгоритм рисования равнобедренного треугольника, если известны координаты концов отрезка, являющегося его высотой: (4, 1) и (4, 6), а также координаты (2, 1) одной из его вершин.  
-
3. Составьте для Чертежника алгоритм рисования прямоугольника со сторонами, параллельными осям координат, если известны координаты его двух вершин: (2, 1) и (7, 5).
+
3. Составьте для Чертежника алгоритм рисования прямоугольника со сторонами, параллельными осям координат, если известны координаты его двух вершин: (2, 1) и (7, 5).  
-
4. Составьте для Чертежника алгоритм рисования ромба, центр которого совмещен с центром экрана, диагонали лежат на координатных осях, а их длины определяются числами 8 и 4.
+
4. Составьте для Чертежника алгоритм рисования ромба, центр которого совмещен с центром экрана, диагонали лежат на координатных осях, а их длины определяются числами 8 и 4.  
-
5. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован квадрат, длина стороны которого равна 2 единицам.
+
5. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован квадрат, длина стороны которого равна 2 единицам.  
-
6. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован прямоугольник, длины сторон которого равны 3 и 4 единицам.
+
6. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован прямоугольник, длины сторон которого равны 3 и 4 единицам.  
7. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован произвольный параллелограмм.  
7. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован произвольный параллелограмм.  
-
8. Составьте алгоритм рисования изображенных ниже фигур так, чтобы в процессе рисования перо не отрывалось от бумаги и ни одна линия не проводилась дважды.<br><br>rfhn<br><br>9. Оформите в виде процедур алгоритмы рисования букв М, И, Р. Составьте алгоритмы рисования слов МИР, РИМ, МИМ. <br><br>rfhn<br><br>10. Разработайте вспомогательный алгоритм рисования домика. На его основе составьте основной алгоритм рисования улицы из пяти домиков. <br><br>rfhn<br><br>11. Составьте алгоритмы управления Чертежником, после исполнения которых будут получены следующие рисунки:<br><br>rfhn<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>12. Составьте алгоритмы управления Чертежником, после исполнения которых будут получены следующие рисунки: <br><br>rfhn<br>&nbsp;<br>13. Придумайте свои задачи для Чертежника. <br><br><br><br>  
+
8. Составьте алгоритм рисования изображенных ниже фигур так, чтобы в процессе рисования перо не отрывалось от бумаги и ни одна линия не проводилась дважды.<br><br>[[Image:19-02-66.jpg]]<br><br>9. Оформите в виде процедур алгоритмы рисования букв М, И, Р. Составьте алгоритмы рисования слов МИР, РИМ, МИМ. <br><br>[[Image:19-02-67.jpg]]<br><br>10. Разработайте вспомогательный алгоритм рисования домика. На его основе составьте основной алгоритм рисования улицы из пяти домиков. <br><br>[[Image:19-02-68.jpg]]<br><br>11. Составьте алгоритмы управления Чертежником, после исполнения которых будут получены следующие рисунки:<br><br>[[Image:19-02-69.jpg]]<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>12. Составьте алгоритмы управления Чертежником, после исполнения которых будут получены следующие рисунки: <br><br>[[Image:19-02-70.jpg]]<br>&nbsp;<br>13. Придумайте свои задачи для Чертежника. <br><br><br><br>  
<br>  
<br>  

Версия 16:39, 20 февраля 2012

Гипермаркет знаний>>Информатика >>Информатика 7 класс>> Управление исполнителем Чертежник


                                                         3.2. Управление исполнителем Чертежник

                                                                   Знакомимся с Чертежником


Исполнитель Чертежник предназначен для построения рисунков на координатной плоскости.

При задании точек этой координатной плоскости, в отличие от того, как это принято в математике, координаты х и у разделяются запятой.

Например, координаты выделенной на рис. 3.1 точки будут записаны так: (1, 1).

19-02-55.jpg

Чертежник имеет перо, которое можно поднимать, опускать и перемещать. При перемещении опущенного пера за ним остается след — отрезок от предыдущего положения пера до нового. При перемещении поднятого пера никакого следа на плоскости не остается. В начальном положении перо Чертежника всегда поднято и находится в точке (0, 0).

По команде подними перо Чертежник поднимает перо. Если перо уже было поднято, Чертежник игнорирует эту команду: он не меняет положение пера и не сообщает об отказе. Иначе говоря, каким бы ни было положение пера до команды подними перо, после этой команды оно будет поднятым.

Точно так же, независимо от первоначального положения, после выполнения команды опусти перо оно оказывается опущенным, то есть готовым к рисованию.

Рисунки Чертежник выполняет с помощью команд переведи в точку и сдвинь на вектор. 

По команде переведи в точку (а, Ь) Чертежник сдвигается в точку с координатами (а, &). На рис. 3.2 показаны результаты выполнения команды переведи в точку (2, 3) при различных положениях пера до этой команды. Видно, что независимо от предыдущего положения перо оказывается в точке (2, 3), но длина и направление отрезка, который при этом чертится, могут быть различны. Команду переведи в точку называют командой абсолютного смещения.
 
19-02-56.jpg

Назовите координаты точек, в которых находился Чертежник до выполнения команды переведи в точку (2, 3).

В каком случае в результате выполнения команды переведи в точку (2, 3) из различных показанных на рис. 3.2 начальных положений не будет прочерчен ни один отрезок?

Пусть перо Чертежника находится в точке (х, у). По команде сдвинь на вектор (а, b) Чертежник отсчитывает а единиц вправо вдоль горизонтальной оси (оси абсцисс), b единиц вверх вдоль вертикальной оси (оси ординат) и сдвигает перо в точку с координатами (х + а; у + b). Таким образом, координаты, указанные в команде, отсчи- тываются не от начала координат, а относительно текущего положения пера Чертежника. Поэтому команду сдвинь на вектор называют командой относительного смещения. 

На рис. 3.3 показаны результаты выполнения команды сдвинь на вектор (2, 3) при различных положениях пера до этой команды. Из рисунка видно, что положение пера после этой команды зависит от его предыдущего положения, зато в результате получаются отрезки, длина и направление которых одинаковы. В математике направленные отрезки называются векторами, отсюда и происходит название команды.
 
19-02-57.jpg

Назовите координаты точек, в которых находилось перо Чертежника до выполнения команды сдвинь на вектор (2, 3) и куда оно переместилось после выполнения этой команды.

Как будет выполняться команда сдвинь на вектор (а, b) , если:

а) а < 0;
б) b < 0;
в) а < 0 и b < 0?

Чертежник может исполнять только правильно записанные команды. Например, если вместо команды сдвинь на вектор написать здвинь на вектор, то Чертежник эту запись не поймет и сразу же сообщит об ошибке. Ошибки в записи команд называются синтаксическими.

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

                                                             Пример алгоритма управления Чертежником


Изобразим с помощью Чертежника треугольник, положение вершин которого на координатной плоскости определяется парами чисел (1, 1), (3, 5), (5, 2) (рис. 3.4).
 
19-02-58.jpg

Так как в начале работы перо Чертежника всегда поднято, то для рисования треугольника с заданными координатами достаточно выполнить следующую последовательность команд:

переведи в точку (1, 1)
опусти перо
переведи в точку (3, 5)
переведи в точку (5, 2)
переведи в точку (1, 1)
 
Предложите другие варианты выполнения этого задания. При этом число команд не должно превышать пяти (есть пять других вариантов).

А теперь составим такой алгоритм управления Чертежником, чтобы с его помощью в произвольном месте координатной плоскости можно было нарисовать прямоугольник со сторонами, параллельными координатным осям, длины которых равны 2 и 4 единицам.

Зафиксируем одну из вершин прямоугольника в точке (1, 1). Нужный рисунок на координатной плоскости может выглядеть, как показано на рис. 3.5.

19-02-59.jpg
 
Предложите другой вариант рисунка, удовлетворяющий заданным условиям: одна из вершин прямоугольника расположена в точке (1, 1), а длины его сторон равны 2 и 4 единицам? (Существует еще семь вариантов.)

Можно определить координаты каждой из вершин этого прямоугольника и для его изображения составить следующую программу:

переведи в точку (1, 1)
опусти перо
переведи в точку (1, 3)
переведи в точку (5, 3)
переведи в точку (5, 1)
переведи в точку (1, 1)
 
Этот алгоритм не будет решать поставленную задачу, если изменить координаты начальной точки (рис. 3.6). Изменение координат одной из вершин повлечет за собой пересчет координат всех вершин прямоугольника. Причем это придется делать самому разработчику алгоритма.

19-02-60.jpg

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

Пусть (х, у) — координаты вершины А прямоугольника ABCD (рис. 3.7).

19-02-61.jpg

Тогда координаты вершины В можно записать как (х, у 4- 2), вершины С — как (х + 4, у 4- 2), вершины D — как (х + 4, у) (рис. 3.8).

19-02-62.jpg

Чтобы изобразить отрезок АВ, воспользуемся командой сдвинь на вектор (0, 2).

В результате Чертежник сдвинет перо из точки с координатами (х, у) в точку с координатами (х + 0, у + 2).

По команде сдвинь на вектор (4, 0) перо окажется в точке (х + 4, у + 2). Чтобы из этой точки перейти в точку (х + 4, у + 0), следует выполнить команду сдвинь на вектор (0, -2). По команде сдвинь на вектор (-4, 0) перо Чертежника прочертит отрезок к точке А:

                       Команда             Координаты точки
  Начальная точка     (x, y)
  сдвинь на вектор    (0,    2)     (х+ 0, у +2)
  сдвинь на вектор    (4,    0)
    (х+ 4, у + 2)
  сдвинь на вектор    (0,    -2)    (х + 4, у+ 0)
  сдвинь на вектор    (-4    , 0)     (x, y)


Если в качестве вершины А зафиксировать точку с координатами (1, 1), то программа будет выглядеть так:

переведи в точку(1, 1)
опусти перо
сдвинь на вектор (0, 2)
сдвинь на вектор (4, 0)
сдвинь на вектор (0, -2)
сдвинь на вектор (-4, 0)

Для того чтобы нарисовать прямоугольник в другом месте координатной плоскости, например в точке с координатами (5, 5), достаточно изменить в этой программе только первую строку:

переведи в точку (5, 5)

С помощью команды абсолютного смещения рисунок «привязывается» к строго определенным точкам координатной плоскости. Она используется чаще всего для установки начального положения пера Чертежника.

Команды относительного смещения применяются для создания рисунков, у которых точное место не важно или которые нужно воспроизводить в разных местах.

                                                 Чертежник учится, или Использование вспомогательных алгоритмов

Чертежник может рисовать любые фигуры из отрезков, например цифры почтового индекса. Как известно, каждая такая цифра вписана в прямоугольник (рис. 3.9).

19-02-63.jpg
 
Условимся при рисовании каждой цифры за начальную точку брать левую нижнюю точку соответствующего прямоугольника.

Программа рисования цифры 0 может иметь вид:

опусти перо
сдвинь на вектор    (0, 2)
сдвинь на вектор    (1, 0)
сдвинь на вектор    (0, -2)
сдвинь на вектор    (-1, 0)
подними перо
сдвинь на вектор    (2, 0)

Для рисования цифры 6 можно использовать программу:

сдвинь на вектор (1, 2)
опусти перо
сдвинь на вектор (-1, -1)
сдвинь на вектор (1, 0)
сдвинь на вектор (0, -1)
сдвинь на вектор (-1, 0)
сдвинь на вектор (0, 1)
подними перо
сдвинь на вектор (2, -1)  

Для чего нужна последняя команда?

А теперь представьте, что необходимо составить алгоритм рисования почтового индекса города Красноярска — 660000.

Самый простой вариант — составить очень длинную программу, в которой дважды повторить алгоритм рисования цифры 6 и четырежды — цифры 0.

Но есть и другой способ. Оказывается, Чертежник может «запомнить», как рисуется та или иная цифра. Для решения основной задачи (рисования почтового индекса 660000) достаточно «научить» Чертежника рисовать цифру 6 и цифру 0. Для этого алгоритм рисования цифры нужно предварительно оформить в виде процедуры (вспомогательного алгоритма).

Процедура рисования цифры 0 будет выглядеть так:

ПРОЦ цифра__0
НАЧАЛО
    опусти перо
    сдвинь на вектор (0, 2)
    сдвинь на вектор (1, 0)
    сдвинь на вектор (0, -2)
    сдвинь на вектор (-1, 0)
    подними перо сдвинь на вектор (2, 0)
КОНЕЦ
 
Строка ПРОЦ цифра 0 называется заголовком процедуры. Имя процедуры — цифра 0. Алгоритм рисования буквы помещается чуть правее между служебными словами НАЧАЛО и КОНЕЦ.

Процедура рисования цифры 6 будет выглядеть так:

ПРОЦ цифра_6
НАЧАЛО
сдвинь на вектор (-1, -1)  
сдвинь на вектор (1, 0)
сдвинь на вектор (0,-1)
сдвинь на вектор (-1, 0)
сдвинь на вектор (0,1)
подними перо
сдвинь на вектор (2, -1)
КОНЕЦ

Приказ на выполнение вспомогательного алгоритма (процедуры) называется вызовом процедуры и записывается в основном алгоритме.

Теперь запишем основной алгоритм, с помощью которого будет нарисован индекс 660000:

переведи в точку (1, 1)
цифра_6
цифра_6
цифра_0
цифра_0
цифра_0
цифра_0

К какому типу алгоритмов относится этот основной алгоритм?

                                                                             Цикл ПОВТОРИТЬ n РАЗ


При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнять несколько раз подряд. Для упрощения записи алгоритма в таких случаях можно использовать специальную конструкцию повторения.

Например, основной алгоритм рисования ряда из пяти ромбов (рис. 3.10) с помощью конструкции повторения можно записать так:

переведи в точку (1,2)
опусти перо
ПОВТОРИТЬ 5 РАЗ
  сдвинь на вектор (1, 2)
  сдвинь на вектор (1, -2)
  сдвинь на вектор (-1, -2)
  сдвинь на вектор (-1, 2)
  подними перо
  сдвинь на вектор (3, 0)
КОНЕЦ
 
19-02-64.jpg

Можно рисование ромба оформить в виде отдельной процедуры:

ПРОЦ ромб
НАЧАЛО
  сдвинь на вектор (1, 2)
  сдвинь на вектор (1, -2)
  сдвинь на вектор (-1, -2)
  сдвинь на вектор (-1, 2)
КОНЕЦ

Тогда основной алгоритм будет выглядеть так:

переведи в точку (1,2)
опусти перо
ПОВТОРИТЬ 5 РАЗ
  ромб
  подними перо
  сдвинь на вектор (3, 0)
КОНЕЦ
 
В общем виде конструкция повторения записывается так:

ПОВТОРИТЬ <число повторений> РАЗ
<тело цикла (последовательность команд)>
КОНЕЦ

Служебные слова ПОВТОРИТЬ и КОНЕЦ пишутся одно под другим. Чуть правее между ними записывается повторяющаяся последовательность команд (тело цикла). Число повторений — произвольное целое число. Именно столько раз при выполнении алгоритма будут повторены команды, образующие тело цикла.

Предложите вариант решения задачи о почтовом индексе Красноярска с использованием конструкции повторения.

Можно ли обойтись без вспомогательного алгоритма в следующих ситуациях?
 
19-02-65.jpg

Коротко о главном

Исполнитель Чертежник предназначен для построения рисунков на координатной плоскости.

Система команд исполнителя представлена в следующей таблице:

   Команда
  Действие
  подними перо     Чертежник поднимает перо
  опусти перо     Чертежник опускает перо
  переведи в точку (а, b)     Чертежник сдвигается в точку с координатами (а, b)
  сдвинь на вектор (а, b)     Чертежник сдвигается на вектор (а, b)


Алгоритм, решающий некоторую подзадачу основной задачи, называется вспомогательным алгоритмом. Вспомогательный алгоритм оформляется в виде процедуры. Приказ на выполнение вспомогательного алгоритма называется вызовом процедуры и записывается в основном алгоритме.

При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнять несколько раз подряд. Для упрощения записи алгоритма в таких случаях можно использовать специальную конструкцию повторения — ПОВТОРИТЬ n РАЗ.

Вопросы и задания

1. Охарактеризуйте исполнителя Чертежник.

2. Составьте для Чертежника алгоритм рисования равнобедренного треугольника, если известны координаты концов отрезка, являющегося его высотой: (4, 1) и (4, 6), а также координаты (2, 1) одной из его вершин.

3. Составьте для Чертежника алгоритм рисования прямоугольника со сторонами, параллельными осям координат, если известны координаты его двух вершин: (2, 1) и (7, 5).

4. Составьте для Чертежника алгоритм рисования ромба, центр которого совмещен с центром экрана, диагонали лежат на координатных осях, а их длины определяются числами 8 и 4.

5. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован квадрат, длина стороны которого равна 2 единицам.

6. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован прямоугольник, длины сторон которого равны 3 и 4 единицам.

7. Составьте алгоритм управления Чертежником, в результате выполнения которого в произвольном месте координатной плоскости будет нарисован произвольный параллелограмм.

8. Составьте алгоритм рисования изображенных ниже фигур так, чтобы в процессе рисования перо не отрывалось от бумаги и ни одна линия не проводилась дважды.

19-02-66.jpg

9. Оформите в виде процедур алгоритмы рисования букв М, И, Р. Составьте алгоритмы рисования слов МИР, РИМ, МИМ.

19-02-67.jpg

10. Разработайте вспомогательный алгоритм рисования домика. На его основе составьте основной алгоритм рисования улицы из пяти домиков.

19-02-68.jpg

11. Составьте алгоритмы управления Чертежником, после исполнения которых будут получены следующие рисунки:

19-02-69.jpg
        
12. Составьте алгоритмы управления Чертежником, после исполнения которых будут получены следующие рисунки:

19-02-70.jpg
 
13. Придумайте свои задачи для Чертежника.




Босова Л. Л., Информатика и ИКТ : учебник для 7 класса Л. Л. Босова. М. : БИНОМ. Лаборатория знаний, 2010. 229 с. : ил.



Содержание урока
1236084776 kr.jpg конспект урока
1236084776 kr.jpg опорный каркас  
1236084776 kr.jpg презентация урока
1236084776 kr.jpg акселеративные методы 
1236084776 kr.jpg интерактивные технологии 

Практика
1236084776 kr.jpg задачи и упражнения 
1236084776 kr.jpg самопроверка
1236084776 kr.jpg практикумы, тренинги, кейсы, квесты
1236084776 kr.jpg домашние задания
1236084776 kr.jpg дискуссионные вопросы
1236084776 kr.jpg риторические вопросы от учеников

Иллюстрации
1236084776 kr.jpg аудио-, видеоклипы и мультимедиа 
1236084776 kr.jpg фотографии, картинки 
1236084776 kr.jpg графики, таблицы, схемы
1236084776 kr.jpg юмор, анекдоты, приколы, комиксы
1236084776 kr.jpg притчи, поговорки, кроссворды, цитаты

Дополнения
1236084776 kr.jpg рефераты
1236084776 kr.jpg статьи 
1236084776 kr.jpg фишки для любознательных 
1236084776 kr.jpg шпаргалки 
1236084776 kr.jpg учебники основные и дополнительные
1236084776 kr.jpg словарь терминов                          
1236084776 kr.jpg прочие 

Совершенствование учебников и уроков
1236084776 kr.jpg исправление ошибок в учебнике
1236084776 kr.jpg обновление фрагмента в учебнике 
1236084776 kr.jpg элементы новаторства на уроке 
1236084776 kr.jpg замена устаревших знаний новыми 

Только для учителей
1236084776 kr.jpg идеальные уроки 
1236084776 kr.jpg календарный план на год  
1236084776 kr.jpg методические рекомендации  
1236084776 kr.jpg программы
1236084776 kr.jpg обсуждения


Интегрированные уроки


Если у вас есть исправления или предложения к данному уроку, напишите нам.

Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум.