Алгоритм рисования лесенки из квадратов приведен в табл. 7.14. Надо выполнить следующие действия: нарисовать квадрат, передвинуть Черепашку в правый верхний угол нарисованного квадрата. Эти действия повторяются столько раз, сколько квадратов в лесенке. Программа рисования лесенки будет следующей:
это лесенка
повтори 3 [квадрат вп 30 пр 90 вп 30 лв 90]
пп повтори 3 [пр 90 нд 30 лв 90 нд 30]
конец
Таблица 7.14.
Алгоритм рисования лесенки из квадратов
Действия | Команды для Черепашки | Значения параметров Черепашки и рабочего поля |
Повторить 3 раза действия: | повтори 3 [квадрат вп 30 пр 90 вп 30 лв 90] | Нарисована лесенка из квадратов. Черепашка в правой верхней вершине последнего квадрата |
Вернуться в начальное состояние | повтори 3 [пр 90 нд 30 лв 90 нд 30] | Черепашка в левой нижней вершине первого квадрата, голова направлена на Север |
Особенностью программы лесенка является использование вспомогательной программы рисования квадрата, которая вызывается командой квадрат, В средах программирования вспомогательные программы обычно называют процедурами.
Процедура — это вспомогательная программа, которая может вызываться из другой программы.
Различают встроенные и пользовательские процедуры. Все команды ЛОГО обращаются к встроенным процедурам. Вспомогательные программы, написанные вами и помещенные на лист программ, являются пользовательскими процедурами.
Так, программа квадрат является пользовательской процедурой. Применяя процедуру, вы должны точно представлять, в каком состоянии находится Черепашка перед ее выполнением и в каком состоянии она окажется после ее выполнения. От этого зависит выполнение всей программы, где используется пользовательская процедура. Поэтому при создании процедуры надо соблюдать правило сохранения начального состояния исполнителя:
Процедура перед своим завершением должна восстановить исходные значения параметров исполнителя.
На рис. 7.17 представлены объекты, которые получились из сложного объекта — лесенки. Объект, который составляется из более простых объектов и может использоваться для создания более сложных объектов, называют модулем. В современном производстве модули (или блоки) используются очень широко, например при проектировании домов, при изготовлении корпусной мебели и пр. Детский конструктор предоставляет возможность детям воплощать свои строительные фантазии, используя готовые модули. Компьютер также собирается из отдельных модулей, которые легко заменяются.

Рис. 7.17. Композиции из нескольких лесенок
Программный модуль — это совокупность процедур, связанных определенными правилами.
Программу, которая вызывает пользовательские процедуры, тоже называют модулем. Программный модуль применяется для создания более сложных объектов, а отличие от процедуры, которая используется для создания элементарных объектов. В таком случае программу рисования лесенки, созданную с помощью процедуры квадрат, можно воспринимать как программный модуль и использовать для конструирования всевозможных композиций (рис. 7.17).
Одни и те же процедуры могут применяться в разных модулях. В свою очередь, модули могут применяться как для создания отдельных объектов, так и для создания более сложных модулей (рис. 7.18). Такой подход к программированию называется процедурным.

Рис. 7.18. Построение модулей на основе процедур
Рассмотрим пример создания модуля четырехлистника, который используется для рисования цветка (рис. 7.19).
Сначала надо провести анализ структуры графического объекта «Цветок»:
| цветок состоит из 16 лепестков; | |
| каждый лепесток образован двумя дугами; | |
| элементарным объектом является дуга, равная четверти окружности. |
На основании анализа предлагаем технологию создания программы рисования цветка:
| написать процедуру для рисования дуги; | |
| учитывая эту процедуру, разработать модуль, рисующий четырехлистник в соответствии с алгоритмом, приведенным на рис. 7.20; | |
| используя модуль четырехлистника, нарисовать разнообразные цветы с любым количеством лепестков, кратным четырем. |
Например, чтобы нарисовать цветок, изображенный на рис. 7.19, нужно 4 раза выполнить следующие действия:
1. | Нарисовать четырехлистник. | |
2. | Повернуть графический указатель вправо на 22,5°. |
Для получения цветка с большим количеством лепестков нужно увеличить число повторений и уменьшить угол поворота Черепашки.
Создание программ путем объединения модулей называется модульным программированием.

Рис. 7.19. Графический объект «Цветок»

Рис. 7.20. Алгоритм создания модуля для рисования четырехлистника
Задания для самостоятельной работы
Задание 7.59. Составьте процедуру рисование элементарного объекта (дуги) и программный модуль для рисования четырехлистника для рис. 7.19. Напишите программы для рисования разных цветков, используя модуль четырехлистника.
Задание 7.60. Выделите в каждой фигуре, изображенной на рис. 7.21, свой повторяющийся элемент. Напишите процедуру для их построения. Составьте программы для рисования каждой фигуры, используя написанные процедуры.

Рис. 7.21. К заданию 7.60
Задание 7.61. Составьте программы для рисования снежинок (рис. 7.22). В чем сходство и различие этих программ?

Рис 7.22. К заданию 7.61
Задание 7.62. Составьте программы для рисования звездочек (рис. 7.23). В чем сходство и различие этих программ?

Рис 7.23. К заданию 7.62
Задание 7.63. Зачет: конкурс по модульному программированию.
а) Даны процедуры фрагм1 и фрагм2:
это фрагм1
вп 12 пр 90 вп 12
коней
это фрагм2
вп 12 пв 90 вп 12
конец
Используя только процедуры фрагм1 и фрагм2, команды поворота и повтори, построить фигуры, приведенные на рис. 7.24.

Рис 7.24. К заданию 7.63, а
б) В Греции есть река Меандр со столь извилистыми берегами, что трудно понять, в какой стороне начало реки, а в какой — конец. Такое же название носит классический греческий орнамент, представляющий собой извилистую кривую или ломаную линию (рис. 7.25). Составьте алгоритмы и программы для рисования меандров.
в) Составьте алгоритмы и программы рисования фигур, предложенных на рис. 7.26, выделив в них элементарные объекты и написав процедуры для их построения. Доработайте свои алгоритмы так, чтобы получились раскрашенные фигуры.

Рис. 7.25. Узоры-меандры (к заданию 7.63, б)

Рис. 7.26. К заданию 7.63, в
г) Придумайте композицию, состоящую из различных фигур, программы для которых уже содержатся на вашем листе программ. Устанавливайте Черепашку в определенные точки видимого поля, используя команды нов_х, нов_у, нов_курс. Придумайте и расскажите в классе историю про вашу композицию.
Тема 7.6 Процедура с параметрами
Выполнив задания этой темы, вы научитесь:
| анализировать объект, выделяя в нем настраиваемые параметры; | |
| описывать в процедуре настраиваемые формальные параметры; | |
| задавать значения фактических параметров при вызове процедуры. |
Процедура с одним параметром
До сих пор в программах для создания графических объектов длина Отрезка, угол поворота, цвет задавались определенными числами. Однако часто возникает необходимость построить такой же объект, но с другими значениями параметров. Рассмотрим, как это сделать, на примере процедуры рисования квадрата. Для этого проведем анализ свойств объекта «Квадрат» и выявим общие и специфические параметры.
Этап 1. Перечислим параметры, характеризующие квадрат на рабочем поле:
a) | количество сторон (всегда 4); | |
б) | соотношение сторон (всегда равны); | |
в) | длины сторон (например, 60 пикселов); | |
г) | соотношение углов (всегда равны); | |
д) | величины углов (все по 90°); | |
е) | цвет контура (например, синий); | |
ж) | цвет внутри контура (например, желтый); | |
з) | координаты расположения на рабочем поле (например, нижняя левая вершина в точке с координатами х = 0, у = 0); |
Этап 2. Выявим среди перечисленных характеристик параметры, общие для любого квадрата.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |


