kate308 | Дата: Четверг, 05.06.2014, 14:25 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
| PROGRAM smo; {$APPTYPE CONSOLE}
uses SysUtils;
TYPE CHANNEL = (FREE, CLAIM1, CLAIM2); TIME = word; INTENSITY = word; STATISTICS = word;
VAR CHANNEL1, CHANNEL2 : CHANNEL; _T_, t, tc1, tc2 : TIME; l1, l2, n1, n2 : INTENSITY; served1, not_served1, served2, not_served2, S : STATISTICS; M,N:INTEGER; FUNCTION W(t : TIME; l : INTENSITY) : boolean; Begin if random < l/60 then W := TRUE else W := FALSE; End;
FUNCTION F(t : TIME; n : INTENSITY) : TIME; Begin F := t +round(60/(n)); End; BEGIN write('vvedite intensivnost postupleniya zayavok 1 kanala- l1: '); readln(l1); write('vvedite intensivnost lyambda 2 kanala- l2: '); readln(l2); write('vvedite intensivnost obsluzhivaniya 1 kanala- n1: '); readln(n1); write('vvedite intensivnost obsluzhivaniya 2 kanala- n2: '); readln(n2); REPEAT randomize; CHANNEL1 := FREE; CHANNEL2 := FREE; served1 := 0; not_served1 := 0; served2 := 0; not_served2 := 0; write('Vvedite vremya issledovaniya SMO - Т: '); readln(_T_); repeat if tc1 = t then begin if CHANNEL1 = CLAIM1 then inc(served1) else inc(served2); CHANNEL1 := FREE; writeln('Canal1 vipolnil zayavku '); end; if tc2 = t then begin if CHANNEL2 = CLAIM1 then inc(served1) else inc(served2); CHANNEL2 := FREE; end; if W(t,l1) then begin if CHANNEL1 = FREE then begin CHANNEL1 := CLAIM1; tc1 := F(t,n1); end else if CHANNEL2 = FREE then begin CHANNEL2 := CLAIM1; tc2 := F(t,n1); writeln('Canal2 prinyal zayavku'); end else if CHANNEL1 = CLAIM2 then begin CHANNEL1 := CLAIM1; tc1 := F(t,n1); inc(not_served2); end else if CHANNEL2 = CLAIM2 then begin CHANNEL2 := CLAIM1; tc2 := F(t,n1); inc(not_served2); writeln('Canal2 prinyal zayavku1 vmesto zayavki2'); end else begin inc(not_served1); writeln('zayavka1 ne obsluzhena'); end; end; if W(t,l2) then begin writeln('Postupila zayavka2'); if CHANNEL1 = FREE then begin CHANNEL1 := CLAIM2; tc1 := F(t,n2); writeln('Canal1 prinyal zayavku2'); end else if CHANNEL2 = FREE then begin CHANNEL2 := CLAIM2; tc2 := F(t,n2); end else begin inc(not_served2); end; end; inc(t); until _T_ = t; S := served1 + not_served1 + served2 + not_served2; writeln('vremya raboti SMO ',_T_); writeln('obsluzheno canalom1: ' ,served1); writeln('obsluzheno canalom2: ',served2); writeln('Postupilo zayavok : ',S); writeln('Obsluzheno zayavok : ',served1+served2); writeln('Ne Obsluzheno zayavok : ',not_served1+not_served2); writeln('Absolutnaya propusknaya sposobnost sistemi : ',(served1+served2)/_T_:2:3); writeln('Veroyatnost otkaza : ',(not_served1+not_served2)/S*100:2:1,'%'); writeln('Otnositelnaya propusknaya sposobnost sistemi: ',(served1+served2)/S:2:3); readln; END.
|
|
| |
diamFC | Дата: Четверг, 05.06.2014, 15:14 | Сообщение # 2 |
Полковник
Группа: Администраторы
Сообщений: 207
Статус: Offline
| Вот блок-схема. Полностью вся в архиве
|
|
| |