y">// Обхід всіх хворих і перерахунок їх поточних оцінок
for (i = 0; i
ptr-> Data () -> change_mark ();
ptr = ptr-> Next ();
}
ptr = ill;
// Обхід всіх хворих і виписка одужавших
while (ptr! = NULL) {
if (ptr-> Data () -> current_mark> healthy)// якщо не оголосити клас
// Палата іншому класу
// Пацієнт, компілятор видасть
// помилку на цій рядку
{
ptr1 = ptr-> Next ();
departure (ptr);
ptr = ptr1;
}
else ptr = ptr-> Next ();
}
// прибуття двох нових хворих
for (i = 0; i <2; i + +) {
arrival ();
}
ptr = ill;
// Обхід всіх хворих і інкремент числа днів, проведених в палаті
for (i = 0; i
ptr-> Data () -> days_in_hosp + +;
ptr = ptr-> Next ();
}
// Обчислення поточного завантаження і запис у файл
ro_val = ((float) (this-> current_number))/volume;
fprintf (ro, "% f n", ro_val);
// перерахунок середнього завантаження. Число днів вдвічі менше total
ro_aver = ro_aver * (1-2.0/total) +2.0 * ro_val/total;
}
void Palata :: arrival () {
// int j;
Pacient * p = new Pacient (0);// створення нового об'єкту класу Пацієнт
ListNode * ptr;
int i;
total + +;
if (current_number
{
ListNode * lp = new ListNode (p, NULL);// створення нового
// елемента списку
// пацієнтів
if (current_number == 0) ill = lp;// якщо це перший пацієнт,
// він стає головою списку
else ListAdd (ill, lp);// інакше - додавання нового елемента
// до списку
current_number + +;
entered + +;
return;
}
if (p-> current_mark> border1)// вільних місць у палаті немає,
// початкова оцінка перевищує 41 бал
{