Шпаргалка: Моделирование работы. Simula
ref (UPD) UPD1; comment УПД;
ref (COMP) COMP1; comment пара мини-ЭВМ;
real array std (1:10); comment число студентов в i-м интервале;
real array tim (1:9); comment интервалы гистограммы;
comment описание работы генератора, имитирующего появление студентов;
PROCESS class GENER;
begin
CREAT: activate new STUDENT; comment студент подходит к машинному залу;
hold(randint(5,11,M)); comment интервал перед приходом следующего;
goto CREAT;
end GENER;
comment описание действий студента;
PROCESS class STUDENT;
begin
integer vyb, comment возможность выбора работы: на УПД и ЭВМ (3) или только
на ЭВМ (1 и 2);
rep, comment возможность повтора работы (5);
wat; comment время, до которого студент может ждать в очереди;
integer tm; comment фактическое время ожидания или работы;
vyb:=randint(1,3,P); comment если 3, то работа на УПД и ЭВМ;
rep:=randint(1,5,P); comment если 5, то повторить работу;
wat:=time+randint(13,17,P); comment время максимального ожидания;
tm:=time; comment засечь время;
into(QUEUE); comment встать в очередь в машинный зал;
if (QUEUE.cardinal>=MAX) then comment если число людей в очереди больше,
чем ранее;
MAX:=QUEUE.cardinal; comment записать новое значение;
while MZCap>=4 do begin comment пока в машинном зале нет мест;
hold(0.1); comment подождать 6 секунд;