d знаходиться в черзі на відчалювання. Шторми немає n", id, type); break; 8: printf ("Танкер №% ld типу% d відчалює n", id, type ); break; 9: printf ("Танкер №% ld типу% d знаходиться в дорозі n", id, type); break;
}
} Tanker4 :: run ()
{(state == 9) to_arrival -;
// Танкер прибув з Великобританії і повідомляє про це буксиру (to_arrival == 0) ((Tug *) t) -> Arrival_Sea (this);
}
// У початковому стані буксир вільний, черги порожні :: Tug () {_arrival = get_uniform (arr_median, to_sStart = 1; _sEnd = -1;
} Tug :: choice () {
// Черга на причалювання не порожня, їй - пріоритет (que_inLength> 0) {_in = time_path; _inLength -; = queue_in-> Data ();// голову черзі - на обслужіваніе_in = queue_in-> Next ();// просування черги
}
// Заявок на причалювання немає, а на відчалювання - естьif
};
}
Tug :: stormStart () {_sStart = -1; _sEnd = get_uniform (storm_median, storm_offset);
}
} Tug :: Arrival_Sea ()// прибуття танкера типів 1,2,3
{_arrival = get_uniform (arr_median, arr_offset); + +; * ptr = new Tanker ();// створюємо новий танкер
// Шторми немає, буксир вільний, танкер відразу йде на
}
// Танкер ставиться в очередь_inLength + +; * ptr1 = new ListNode (ptr, NULL); (queue_in == NULL) queue_in = ptr1; ListAdd (queue_in, ptr1);
// Призначення танкера номери стану в залежності від наявності шторму (to_sEnd> 0) ptr-> state = 1; ptr-> state = 2;;
} Tug :: Arrival_Sea (Tanker4 * t) {+ +;> to_arrival = -1; ((to_sEnd == -1) && (serving == NULL)) {= t; _in = time_path;> state = 3;;
} _inLength + +; * ptr1 = new ListNode (t, NULL); (queue_in == NULL) queue_in = ptr1; ListAdd (queue_in, ptr1); ( to_sEnd> 0) t-> state = 1; t-> state = 2;;
} Tug :: Arrival_coast (Tanker * t)// прибуття танкера на відчалювання
{((to_sEnd == -1) && (serving == NULL))// шторму немає, буксир вільний
{= t; _out = time_path;> state = 8;;
} _outLength + +; * ptr1 = new ListNode (t, NULL); (queue_out == NULL) queue_out = ptr1; ListAdd (queue_out, ptr1); ( to_sEnd> 0) t-> state = 6; t-> state = 7;;
} Tug :: Departure () {_out = -1;
// Фіксація часу перебування в порту відбуває танкера (sojourn, "% .3 f n", (float) serving-> minutes/60); + +;
// Перерахунок середнього часу пребиванія_Ave = s...