Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных

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

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

Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных - student2.ru Выделите ключевую фигуру и замаскируйте ее среди подобных:

Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных - student2.ru Для удобства объедините в группу оставшиеся слева фигуры (для этого выделите их, и нажмите правую кнопку мышки):

Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных - student2.ru Теперь создадим модель, обслуживающую головоломку.

Для создания отдельного окна добавьте на схему объект LGSpace (библиотека Unit). Сделаем автоматическую настройку координат окна по графическому объекту. Нарисуйте обрамляющий прямоугольник. В его свойствах укажите имя - frame. Затем в объекте LGSpace установите для переменной ObjectName значение - frame.

Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных - student2.ru Теперь размер окна будет равным размерам этого прямоугольника. Для того чтобы изменить Z-порядок прямоугольника (поместить его под другими графическими объектами), щелните на нем правой кнопкой мышки и выберите команду Z-order - Downward. Или просто выберите объект и нажмите кнопки Ctrl-PgDown.

Для того чтобы пользователь мог перетаскивать объекты, добавьте объект DragObjects (библиотека Graph2d). Для того чтобы ограничить возможность перетаскивания, установите у всех стационарных графических объектов флаг Nonselectable object.

Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных - student2.ru Примечание. После того как Вы установите этот флаг, объекты будут недоступны, и если вы захотите получить к ним снова доступ, используйте команду Format - Page properties - закладка Flags - Allow choosing unchoosable objects. Выполните редактирование и переключите флаг обратно.

Теперь будем определять правильность выбора пользователя. Создайте новый объект и поместите в него следующую модель:

HANDLE hcobj
if (check) // if user press the "CHECK" button
if (hcobj == #14) // checking descriptor current key object
r := MessageBox("Correct !","",0)
else
r := MessageBox("Incorrect !","",0)
endif
check := 0 // reseting the "CHECK" button
endif

Примечание. Определить дескриптор ключевого объекта можно, щелкнув на нем правой кнопкой мышки и выбрав Properties - закладка Info. Смотрите пункт HANDLE, в моем примере он получился равным 14. У вас может быть другим, исправьте значение в тексте!

Добавьте кнопку WinButton (библиотека Unit) и установите у ее переменной Text значение "Check".

Примечание. Поскольку кнопка относится к классу Windows объектов у вас могут возникнуть сложности с ее выбором. Выполните команду Format - Page properties - закладка Flags - Disable child windows. Выполните редактирование кнопки. Не забудьте отключить флаг обратно, иначе кнопка не будет работать!

Соедините связью переменные pressed (WinButton) и check (новый объект).

Добавьте объект ScanObject (библиотека Graph2d). Установите в нем значения переменных x,y равными середине ключевого поля нашей головоломки. Определить их можно в StatusLine, установив курсор мышки в нужную позицию.

Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных - student2.ru В моем примере это 190,220.

Соедините связью переменные HObject (ScanObject) и hcobj (новый объект).

Пример готов, проверьте его работоспособность.

Задание 1. Построение схемы. Идея головоломки - определить недостающую фигуру среди уже известных - student2.ru

Форма отчета:Сохраните проект со своей работой и покажите преподавателю.

Выводы:Закрепление навыков построения моделей различной природы.

Вопросы к защите лабораторной работы

1.Какое назначение у объектаLGSpace?

2. ОбъектLGSpace относиться к библиотеке?

  1. Лабораторная работа 15

Тема:Моделирование и формализация.

Цель: Изготовление простой модели.

Общие сведения:

· По описанию СВЕТОФОРА создайте его действующую модель.

· Встройте систему управления светофором.

· Постройте систему отображения светофора.

· Постройте демонстрацию, объясняющую устройство светофора.

Описание объекта.

Светофор имеет три цветных лампочки - красная, желтая, зеленая. Светофор работает так: красная, желтая, зеленая, желтая, красная, желтая, зеленая, желтая, красная.

То есть весь цикл работы светофора - красная, желтая, зеленая, желтая.

Далее цикл повторяется. Можно считать, что t0-t1 - период горения красного цвета, t2-t1 - период желтого, t3-t2 - период зеленого, t4-t3 - период желтого.

Ясно, что потребуется имитация времени в виде счетчика t. Пусть он увеличивает время на каждом такте на 1. Цикл легко передать периодической функцией от t.

Первая часть этого цикла должна выделяться - на время от t0 до t1 надо поднять один флажок, потом опустить. На другие части цикла - следует поднимать и опускать другие флажки.

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

Теперь, проектируем систему управления светофором.

Так как время цикла и t0,t1,t2,t3 можно назначать разными, то удобно спроектировать систему управления ими отдельно. Управляя этими параметрами, можно по ходу работы устройства изменять поведение светофора - тормозить или ускорять цикл, увеличивать или уменьшать скважность, доли горения цветов. Хорошо, если Вы добьетесь, что управление светофором появится в отдельном окне.

Проектируем систему, объясняющую работу светофора - циклическую диаграмму. Нарисуем круг, автоматически разобьем его на четыре сектора по долям красного, желтого и зеленого цвета, окрасим их в соответствующие цвета. Изменение доли любого из цветов должно вести к изменению величины сектора. В сумме сектора должны составить 360 градусов. Теперь из центра круга до окружности проведем линию и заставим ее вращаться в темпе счетчика t. Пока горит красный цвет - линия находится в красном секторе, пока зеленый - в зеленом и так далее.

Порядок выполнения лабораторной работы:

Наши рекомендации