Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы ИС.doc
Скачиваний:
15
Добавлен:
17.02.2016
Размер:
1.95 Mб
Скачать
    1. Порядок выполнения лабораторной работы:

Задание 1. Подключение библиотеки

Создайте новый проект. Подключите новую библиотеку как указано выше.

Соберите первую схему.

Задание 2. Построение схемы

Соберите вторую схему.

Дополнительное задание

    1. Постройте график зависимости тока от сопротивления.

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

    3. Выводы: В результате выполнения лабораторной работы студенты должны научиьтся подключать дополнительные библиотеки.

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

  1. В чем заключается физический аспект рассматривания библиотек в Stratum.

  2. Основное назначение проектных библиотек?

  3. Какие элементы содержит библиотека c:\stratum3\add.lib\chains?

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

    1. Тема: Конструирование пульта управления моделью объекта.

    2. Цель: Построение модели, управляющей движением двухмерного объекта.

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

    4. Смотри предыдущие работы.

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

Задание 1. Построение схемы

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

  1. Создайте новый проект. Поместите на главную схему имидж LGSpace из системной библиотеки UNIT.LIB.

  2. Создайте на схеме графический объект, который будет объектом движения (например, небольшой прямоугольник). Посмотрите его размеры (правая кнопка мышки на объекте – Cвойства – положение), определите примерный центр объекта. Установите имя объекту.

  3. Создайте новый имидж (например, Auto) с текстом:

x := x + hx * f1 - hx * f2 y := y + hy * f1 - hy * f2 hy := v * sin(a) hx := v * cos(a) a := a + (f3 - f4) * av x0 := x + hc y0 := y + wc

,где x,y – текущие координаты объекта, f1,f2 – флаги направления движения, f3,f4 – флаги поворота, hx,hy – скорость по X и Y, hc,wc – координаты центра графического объекта относительно его левой верхней точки, v – скорость движения, av – скорость поворота в радианах за шаг, a – текущий угол поворота в радианах, x0,y0 – текущие координаты цента поворота.

  1. Задайте в переменной v скорость движения объекта (например 0.1), в переменной av скорость поворота (например 0.001), в переменных hc и wc примерные координаты центра объекта (например 5,10).

  2. Установите на схему два имиджа BUTTON из системной библиотеки СONTROLS.LIB. Создайте связи к имиджу Auto. Соедините переменные pressed каждого из них с переменными f3, f4 соответственно.

  3. Установите на схему два имиджа BUTTON из системной библиотеки СONTROLS.LIB. Создайте связи к имиджу Auto. Соедините переменные pressed каждого из них с переменными f1, f2 соответственно. Установите переменные Type в 1, обеспечив тем самым работу кнопок в виде переключателя.

  4. Установите на схему имидж Object2d из системной библиотеки Graph2d.LIB. Создайте связь к имиджу Auto. Соедините переменные x, y, x0, y0 соответственно, и переменную а с angle. Задайте в переменной ObjectName имя графического объекта, которым будем управлять.

  5. Оформите пульт управления, сделав соответствующе надписи рядом с кнопками.

Запустите проект на выполнение. Проверьте его работоспособность.

Задание 2. Управление моделью

Добавьте управление от клавиатуры. Для этого, вставьте на схему четыре имиджа VKeyState. Соедините их переменные Pressed с такими же переменными в имиджах BUTTON. Задайте значения кодов клавиш в переменных KeyCode.

Стрелка Вправо

39

Стрелка Влево

37

Стрелка Вверх

38

Стрелка Вниз

40

Дополнительное задание

Постройте траекторию движения машинки.

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

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

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

  1. За что отвечает имидж LGSpace?

  2. В какой библиотеке находится имиджа BUTTON?

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

    1. Тема: Конструирование блока контроля над действиями обучаемого.

    2. Цель: Построение модели следящей за действиями обучаемого и обрабатывающей статистику.

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

    4. Выполняется совместно с лабораторной работой 11.

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

Задание 1. Построение схемы

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

  1. Откройте проект, созданный на предыдущем занятии.

  2. Нарисуйте макет кольцевой дороги. Сама дорога может быть произвольной формы, но должна образовывать замкнутое кольцо. Графические объекты, из которых состоит "проезжая часть" дороги, должны быть объединены в группу. Для этого необходимо нажать Ctrl-G и последовательно указать объекты, которые составят группу, для завершения нажать левую кнопку. Запомните номер получившейся группы (правая кнопка мышки на группе - Cвойства - Инфо - дескриптор). Объект, представляющий собой машинку, поместите на точку старта (её можно выбрать произвольно). Для того чтобы получить возможность определять, где он находится, укажите в его свойствах (правая кнопка мышки на группе - Свойства - положение) что это невыбираемый объект.

  3. Создайте новый имидж (например, Имидж2) с текстом:

HANDLE HObject if (~f1 || ~f2) object := Float(HObject) // определяем номер объекта в текущих координатах on := (HObject == #46) // устанавливаем флаг если объект над проезжей частью s1 := s1 + not(~on) // подсчитываем сумму ошибок местоположения объекта s2 := s2 + ~f1- ~f2 // подсчитываем сумму движений по повороту объекта s3 := s3 + 1 // подсчитываем общее время b := GetAngleByXY(~x - ~xc,~yc - ~y) // находим угол объекта относительно центра дороги a := abs(~b - b) // определяем относительное изменение угла if ((a > 0) && (a < 1)) // если приращение существует angle := angle + a // вычисляем абсолютное приращение угла endif if (~angle > 2*PI) // если объект сделал круг q1 := round(~s1/s3,2)*100 // находим показатель нарушений движения q2 := round(~s2/s3,2)*100 // находим показатель планости движения q3 := s3 // находим общее время oc := 5 - trunc(0.03*~q1 + min(0.05*(100-~q2) + 0.01*~q3/100000,1)) // вычисляем суммарную оценку str := "коэффициент нарушений : "+ String(~q1) +"%"+ chr(13) // строка для вывода str :=~str + "коэффициент плавности : " + String(~q2) +"%"+ chr(13) str :=~str + "время : " + String(~q3) + chr(13) + chr(13) str :=~str + "оценка : " + String(~oc) r := MessageBox(~str,"круг пройден",1) // выводим результаты Stop(1) // останавливаем схему endif endif

Задайте в переменных xc, yc примерный центр дороги, вместо "#63" - номер графической группы, составляющей проезжую часть. Создайте связь к имиджу машинки (1) созданному в предыдущем проекте, и соедините соответственно переменные x c x0, y c y0, f1 c f1, f2 c f2.

  1. Установите на схему имидж Lamp из системной библиотеки СONTROLS.LIB. Установите цвета переменных Color - зеленый, BgColor - красный. Создайте связь к имиджу Имидж2. Соедините переменные Light и on.

  2. Установите на схему имидж ScanObject из системной библиотеки GRAPH2D.LIB. Создайте связь к имиджу Имидж2. Соедините соответственно переменные Hobject, x, y.

  3. Добавьте имидж NumberView для отображения угла.