используется для моделирования систем массового
readln(slovo); n:=length(slovo) ;
top:=0; p:=true; skob:=''; i:=1;
while (i<=n)and(p) do
begin if (slovo[i]='(') or (slovo[i]='[') or (slovo[i]='(') then begin top:=top+l; store[top]:=slovo[i];
skob:=skob+slovo[i] end;
if slovo(i]='}' then begin x:=store(top];
if x<>'(' then p:=false
else begin top:=top-l; skob:=skob+slovo{i] end;
end;
if slovo[i]=']' then begin x:=store[top] ;
if x<>'[' then p:=false
else begin top:=top-l; skob:=skob+slovo[i] end;
end;
if slovo(i]=')' then begin x:=store(top] ;
if x<>'(' then p:=false
else begin top:=top-l; skob:=skob+slovo[i] end;
end;
i:=i+l end;
writeln(skob); if top=0 then write('выражение
правильное') else write('выражение
неправильное');
readln
end.
Структура данных «очередь» используется для моделирования систем массового оослужнвания: очереди людей в магазинах, транспортных потоков, производственных линий и т.п. Рассмотрим модельную ситуацию с формированием очереди в ком-нибудь учреждении сферы обслуживания, например, в банке.
Пусть задана скорость поступления клиентов в банк и известна скорость обслуживания. Вместо скорости поступления клиентов будем задавать вероятность р их появления в единицу времени. За скорость обслуживания примем число v, соответствующее времени обслуживания одного клиента. Для простоты примем в качестве массива данных о клиентах банка числовой массив со случайными числами из интервала 1..100. Для формирования очереди достаточно ввести две переменные, которые указывают на начало и конец списка данных.
Следующая программа демонстрирует динамику обслуживания очереди.
Программа 38
program bank;
uses crt;
type item = integer;
var qq:array[l..100] of item; i, t, v, L, R; integer;
р, x: real; st: string[10];
begin
(*начальное состояние очереди*)
qq[l]:=random(100); qq[2]:=random(100); qq[3]:=random(100);
L:=l; R:=3; р:0,6 v:=2; randomize; t:=0;
repeat
t:=t+l; x:=random; if x<p then begin R:=R+1;
qq[R]:=random(100);
end;
if (t mod v=0) then L:=L+1;
until keypressed or (R>100) ;
(*вывод состояния очереди на момент прерывания*) for i:=L to R
do writeln(qq(i]);
readin;
end.
Содержание Назад Вперед