Исполнитель Чертежник

Оглавление

Теория (знакомство и исполнителем)

Описание исполнителя

Характеристики исполнителя

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

Среда исполнителя: Чертежник действует на координатной плоскости. Начальное положение пера в начале координат (в точке с координатами (0,0)).

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

    • поднять перо,

    • опустить перо,

    • сместиться в точку (арг вещ х,у),

    • сместиться на вектор (арг вещ х,у),

    • выбрать чернила (лит наименование цвета) .

В команде сместиться в точку в качестве (х,у) выступают абсолютные значения координат, а сместиться на вектор - значения приращений по соответствующим осям. Т.е. при команде сместиться в точку (x,y) Чертёжник из точки с координатами (a, b) в точку с координатами (x, y). При команде сместиться на вектор (x,y) Чертёжник из точки с координатами (a, b) в точку с координатами (a+x, b+y). Если числа х, у положительные, значение соответствующей координаты увеличивается, если отрицательные – уменьшается. Например, если Чертёжник находится в точке с координатами (4, 2), то команда сместиться на вектор (2, –3) переместит Чертёжника в точку (6, –1).

При перемещении опущенного пера за ним остается след - отрезок от старого положения пера до нового, а при перемещении с поднятым пером следа не остается.

Команда выбрать чернила задает цвет пера: ”черный”, ”белый”, ”красный”, ”оранжевый”, ”желтый”, ”зеленый”, ”голубой”, ”синий”, ”фиолетовый”. По умолчанию используется черный цвет. Название цвета пишется без кавычек.

При смещении на вектор изменяются координаты х, у на числа, указанные в команде

Программы в среде Кумир

Пример программы

Пример программы со вспомогательным алгоритмом

Практикум (примеры программ)

Линейные алгоритмы

Линейные алгоритмы представляют собой последовательность команд, следующих друг за другом. Рассмотрим на примере трапеции.

Запишем алгоритм рисования трапеции в абсолютных величинах, используя команду сместиться в точку (рис. 1).

Но если мы захотим переместить эту трапецию из первой четверти во вторую, то нам придется изменять все координаты, что не рационально, поэтому воспользуемся командой сместиться на вектор (рис.2). И далее для составления алгоритмов будем пользоваться ей.

Во втором варианте для перемещения трапеции необходимо поменять координаты только первой команды, что эффективнее чем в первом варианте.

рис. 1

рис. 2

Задача: Составим алгоритм рисования квадрата. После рисования вернем Чертежника в исходную позицию.

Для перемещения можно использовать две команды — «сместиться в точку» и «сместиться на вектор». Запишем, для примера, два алгоритма — в одном будем использовать только первую команду, в другом только вторую.

Прежде чем Чертежник начнет рисовать (опустит перо) нужно сместится к место рисования. После рисования нужно снова поднять перо и перейти в начало координат (так требуется по условию). Рисовать будем с нижней левой точки по часовой стрелке.

Пример 1

использовать Чертежник

алг квадрат1

нач

. сместиться в точку (2,1)

. опустить перо

. сместиться в точку (2,4)

. сместиться в точку (5,4)

. сместиться в точку (5,1)

. сместиться в точку (2,1)

. поднять перо

. сместиться в точку (0,0)

кон

Пример 2

использовать Чертежник

алг квадрат2

нач

. сместиться на вектор (2,1)

. опустить перо

. сместиться на вектор (0,3)

. сместиться на вектор (3,0)

. сместиться на вектор (0,-3)

. сместиться на вектор (-3,0)

. поднять перо

. сместиться на вектор (-2,-1)

кон


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

Пример 3

использовать Чертежник

алг квадрат3

нач

. сместиться в точку (2,1)

. опустить перо

. сместиться на вектор (0,3)

. сместиться на вектор (3,0)

. сместиться на вектор (0,-3)

. сместиться на вектор (-3,0)

. поднять перо

. сместиться в точку (0,0)

кон

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

Вспомогательные алгоритмы

При создании "средних" по размеру программ используется структурное программирование, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста. Программа разбивается на множество подпрограмм (вспомогательных алгоритмов), каждая из которых выполняет какое-то действие, предусмотренное исходным заданием.

Комбинируя вспомогательные алгоритмы, удается сформировать итоговый алгоритм используя блоки кода (подпрограммы), имеющих определенную смысловую нагрузку. Обращаться к ним, можно по их имени. Очень важная характеристика вспомогательных алгоритмов - это возможность их повторного использования.

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

Обратите внимание — если нам потребуется изменить алгоритм так, чтобы рисовались треугольники со стороной 4, а не 2, то при использовании вспомогательного алгоритма количество правок заметно уменьшается.

Примечание: все алгоритмы в программе на КуМире пишутся друг за другом, для удобства их можно отделять пустой строкой, главным считается алгоритм записанный первым, именно он начинает выполняться после запуска программы.Использованный нами подход облегчает программирование сложных задач. Задача разбивается на более простые подзадачи. Решение каждой оформляется в виде вспомогательного алгоритма, а основной алгоритм организует связку между ними.

Рассмотрим задание: необходимо нарисовать несколько, например три, квадрата.

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

использовать Чертежник

алг квадраты 1

нач

. сместиться в точку(-4,1)

. опустить перо

. сместиться на вектор (0,2)

. сместиться на вектор (2,0)

. сместиться на вектор (0,-2)

. сместиться на вектор (-2,0)

. поднять перо

. сместиться в точку(-1,1)

. опустить перо

. сместиться на вектор (0,2)

. сместиться на вектор (2,0)

. сместиться на вектор (0,-2)

. сместиться на вектор (-2,0)

. поднять перо

. сместиться в точку(2,1)

. опустить перо

. сместиться на вектор (0,2)

. сместиться на вектор (2,0)

. сместиться на вектор (0,-2)

. сместиться на вектор (-2,0)

. поднять перо

. сместиться в точку(0,0)

кон

При создании средних по размеру программ используется структурное программирование, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста. Программа разбивается на множество подпрограмм (вспомогательных алгоритмов), каждая из которых выполняет какое-то действие, предусмотренное исходным заданием.

Комбинируя вспомогательные алгоритмы, удается сформировать итоговый алгоритм используя блоки кода (подпрограммы), имеющих определенную смысловую нагрузку. Обращаться к ним, можно по их имени. Очень важная характеристика вспомогательных алгоритмов - это возможность их повторного использования.

Блоки кода выделенные цветом запишем отдельным алгоритмом. Назовем его квадрат. Таким образом, мы как бы научим Чертежника новой команде квадрат.

использовать Чертежник

алг квадраты

нач

. сместиться в точку(-4,1)

. квадрат

. сместиться в точку(-1,1)

. квадрат

. сместиться в точку(2,1)

. квадрат

. сместиться в точку(0,0)

кон

алг квадрат

нач

. опустить перо

. сместиться на вектор (0,2)

. сместиться на вектор (2,0)

. сместиться на вектор (0,-2)

. сместиться на вектор (-2,0)

. поднять перо

кон

Получили более компактный и понятный алгоритм. Там, где какие-то части программы повторяются (используются) несколько раз, удобно использовать вспомогательные алгоритмы.

Обратите внимание — если нам потребуется изменить алгоритм так чтобы рисовались квадраты со стороной не два, а три, то при использовании вспомогательного алгоритма количество правок заметно уменьшается.


Циклические алгоритмы

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

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


Задания к выполнению

Задания на отработку линейного алгоритма

Выполни рисунок по образцу.

Чтобы открыть картинку полностью, нажмите правой кнопкой мыши и выберите пункт открыть в новой вкладке.

Carousel imageCarousel imageCarousel imageCarousel imageCarousel image

Выполните рисунок по образцу.

Carousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel image

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

Дополнительные задания на отработку линейного алгоритма

Чтобы открыть картинку полностью, нажмите правой кнопкой мыши и выберите пункт открыть в новой вкладке.

Carousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel image
Carousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel imageCarousel image

Задания на отработку со вспомогательным алгоритмом

Задание 1: Составьте программу лес, используя вспомогательный алгоритм елка.

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

Задание 3: Составьте программу небо, используя вспомогательный алгоритм звезда.

Задание 4: Цифры в почтовом индексе записываются следующим образом:

Составьте вспомогательные алгоритмы рисования этих цифр. Можно сделать это с одноклассниками — каждому по цифре, а потом объедините их вместе.

Составьте программу рисования индексов Владимирской области (601806), Краснодарского края (354340), Владимирской области (601650), Брянской области (242843). В программе используйте вспомогательные алгоритмы.

Задания на отработку циклического алгоритма (нц-раз-кц)

Задания на отработку циклического алгоритма (нц-для-кц)