Алгоритм домика в программе кумир. Практическая работа "Исполнитель Чертежник. Вспомогательные алгоритмы". Вспомогательные алгоритмы с аргументами

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

Задание А. Нужный нам вспомогательный алгоритм (который рисует квадрат определенной длины) можно записать так:

алг квадрат(арг вещ а)
нач
. опустить перо
. сместиться на вектор (0,а)
. сместиться на вектор (а,0)
. сместиться на вектор (0,-а)
. сместиться на вектор (-а,0)
. поднять перо
кон

Упражнение 1: Создайте кривую из данных точек

Это сделает наш алгоритм более гибким и элегантным.

Щелкните правой кнопкой мыши по нему, выберите? После того, как у вас есть несколько точек в списке, отметьте второй в списке и отредактируйте его координаты. Мы делаем то же самое с другими моментами. Таким образом, мы создали параметрические точки. Мы бросаем его на холст и соединяем его с точками.

Порядок, в котором вы ввели их ранее, влияет на порядок их присоединения. На моем изображении вы видите, что кривая представляет собой замкнутую кривую, так что нужно сделать правый щелчок по параметру? Теперь вы можете поэкспериментировать с опциями из основной функциональной панели, например, выбрать точку? и нажмите «Отключить предварительный просмотр».

Запись «алг квадрат(арг вещ а)» означает, что у алгоритма «квадрат» есть один аргумент (арг) «а», который может быть произвольным вещественным (вещ) числом. Для того чтобы вызвать этот алгоритм нужно написать, например, «квадрат(2)» - получим квадрат со стороной 2 или «квадрат(3)» - получим квадрат со стороной 3 и т. п. Какое-то конкретное значение «а» получит только во время работы программы во время соответствующего вспомогательного алгоритма. И везде вместо «а» будет подставлено компьютером это число.

Упражнение 2: Введение в списки данных

С сложными объектами, 90% времени, которое требуется для сортировки? Перечислим данные так, чтобы конечный результат был тем, что мы ожидали, оптимизируя алгоритм так, чтобы он потреблял как можно меньше мощности ЦП. С сотнями и даже тысячами объектов на месте нам нужно контролировать то, что видит Грасспоппер.

Мы также делаем то же самое со вторым компонентом, обозначая пять точек во второй строке. Мы надеваем компонент холста Кузнечика?; то мы соединяем вход? с первым выходом? и вход? со вторым выходом? Таким образом, мы получили пять строк, но две из этих строк соединены в последней точке первой строки.

  • Мы помещаем две компоненты на холст.
  • Не играть?
В дополнение к? Перекрестная ссылка? Существуют и другие варианты.

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

использовать Чертежник
алг квадраты
нач
. сместиться в точку (1,1)
. квадрат(2)
. сместиться в точку (4,1)
. квадрат(3)
. сместиться в точку (8,1)
. квадрат(4)
. сместиться в точку (13,1)
. квадрат(5)
. сместиться в точку (0,0)
кон
алг квадрат(арг вещ а)
нач
. опустить перо
. сместиться на вектор (0,а)
. сместиться на вектор (а,0)
. сместиться на вектор (0,-а)
. сместиться на вектор (-а,0)
. поднять перо
кон

Задание Б. Научим Чертежника новым командам. Одна из команд пусть называется «линия(арг вещ x1,y1,x2,y2) » – для рисования линии из точки (x1,y1) в точку (x2,y2).

алг линия(арг вещ x1, y1, x2, y2)
нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y2)
. поднять перо
кон

Задание В. Вторая команда пусть называется «прямоугольник(арг вещ x1,y1,x2,y2) » для рисования прямоугольника. Точка (x1,y1) одна точка диагонали АС прямоугольника, точка (x2,y2) – противоположная. Перед записью алгоритма нужно понять чему равны координаты двух других точек.

Вспомогательный алгоритм может быть таким:

алг прямоугольник(арг вещ x1, y1, x2, y2)
нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y1)
. сместиться в точку (x2,y2)
. сместиться в точку (x1,y2)
. сместиться в точку (x1,y1)
. поднять перо
кон

Задание Г. Теперь используя эти команды нарисуем домик:


использовать Чертежник
алг домик
нач
. прямоугольник(2,1,8,5)
. прямоугольник(3,2,5,4)
. прямоугольник(6,1,7,4)
. линия(1,4,5,8)
. линия(5,8,9,4)
кон
алг линия(арг вещ x1, y1, x2, y2)
нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y2)
. поднять перо
кон
алг прямоугольник(арг вещ x1, y1, x2, y2)
нач
. сместиться в точку (x1,y1)
. опустить перо
. сместиться в точку (x2,y1)
. сместиться в точку (x2,y2)
. сместиться в точку (x1,y2)
. сместиться в точку (x1,y1)
. поднять перо
кон

Примечание: естественно, одновременно с этими командами мы можем использовать и стандартные команды чертежника (сместиться в точку, сместиться на вектор …).

Задание Д. Нарисуйте самостоятельно, что нарисует Чертежник выполнив алгоритм:

использовать Чертежник
алг спираль
нач
. сместиться в точку (3,3)
. опустить перо
. виток(1); виток(3); виток(5); виток(7); виток (9)
. поднять перо
кон
алг виток(арг вещ а)
нач
. сместиться на вектор (а, 0)
. сместиться на вектор (0, -а)
. сместиться на вектор (-а-1,0)
. сместиться на вектор (0, а+1)
кон.