Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ.doc
Скачиваний:
77
Добавлен:
18.12.2018
Размер:
632 Кб
Скачать
☆

2.3 Обобщенная схема моделируемого алгоритма (q – схема)

В данной схеме, изображенной на рисунке 4, предусмотрены следующие обозначения:

П1 – регистратура лечебно-профилактического центра (прибор обслуживания);

W1 – интервал времени между поступлением пациентов tприх1 (входные данные);

U1 – время работы окон, 8:00-20:00 (управляющие данные);

H1 – время ожидания пациентов tож1 (накопитель данных);

K1 – обслуживание пациентов в первом окне. Время обслуживания tобсл1 (канал обслуживания);

K2 – обслуживание пациентов в втором окне. Время обслуживания tобсл2 (канал обслуживания);

Y1 – обслуженные пациенты. 1 окно (выходные данные);

Y2 – обслуженные пациенты. 2 окно (выходные данные);

Y3 – пациенты, недождавшиеся обслуживания. (выходные данные);

U1

К1

W1

Y1

H1

Y2

К2

П1

Y3

Рисунок 4 – Q-схема

2.4 Детальная схема моделируемого процесса

Детальная схема моделируемого процесса представлена на рисунке 5. В ней рассмотрены процессы, происходящие в системе с уточнением входных данных.

Начало

Наличие свободного окна

Нет

Да

1 окно

2 окно

Выбор окна

Да

Нет

3

2

2

3

Нет

Да

Рисунок 5 – Детальная схема моделируемого процесса

2.5 Логическая схема (алгоритм работы) моделируемого процесса

Данная логическая схема (рисунок 6) представляет собой рассмотрение последовательности процессов, происходящих в системе. Поступление заявки на оказание услуг будет происходить до тех пор, пока будет работать регистратура, с закрытием регистратуры, будут завершены процессы в системе.

Начало

Наличие свободного окна

Нет

Да

1 окно

2 окно

Выбор окна

2

2

Да

Нет

Нет

Да

Рисунок 6 – Логическая схема моделируемого процесса

2.6 Блок-схема программы

Да

Нет

o:=trunc(t*(i-m1-m2)); exec:=trunc(t*(m1+m2));

o:=0;

exec:=trunc( t*i );

p1:= trunc((2*60)*i1+(3.5*60)*i2+(0.5*60)*i3 );

p2:= trunc( (4*60)*i3+(2*60)*i4 );

TimePeriod(2*60,i1,ot,et);

e:=e+et;

o:=o+ot;

TimePeriod(trunc(3.5*60),i2,ot,et);

e:=e+et;

o:=o+ot;

TimePeriod(trunc(0.5*60),i3,ot,et);

e:=e+et;

o:=o+ot;

TimePeriod(4*60,i3,ot,et);

e:=e+et;

o:=o+ot;

TimePeriod(2*60,i4,ot,et);

e:=e+et;

o:=o+ot;

o:=trunc( o/4 );

Tobs1:=6+random(4);

Tobs2:=4+random(1);

T:=3+random(2)+4+random(2)+4+random(3);

Tcr1:=T/3;

T:=4+random(3)+12+random(2);

Tcr2:=T/2;

Memo1.LineS.Add('Интенсивность обслуживания пациентов в 1 окне:'+floattostr(1/Tobs1));

Memo1.LineS.Add('Интенсивность обслуживания пациентов в 2 окне:'+floattostr(1/Tobs2));

Memo1.LineS.Add('Интенсивность поcтупления пациентов в 1 смене:'+floattostr(1/Tcr1));

Memo1.LineS.Add('Коэффициент загрузки для 1-го окна в 1 смену:'+floattostr(Tobs1/Tcr1));

Memo1.LineS.Add('Коэффициент загрузки для 2-го окна во 1 смену:'+floattostr(Tobs2/Tcr1));

Memo1.LineS.Add('Обслужено за 1 смену:'+floattostr(p1));

Memo1.LineS.Add('');

Memo1.LineS.Add('Интенсивность поcтупления пациентов во 2 смене:'+floattostr(1/Tcr2));

Memo1.LineS.Add('Коэффициент загрузки для 1-го окна в 2 смену:'+floattostr(Tobs1/Tcr2));

Memo1.LineS.Add('Коэффициент загрузки для 2-го окна во 2 смену:'+floattostr(Tobs2/Tcr2));

Memo1.LineS.Add('Обслужено за 2 смену:'+floattostr(p2));

Memo1.LineS.Add('Средняя длина очереди:'+floattostr(o));

Рисунок 7 – Блок–схема программы