Рис. 7 После запуска системы мы делаем для каждого автобуса проверку на необходимость запуска
Если время, прошедшее с последнего прибытия на станцию, соответствует времени, необходимому на остановку и путь, то мы обозначаем, что автобус прибыл на следующую станцию и выводим соответствующее сообщение. Если станция, на которую автобус прибыл, это n- я станция, то направление пути задаётся обратное. Если станция, на которую автобус прибыл - станция "№1", то направление пути задаётся прямое. Если станция прибытия- "№1", то выполняются следующие действия:
1. Если время одной смены меньше времени, прошедшего сначала смены, к которому мы прибавляем теоретическое время всего пути, то машинист меняется, а значит переменная, обозначающая номер машиниста на данном автобусе, увеличивается на один и время на смене приравнивается нулю.
2. Если время на смене больше времени, через которое можно уйти на перерыв или равно ему и время на смене, из которого вычли время последнего круга, меньше времени до перерыва (что означает, что на предыдущем круге машинисту рано было уходить на перерыв, а сейчас уже можно), то машинист уходит на перерыв.
3. Если текущее время больше суммы времени начала и времени работы всей системы или равно ей, то поезд отправляется обратно в деп
Как только данная процедура закончит свою работу для одного автобуса, она будет выполнять его для следующего и так до того момента, пока не пройдётся по каждому и не достигнет последнего. Далее запускается другая процедура. Она, в случае, если поле "OnWay" у абсолютно всех автобусов имеет значение "false", будет присваивать переменной "Working" значение "false". Это позволит нам выйти из цикла. Далее, в самом конце цикла мы присваиваем переменой "TimeNow" значение, равное значению этой переменной, увеличенной на одну сотую.
Полный алгоритм метода класса PoezdType, проверяющего соответствие текущего времени с временем каких-либо событий представлен далее, на Рисунках 8 и 9. алгоритм расписание линейный путь
Таким образом, в ходе данной работы был составлен перечень объектов и параметров, которые необходимо учитывать при построении расписания. На их основании был составлен алгоритм действий, позволяющий составить расписание, основанное на моделировании работы транспортного пути на основании заданных значений переменных.
Рис. 8 Первая половина блок-схемы алгоритма
Рис. 9 Вторая половина блок-схемы алгоритма