oj_Ave * (1-1.0/completed) + (float) (serving-> minutes)/completed;
// Відбуває танкер типів
// Об'єкт для неіменованого заявки видаляється з сістемиserving;
}// відбуває танкер четвертого типу
// Відправляємо танкер четвертого типу до Великобританії
((Tanker4 *) serving) -> to_arrival = get_uniform (((Tanker4 *) serving) -> median_path, ((Tanker4 *) serving) -> offset_path);
// Скидання часу перебування в порту> minutes = 0;
} = NULL;
// Поки відчалювали, почався шторм. Буксир відпочиває (to_sEnd> 0) return;
// Шторми немає. Вибираємо наступний танкер на обслуговування ();
} Tug :: Arrival () {_in = -1;
// Повідомляємо в порт про прибуття танкера на навантаження
((Port *) p) -> Arrival (serving); = NULL;
// Поки причалювали, почався шторм. Буксир відпочиває (to_sEnd> 0) return; ();
} Tug :: run () {k; (to_sStart> 0) to_sStart -; (to_sStart == 0) stormStart (); (to_sEnd> 0) to_sEnd -; (to_sEnd == 0) stormEnd (); (to_arrival> 0) to_arrival -; (to_arrival == 0) Arrival_Sea (); (to_in> 0) to_in -; (to_in == 0) Arrival (); (to_out> 0) to_out -; (to_out == 0) Departure (); * ptr = queue_in;
// Інкремент часу перебування для всіх танкерів, які в даний момент// контролює буксир (ptr! = NULL) {> Data () -> minutes + +; = ptr-> Next () ;
} = queue_out; (ptr! = NULL) {> Data () -> minutes + +; = ptr-> Next ();
} (serving! = NULL) serving-> minutes + +;
// Запис статистики - один раз на годину ((total +1)% 60 == 0) {= (total +1)/60; (q_tugIn, "% d n", que_inLength); _tugInAve = q_tugInAve * (1-1.0/k) + ((float) que_inLength)/k; (q_tugOut, "% d n", que_outLength); _tugOutAve = q_tugOutAve * (1-1.0/k) + ((float) que_outLength)/k;
} (serving! = NULL) ro_tug + +;
} Tug :: putPort (Port * a) {= a;
}
Tug :: Print () {(to_sStart == -1) ("Буксир не працює через шторм n"); if (to_in> 0) ("Буксир допомагає причалити танкера типу% d n ", serving-> type); if (to_out> 0) (" Буксир допомагає відчалити танкера типу% d n ", serving-> type); (" Буксир простоює, так як нема кого обслуговувати n ");
}
// Конструктор для класу Port :: Port () {i; = NULL; = new Tanker * [volume]; _serve = new int [volume]; (i = 0; i
} _length = 0;
}
// Деструктор для класу Port :: ~ Port () {[] to_serve; [] serving;
}
Port :: Ar...