Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет по 3 лабе.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
79.22 Кб
Скачать

Министерство образования и науки РФ

ФГБОУ ВПО «Восточно-Сибирский государственный университет технологий и управления»

Электротехнический факультет

Кафедра систем информатики

Дисциплина «Автоматное программирование»

ОТЧЕТ

по лабораторной работе № 3

на тему “Решение задачи с использованием ООП с явным выделением состояний”

Выполнил: студент гр.Б-662

Жамбалов Э.Б.

Проверила: Хаптахаева Н.Б.

Улан-Удэ

2015

Цель работы:

Словесное описание системы

«Умный светофор» - светофор, меняющий свое состояние в случае присутствия пешеходов и автомобилей у пешеходного перехода. АС – режим светофора для автомобилей, ПС – режим светофора для пешеходов.

По умолчанию в АС горит зеленый, а в ПС горит красный, т.к. останавливаться перед светофором людям намного легче, чем автомобиля. Таймер отсчитывает каждые 5 секунд, по их истечению происходит проверка. Сначала идет проверка на наличие пешеходов, если их нет, то зеленый продолжает гореть. Если появляется пешеход, то зеленый в АС мигает, затем гаснет, а вместо него загорается сначала желтый, затем красный, в ПС загорается зеленый, позволяя идти пешеходам.

Пешеходы переходят через дорогу. Если в течение 5 секунд пешеходов не появилось, то в ПС мигает зеленый, затем загорается красный, а в АС загорается зеленый, позволяя ехать машинам.

Должна быть построена модель для решения задачи “моделирование работы «умного» светофора”. Лабораторная работа должна быть выполнена в среде UniMod.

  1. Спроектировать систему в соответствие с принципами ООП с явным выделением состояний.

  2. Описать разработанную модель с использованием нотации автоматного программирования. Схемы связей и диаграммы переходов строить в UniMod.

  3. Реализовать проект в среде UniMod: сгенерировать код и запрограммировать входные и выходные воздействия.

Ход работы:

  1. События:

    1. е1 – Нажата кнопка «добавить машину»;

    2. е2 –Нажата кнопка «Добавить пешехода»;

    3. е3 – Выключение светофора;

  2. Входные воздействия:

    1. x1 – Есть ли в очереди пешеходы;

    2. x2 – Есть ли в очереди машины;

    3. x3 – Должен ли поменяться цвет светофора;

  3. Выходные воздействия:

    1. z0 – Горит зеленый для машин;

    2. z1 – Мигает зеленый для машин;

    3. z2 – Горит желтый для машин;

    4. z3 – Горит красный для машин;

    5. z4 ­– Горит зеленый для пешеходов;

    6. z5 – Мигает зеленый для пешеходов;

    7. z6 – Горит красный для пешеходов и красный /желтый для машин;

    8. z8 – Появление новых машин;

    9. z9 – Появление новых пешеходов.

Рисунок 1 – схема связей;

Рисунок 2 – Граф автомата А1

Реализация программы

Программа реализована в среде Unimod на языке Java.

13:03:11,703 INFO [Run] Start event [e101] processing. In state [/A1:Top]

13:03:11,703 INFO [Run] Transition to go found [s1#зеленый АС##true]

13:03:11,703 INFO [Run] Start on-enter action [o1.z0] execution

Горит зеленый для машин

Нажимайте 1, для добавления автомобиля или 2 для добавления пешехода; q для выключения светофора:

13:03:11,706 INFO [Run] Finish on-enter action [o1.z0] execution

13:03:11,706 DEBUG [Run] Try transition [зеленый АС#зеленый АС#e101#true]

13:03:11,708 INFO [Run] Transition to go found [зеленый АС#зеленый АС#e101#true]

13:03:11,708 INFO [Run] Start on-enter action [o1.z0] execution

Горит зеленый для машин

Нажимайте 1, для добавления автомобиля или 2 для добавления пешехода; q для выключения светофора:

13:03:11,708 Info [Run] Finish on-enter action [o1.Z0] execution

13:03:11,708 INFO [Run] Finish event [e101] processing. In state [/A1:зеленый АС]

1

13:03:15,146 INFO [Run] Start event [e1] processing. In state [/A1:зеленый АС]

13:03:15,147 DEBUG [Run] Try transition [зеленый АС#зеленый АС#e1#true]

13:03:15,147 INFO [Run] Transition to go found [зеленый АС#зеленый АС#e1#true]

13:03:15,147 INFO [Run] Start output action [o1.z8] execution

1-я машина ждет

13:03:15,147 INFO [Run] Finish output action [o1.z8] execution