Модель здравоохранения 13. Добавление самой системы здравоохранения.
Запись от anaschu размещена 22.05.2026 в 14:56
Показов 2049
Комментарии 0
|
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. Первое — НазначаемИзначальноеЗдоровье. Оно срабатывает один раз через час после старта симуляции. В его коде цикл проходит по всем работникам и каждому назначает случайные здоровье и продуктивность через triangular(0.3, 1.3, 0.8). Без этого события все работники стартуют с нулевыми значениями. Второе событие — ЕстественноеСнижениеЗдоровья. Оно циклическое, срабатывает каждые 400 часов. Когда система здравоохранения не работает, здоровье каждого работника уменьшается на 0.05. Условие проверяем через переменную РаботаетЛиСистемаЗдравосохранения — если false, снижаем здоровье. Это имитирует естественный износ организма без медицинской поддержки. Третье событие — ПрограммаЗдравосохранения. Тоже циклическое, срабатывает каждые 800 часов — вдвое реже снижения. Когда система здравоохранения работает, каждый работник восстанавливает 0.2 здоровья. Баланс получается такой: без здравоохранения здоровье медленно падает, с ним — постепенно растёт. Переключатель РаботаетЛиСистемаЗдравосохранения позволяет в любой момент симуляции включить или выключить эту программу и посмотреть, как это влияет на коллектив. Четвёртое событие — суммаЗарплатИБольничныхСобытие. Оно срабатывает каждый час и обновляет финансовые показатели в Main, суммируя данные по всем работникам. Важно: перед циклом обнуляем обе суммы, а внутри цикла используем +=. Иначе суммы будут расти бесконечно и давать неверные цифры. Теперь рабочий график. Добавляем в Main расписание перерывов. Это объект типа Schedule с типом да/нет и длительностью Неделя. Настраиваем три интервала для понедельника-пятницы: ночь с 0:00 до 9:00, обед с 13:00 до 14:00 и вечер с 18:00 до 23:59. Для субботы и воскресенья добавляем один интервал на весь день с 0:00 до 23:59. Все эти интервалы имеют значение "да", то есть перерыв. В рабочее время расписание возвращает false — и именно это условие используем при начислении зарплаты в событии СуммированиеЗарплат внутри класса Работник. В следующем, финальном посте соберём всё вместе, запустим модель и разберём как читать результаты. |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


