Модель пешеходного перехода
1.1. Постановка задачи
Построить модель регулируемого пешеходного перехода со светофором, разрешающим или
запрещающим движение транспорта.
Светофор, регулирующий движение автомобилей на пешеходном переходе, может находиться в
следующих состояниях: движение транспорта разрешено (зеленый), приготовиться к
запрещающему сигналу (мигающий зеленый), приготовиться к остановке (желтый), движение
запрещено (красный) и приготовиться к движению (красный и желтый). Светофор работает в
автоматическом режиме. В каждом состоянии светофор находится определенный постоянный
период времени.
1.2. Построение модели
1) Создайте новый проект под названием Svetofor
2) Постройте диаграмму состояний Для_автомобилей, как на рис.1
Рисунок 1
3) Задайте условия срабатывания переходов:
? В состоянии движение светофор находится 10 секунд,
? Затем 7 секунд зеленый сигнал мигает,
? В состоянии медленно 4 секунды горит желтый
? В течение 10 секунд движение запрещено и 5. 4 секунды светофор находится в
состоянии приготовиться.
? В модели единица модельного времени соответствует 1 секунде реального
времени.
Для задания условий срабатывания переходов, выделите переход t1, и в поле Происходит
оставьте без изменения вариант По таймауту, а в поле По таймауту введите 10 (рис2)
Рисунок 2
4) Создайте три параметра логического типа: красный, желтый и зеленый, которые будут
принимать истинное значение тогда, когда у светофора горит соответствующий сигнал:
красный, желтый или зеленый. Начальные значения этих булевых параметров можно не
задавать: по умолчанию они будут равны false.
5) В свойствах состояния движение в поле Действие при входе запишите: зеленый=true; в
поле Действие при выходе запишите: зеленый=false;
6) В остальных свойствах пропишите аналогично, чтобы выполнялось следующее: в
состоянии медленно должен гореть желтый, в состоянии stop должен загореться красный
свет, а в состоянии приготовиться должны гореть красный и желтый одновременно, в
состоянии Внимание желтый должен моргать.
7) Нарисуйте светофор, используя графические элементы (простейший вариант –
нарисовать три овала).
8) У каждого овала цвет сделайте динамическим и запишите следующие условия
соответственно:
красный? red: gray
желтый? yellow: gray
зеленый? green: gray
9) Запустите модель и проверьте ее работу.
10)Добавьте второй светофор для пешеходов: он будет иметь два сигнала (зеленый и
красный) и три состояния: идите, внимание и стойте (рис.3)
Рисунок 3
11) Настроим условия срабатывания переходов стейтчартов между состояниями.
Необходимо синхронизировать два светофора для того, чтобы когда светофор для
пешеходов находился в состоянии «Идите» или «Мигает», светофор для автомобилей
был в значении «Stop».
В нашей модели светофоры будут обмениваться сообщениями «Автомобили» и
«Пешеходы». Мы будем использовать метод fireEvent (), который должен вызываться в
том стейтчарте, которому предназначено сообщение.
В t5 в поле «Действие» вставьте команду Для_пешеходов.fireEvent("ПЕШЕХОДЫ"), в
поле t11 вставьте Для_автомобилей.firеЕvеnt("АВТОМОБИЛИ") – рис.4
Рисунок 4
12)Для срабатывания перехода в t12 в поле «Происходит»: При получении сообщения, «Тип
сообщения»:String, «Осуществлять переход»: Если сообщение равно введите
"ПЕШЕХОДЫ" (как на рис.4).
13)Аналогично в t6 введите "АВТОМОБИЛИ".
14)На изображении светофора автомобиля дорисуйте светофор для пешеходов с двумя
сигналами: красной надписью СТОЙТЕ и зеленой ИДИТЕ. Аналогично цветам создайте
два параметра СТОЙТЕ и ИДИТЕ.
15)Запустите модель, проверьте работу светофоров.
Дополнительное задание (*):
16)Измените модель таким образом, чтобы частота мигания зеленого света регулировалась с
помощью слайдера
| Гарантия на работу | 1 год |
| Средний балл | 4.54 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |