Êóðñîâàÿ ðàáîòà: Ðàçðàáîòêà ñðåäñòâ ìîäåëèðîâàíèÿ ñèñòåì
GENERATE 10
L3 QUEUE 1
SEIZE B1
DEPART 1
ADVANCE (EXPONENTIAL(1,0,2.1))
RELEASE B1
L1 QUEUE 1
SEIZE B2
DEPART 1
ADVANCE (EXPONENTIAL(1,0,6))
RELEASE B2
TRANSFER 0.9,L2,L1
L2 QUEUE 1
SEIZE B3
DEPART 1
ADVANCE (EXPONENTIAL(1,0,10))
RELEASE B3
TRANSFER 0.9,L4,L3
L4 TERMINATE 1
START 1000
7
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ÑÌÎ ñ âåðîÿòíîñòíûì óçëîì
Â2
Â1 Â4
Â3
Ðèñóíîê
7 Óñëîâíîå ãðàôè÷åñêîå îáîçíà÷åíèåîäíîêàíàëüíîé ðàçîìêíóòîé ñìî ñ
âåðîÿòíîñòíûì óçëîì
Ñèñòåìà âêëþ÷àåò: îäíîêàíàëüíûå óñòðîéñòâà (B1, B2, B3, B4).
Ñèñòåìà îáñëóæèâàåò âõîäíîé ïðîöåññ îäíîãî òèïà.
Çàêîí ïîñòóïëåíèÿ çàÿâîê – ñëó÷àéíûé.
 ïðîöåññå îáñëóæèâàíèÿ çàÿâêè ïîñòóïàþò:
- íà óçåë B1;
- èç óçëà Â1 ñ âåðîÿòíîñòüþ 0,3 íà óçåë Â2, ñ âåðîÿòíîñòüþ 0,7 íà óçåë
Â3;
- èç óçëà Â2 è óçëà Â3 íà óçåë Â4;
- ïîñëå ïðîõîæäåíèÿ óçëà Â4 îáñëóæèâàíèå çàâåðøàåòñÿ.
Âðåìÿ îáñëóæèâàíèÿ çàÿâîê íà ðàñïðåäåëåíî ïî – ñëó÷àéíîìó çàêîíó.
GENERATE 10,3
QUEUE 1
SEIZE B1
DEPART 1
ADVANCE 8,4
RELEASE B1
TRANSFER 0.3,L_2,L_1
L_1 QUEUE 2
SEIZE B2
DEPART 2
ADVANCE 6,4
RELEASE B2
QUEUE 4
SEIZE B4
DEPART 4
ADVANCE 6,4
RELEASE B4
L_2 QUEUE 3
SEIZE B3
DEPART 3
ADVANCE 8,6
RELEASE B3
QUEUE 4
SEIZE B4
DEPART 4
ADVANCE 6,4
RELEASE B4
TERMINATE 1
START 10000
8
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ÑÌÎ ñ äâóìÿ âõîäíûìè ïîòîêàìè
B1
Ðèñóíîê
8 Óñëîâíîå ãðàôè÷åñêîå îáîçíà÷åíèåîäíîêàíàëüíîé ðàçîìêíóòîé ñìî ñ äâóìÿ
âõîäíûìè ïîòîêàìè
Ñèñòåìà âêëþ÷àåò: îäíîêàíàëüíîå óñòðîéñòâî (B1).
Ñèñòåìà îáñëóæèâàåò âõîäíûå ïðîöåññû äâóõ òèïîâ.
Çàêîí ïîñòóïëåíèÿ çàÿâîê íà ïåðâîì è íà âòîðîì êàíàëå – ñëó÷àéíûé.
 ïðîöåññå îáñëóæèâàíèÿ çàÿâêè ïîñòóïàþò:
- íà óçåë B1;
- ïîñëå ïðîõîæäåíèÿ óçëà B1
îáñëóæèâàíèå çàâåðøàåòñÿ.
Âðåìÿ îáñëóæèâàíèÿ çàÿâîê ðàñïðåäåëåíî ïî – ñëó÷àéíîìó çàêîíó.
GENERATE 30,2
QUEUE OHER1
SEIZE B1
DEPART OHER1
ADVANCE (Exponential(1,0,2.5))
RELEASE B1
TERMINATE
GENERATE 15,5.5
QUEUE OHER2
SEIZE B1
ADVANCE (Exponential(4,0,2.5))
DEPART OHER2
RELEASE B1
TERMINATE 1
START 1000
9
ÌíîãîêàíàëüíàÿçàìêíóòàÿÑÌÎ
B1
Â2
Ðèñóíîê
9Óñëîâíîå ãðàôè÷åñêîå îáîçíà÷åíèåìíîãîêàíàëüíîé çàìêíóòîé ñìî
Ñèñòåìà âêëþ÷àåò: îäíîêàíàëüíûå óñòðîéñòâà (B1, B2) è ìíîãîêàíàëüíîå óñòðîéñòâî.
Ñèñòåìà îáñëóæèâàåò âõîäíîé ïðîöåññ îäíîãî òèïà.
Çàêîí ïîñòóïëåíèÿ çàÿâîê – ýêñïîíåíöèàëüíûé.
 ïðîöåññå îáñëóæèâàíèÿ çàÿâêè ïîñòóïàþò:
- íà ìíîãîêàíàëüíîå óñòðîéñòâî;
- ñ ìíîãîêàíàëüíîãî óçåë Â1, åñëè Â1 çàíÿò, òî íà óçåë Â2;
- èç óçëà Â1 è óçëà Â2 íà ìíîãîêàíàëüíîå;
Âðåìÿ îáñëóæèâàíèÿ çàÿâîê íà ðàñïðåäåëåíî ïî – ýêñïîíåíöèàëüíîìó çàêîíó.
NAK STORAGE 3
GENERATE (Exponential(1,0,10))
L1 ADVANCE (Exponential(4,0,7))
ENTER NAK
TRANSFER BOTH,KAN1,KAN2
KAN1
SEIZE B1
QUEUE 1
ADVANCE
(EXPONENTIAL(8,0,4))
RELEASE
B1
DEPART
1
TRANSFER ,COME
KAN2
SEIZE B2
QUEUE
2
ADVANCE
1,0
RELEASE
B2
DEPART
2
COME LEAVE NAK
ADVANCE (Exponential(1,0,2))
TRANSFER ,L1
GENERATE 480
TERMINATE 1
START 1
10 Ìíîãîêàíàëüíàÿ ðàçîìêíóòàÿ ÑÌÎ
Â1
B2
Ðèñóíîê10
Óñëîâíîå ãðàôè÷åñêîå îáîçíà÷åíèå ìíîãîêàíàëüíîé ðàçîìêíóòîé ñìî
Ñèñòåìà âêëþ÷àåò: îäíîêàíàëüíûå óñòðîéñòâà (B1, B2) è ìíîãîêàíàëüíîå óñòðîéñòâî.
Ñèñòåìà îáñëóæèâàåò âõîäíîé ïðîöåññ îäíîãî òèïà.
Çàêîí ïîñòóïëåíèÿ çàÿâîê – ýêñïîíåíöèàëüíûé.
 ïðîöåññå îáñëóæèâàíèÿ çàÿâêè ïîñòóïàþò:
- íà ìíîãîêàíàëüíîå óñòðîéñòâî;
- ñ ìíîãîêàíàëüíîãî íà óçåë Â1, åñëè Â1 çàíÿò, òî íà óçåë Â2;
- ïîñëå ïðîõîæäåíèÿ óçëà Â1 è óçëà Â23 îáñëóæèâàíèå çàêàí÷èâàåòñÿ;
Âðåìÿ îáñëóæèâàíèÿ çàÿâîê íà ðàñïðåäåëåíî ïî – ýêñïîíåíöèàëüíîìó çàêîíó.
NAK STORAGE 3
GENERATE (Exponential(1,0,10))
ENTER NAK
TRANSFER BOTH,KAN1,KAN2
KAN1 SEIZE
B1
QUEUE 1
ADVANCE
(EXPONENTIAL(8,0,4))
RELEASE
B1
DEPART
1
TRANSFER
,COME
KAN2
SEIZE B2
QUEUE
2
ADVANCE
1,0
RELEASE
B2
DEPART
2
COME LEAVE NAK
ADVANCE (Exponential(1,0,2))
TERMINATE 1
START 1000
Ïðèëîæåíèå Á
2
Îäíîêàíàëüíàÿ
çàìêíóòàÿ ÑÌÎ ñ îäíèì óñòðîéñòâîì
Ïîëó÷åííûé
îò÷¸ò:
GPSS
World Simulation Report - Untitled Model 1.2.1
Wednesday, December 15, 2010 10:09:06
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480.000 10 1 0
NAME VALUE
B1 10001.000
L1 2.000
OHER 10000.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 47 0 0
L1
2 ADVANCE 232 1 0
3 QUEUE 231 45 0
4 SEIZE 186 0 0
5 DEPART 186 0 0
6 ADVANCE 186 1 0
7 RELEASE 185 0 0
8 TRANSFER 185 0 0
9 GENERATE 1 0 0
10 TERMINATE 1 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
186 0.912 2.353 1 34 0 0 0 45
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OHER
46 45 231 15 18.194 37.807 40.432 0
CEC
XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
49 0 480.000 49 0 1
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
34
0 483.814 34 6 7
33 0 513.195 33 2 3
50 0 960.000 50 0 9
3
Îäíîêàíàëüíàÿ
çàìêíóòàÿ ÑÌÎ ñ íåñêîëüêèìè óñòðîéñòâàìè
Ïîëó÷åííûé
îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.2.1
Friday, December 10, 2010 10:30:48
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480.000 15 2 0
NAME VALUE
B1 10000.000
B2 10001.000
L1 2.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 48 0 0
L1
2 ADVANCE 115 2 0
3 QUEUE 113 0 0
4 SEIZE 113 0 0
5 DEPART 113 0 0
6 ADVANCE 113 1 0
7 RELEASE 112 0 0
8 QUEUE 112 44 0
9 SEIZE 68 0 0
10 DEPART 68 0 0
11 ADVANCE 68 1 0
12 RELEASE 67 0 0
13 TRANSFER 67 0 0
14 GENERATE 1 0 0
15 TERMINATE 1 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
113 0.571 2.426 1 48 0 0 0 0
B2
68 0.909 6.419 1 8 0 0 0 44
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
45 44 225 47 19.896 42.444 53.651 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
8
0 480.784 8 11 12
48 0 480.880 48 6 7
49 0 485.117 49 2 3
29 0 489.126 29 2 3
50 0 490.000 50 0 1
51 0 960.000 51 0 14
4
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ÑÌÎ ñ îäíèì óñòðîéñòâîì
Ïîëó÷åííûé îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.3.1
Wednesday, December 15, 2010 10:19:02
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100007.316 7 1 0
NAME VALUE
B1 10000.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 10000 0 0
2 QUEUE 10000 0 0
3 SEIZE 10000 0 0
4 DEPART 10000 0 0
5 ADVANCE 10000 0 0
6 RELEASE 10000 0 0
7 TERMINATE 10000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
10000 0.800 8.002 1 0 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
1 0 10000 6937 0.041 0.408 1.331 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
10001
0 100010.000 10001 0 1
5
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ÑÌÎ ñ íåñêîëüêèìè óñòðîéñòâàìè
Ïîëó÷åííûé îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.4.1
Wednesday, December 15, 2010 10:21:47
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 99971.786 12 2 0
NAME VALUE
B1 10000.000
B2 10001.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 10001 0 0
2 QUEUE 10001 0 0
3 SEIZE 10001 0 0
4 DEPART 10001 0 0
5 ADVANCE 10001 1 0
6 RELEASE 10000 0 0
7 QUEUE 10000 0 0
8 SEIZE 10000 0 0
9 DEPART 10000 0 0
10 ADVANCE 10000 0 0
11 RELEASE 10000 0 0
12 TERMINATE 10000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
10001 0.798 7.973 1 10001 0 0 0 0
B2
10000 0.600 5.995 1 0 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
3 0 20001 15110 0.101 0.504 2.060 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
10001
0 99974.589 10001 5 6
10002
0 99975.330 10002 0 1
6
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ÑÌÎ ñ îáðàòíîé ñâÿçüþ
Ïîëó÷åííûé îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.5.1
Wednesday, December 15, 2010 10:23:37
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 798179.384 7 1 0
NAME VALUE
B1 10000.000
L_1 3.000
L_2 7.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 79800 0 0
2 QUEUE 79800 32845 0
L_1
3 SEIZE 99679 1 0
4 ADVANCE 99678 0 0
5 RELEASE 99678 0 0
6 TRANSFER 99678 36954 0
L_2
7 TERMINATE 10000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
99679 1.000 8.007 1 46955 0 0 0 69799
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
79800 79800 79800 0 39916.720 399256.926 399256.926 0
CEC
XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
46955
0 469374.841 46955 3 4
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
79801
0 798181.975 79801 0 1
7
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ÑÌÎ ñ îáðàòíûìè ñâÿçÿìè è íåñêîëüêèìè óñòðîéñòâàìè
Ïîëó÷åííûé îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.6.1
Wednesday, December 15, 2010 10:26:07
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 607511.412 19 3 0
NAME VALUE
B1 10000.000
B2 10001.000
B3 10002.000
L1 7.000
L2 13.000
L3 2.000
L4 19.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 60751 0 0
L3
2 QUEUE 69769 0 0
3 SEIZE 69769 0 0
4 DEPART 69769 0 0
5 ADVANCE 69769 0 0
6 RELEASE 69769 0 0
L1
7 QUEUE 161335 59750 0
8 SEIZE 101585 0 0
9 DEPART 101585 0 0
10 ADVANCE 101585 1 0
11 RELEASE 101584 0 0
12 TRANSFER 101584 0 0
L2
13 QUEUE 10018 0 0
14 SEIZE 10018 0 0
15 DEPART 10018 0 0
16 ADVANCE 10018 0 0
17 RELEASE 10018 0 0
18 TRANSFER 10018 0 0
L4
19 TERMINATE 1000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
69769 0.242 2.109 1 0 0 0 0 0
B2
101585 1.000 5.980 1 38150 0 0 0 59750
B3
10018 0.166 10.062 1 0 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
59750 59750 241122 73236 29884.081 75293.505 108138.382 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
38150
0 607513.718 38150 10 11
60752
0 607520.000 60752 0 1
8
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ÑÌÎ ñ âåðîÿòíîñòíûì óçëîì
Ïîëó÷åííûé îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.7.1
Wednesday, December 15, 2010 10:34:47
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100163.273 28 4 0
NAME VALUE
B1 10000.000
B2 10003.000
B3 10001.000
B4 10002.000
L_1 8.000
L_2 18.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 10002 0 0
2 QUEUE 10002 0 0
3 SEIZE 10002 0 0
4 DEPART 10002 0 0
5 ADVANCE 10002 0 0
6 RELEASE 10002 0 0
7 TRANSFER 10002 0 0
L_1
8 QUEUE 2975 0 0
9 SEIZE 2975 0 0
10 DEPART 2975 0 0
11 ADVANCE 2975 1 0
12 RELEASE 2974 0 0
13 QUEUE 2974 0 0
14 SEIZE 2974 0 0
15 DEPART 2974 0 0
16 ADVANCE 2974 0 0
17 RELEASE 2974 0 0
L_2
18 QUEUE 10001 0 0
19 SEIZE 10001 0 0
20 DEPART 10001 0 0
21 ADVANCE 10001 0 0
22 RELEASE 10001 0 0
23 QUEUE 10001 0 0
24 SEIZE 10001 1 0
25 DEPART 10000 0 0
26 ADVANCE 10000 0 0
27 RELEASE 10000 0 0
28 TERMINATE 10000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
10002 0.802 8.035 1 0 0 0 0 0
B3
10001 0.796 7.971 1 0 0 0 0 0
B4
12975 0.777 5.996 1 10001 0 0 0 0
B2
2975 0.179 6.032 1 10002 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
2 0 10002 6398 0.084 0.840 2.331 0
2
1 0 2975 2816 0.003 0.108 2.016 0
3
5 0 10001 3377 0.536 5.366 8.102 0
4
5 1 12975 5439 0.412 3.182 5.479 0
CEC
XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
10001
0 100144.295 10001 24 25
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
10003
0 100166.033 10003 0 1
10002
0 100168.677 10002 11 12
9
Îäíîêàíàëüíàÿ
ðàçîìêíóòàÿ ñìî ñ äâóìÿ âõîäíûìè ïîòîêàìè
Ïîëó÷åííûé îò÷¸ò:
GPSS
World Simulation Report - Untitled Model 1.13.1
Wednesday, December 15, 2010 10:45:04
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 14938.999 14 1 0
NAME VALUE
B1 10001.000
OHER1 10002.000
OHER2 10000.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 497 0 0
2 QUEUE 497 0 0
3 SEIZE 497 0 0
4 DEPART 497 0 0
5 ADVANCE 497 0 0
6 RELEASE 497 0 0
7 TERMINATE 497 0 0
8 GENERATE 1000 0 0
9 QUEUE 1000 0 0
10 SEIZE 1000 0 0
11 ADVANCE 1000 0 0
12 DEPART 1000 0 0
13 RELEASE 1000 0 0
14 TERMINATE 1000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
1497 0.258 2.572 1 0 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OHER2
2 0 1000 0 0.189 2.823 2.823 0
OHER1
1 0 497 427 0.015 0.450 3.193 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1499
0 14949.557 1499 0 8
1498
0 14957.992 1498 0 1
10 Ìíîãîêàíàëüíàÿ çàìêíóòàÿ ñìî
Ïîëó÷åííûé
îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.37.1
Wednesday, December 15, 2010 11:58:09
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480.000 20 2 1
NAME VALUE
B1 10001.000
B2 10002.000
COME 16.000
KAN1 5.000
KAN2 11.000
L1 2.000
NAK 10000.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 36 0 0
L1
2 ADVANCE 526 29 0
3 ENTER 497 0 0
4 TRANSFER 497 1 0
KAN1
5 SEIZE 96 0 0
6 QUEUE 96 0 0
7 ADVANCE 96 1 0
8 RELEASE 95 0 0
9
DEPART 95 0 0
10 TRANSFER 95 0 0
KAN2
11 SEIZE 400 0 0
12 QUEUE 400 0 0
13 ADVANCE 400 1 0
14 RELEASE 399 0 0
15 DEPART 399 0 0
COME
16 LEAVE 494 0 0
17 ADVANCE 494 4 0
18 TRANSFER 490 0 0
19 GENERATE 1 0 0
20 TERMINATE 1 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
96 0.923 4.616 1 20 0 0 1 0
B2
400 0.832 0.998 1 8 0 0 1 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
1 1 96 0 0.923 4.616 4.616 0
2
1 1 400 0 0.832 0.998 0.998 0
STORAGE
CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAK
3 0 0 3 497 1 2.489 0.830 0 18
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
8
0 480.824 8 13 14
30 0 480.990 30 17 18
25 0 481.107 25 17 18
36 0 481.248 36 2 3
26 0 481.450 26 2 3
35 0 482.385 35 2 3
16 0 482.428 16 2 3
27 0 482.811 27 17 18
10 0 483.213 10 17 18
12 0 483.510 12 2 3
20 0 484.129 20 7 8
38 0 484.447 38 0 1
31 0 485.206 31 2 3
34 0 487.010 34 2 3
32 0 488.225 32 2 3
21 0 489.152 21 2 3
15 0 493.694 15 2 3
6 0 498.098 6 2 3
39 0 960.000 39 0 19
11 Ìíîãîêàíàëüíàÿ ðàçîìêíóòàÿ ñìî
Ïîëó÷åííûé
îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.35.1
Wednesday, December 15, 2010 11:28:56
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 9865.175 17 2 1
NAME VALUE
B1 10001.000
B2 10002.000
COME 15.000
KAN1 4.000
KAN2 10.000
NAK 10000.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1
GENERATE 1000 0 0
2 ENTER 1000 0 0
3 TRANSFER 1000 0 0
KAN1
4 SEIZE 712 0 0
5 QUEUE 712 0 0
6 ADVANCE 712 0 0
7 RELEASE 712 0 0
8 DEPART 712 0 0
9 TRANSFER 712 0 0
KAN2
10 SEIZE 288 0 0
11 QUEUE 288 0 0
12 ADVANCE 288 0 0
13 RELEASE 288 0 0
14 DEPART 288 0 0
COME
15 LEAVE 1000 0 0
16 ADVANCE 1000 0 0
17 TERMINATE 1000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1
712 0.300 4.162 1 0 0 0 0 0
B2
288 0.029 1.000 1 0 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
1 0 712 0 0.300 4.162 4.162 0
2
1 0 288 0 0.029 1.000 1.000 0
STORAGE
CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAK
3 3 0 3 1000 1 0.331 0.110 0 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001 0 9906.107 1001 0 1
12 Ìíîãîêàíàëüíàÿ ðàçîìêíóòàÿ ñìî ñ
íåñêîëüêèìè óñòðîéñòâàìè
Ïîëó÷åííûé îò÷¸ò:
GPSS World Simulation Report - Untitled Model 1.36.1
Wednesday, December 15, 2010 11:41:57
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 10288.629 27 4 1
NAME VALUE
B1 10003.000
B2 10004.000
CAN1 10001.000
CAN2 10002.000
COME 25.000
KAN1 4.000
KAN2 15.000
NAK 10000.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1
GENERATE 1000 0 0
2 ENTER 1000 0 0
3 TRANSFER 1000 0 0
KAN1
4 SEIZE 646 0 0
5 QUEUE 646 0 0
6 ADVANCE 646 0 0
7 DEPART 646 0 0
8 RELEASE 646 0 0
9 QUEUE 646 0 0
10 SEIZE 646 0 0
11 DEPART 646 0 0
12 ADVANCE 646 0 0
13 RELEASE 646 0 0
14 TRANSFER 646 0 0
KAN2
15 SEIZE 354 0 0
16 QUEUE 354 0 0
17 ADVANCE 354 0 0
18 DEPART 354 0 0
19 RELEASE 354 0 0
20 QUEUE 354 0 0
21 SEIZE 354 0 0
22 DEPART 354 0 0
23 ADVANCE 354 0 0
24 RELEASE 354 0 0
COME
25 LEAVE 1000 0 0
26 ADVANCE 1000 0 0
27 TERMINATE 1000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
CAN1
646 0.503 8.016 1 0 0 0 0 0
CAN2
354 0.341 9.913 1 0 0 0 0 0
B1
646 0.369 5.875 1 0 0 0 0 0
B2
354 0.275 7.982 1 0 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1
1 0 646 0 0.503 8.016 8.016 0
2
1 0 646 597 0.007 0.111 1.461 0
3
1 0 354 0 0.341 9.913 9.913 0
4
1 0 354 334 0.002 0.065 1.146 0
STORAGE
CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAK
3 3 0 3 1000 1 1.540 0.513 0 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001
0 10298.607 1001 0 1
Ïðèëîæåíèå
B
Ëèñòèíã ïðîãðàììû:
#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
ofstream file("GPSStext.txt");
class FuncStandart
{
public:
string fBETA()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå
ëèáî ðàâíî 1): ";
cin>>x;
S<<"(BETA("<<x<<",";
cout<<"Min (âåùåñòâåííîå, ìåíüøå ÷åì Max): ";
cin>>x;
S<<x<<",";
cout<<"Max (âåùåñòâåííîå, áîëüøå ÷åì
Min): ";
cin>>x;
S<<x<<",";
cout<<"Shape1 (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"Shape2 (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string fBINOMIAL()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<"(BINOMIAL("<<x<<",";
cout<<"TrialCount (ïîëîæèòåëüíîå öåëîå): ";
cin>>x;
S<<x<<",";
cout<<"Probability (âåùåñòâåííîå îò 0
äî 1): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string fDUNIFORM()
{
float x;
ostringstream S;
cout<<"Strea m(öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<"(DUNIFORM("<<x<<",";
cout<<"Min (öåëîå, ìåíüøå ëèáî ðàâíî Max): ";
cin>>x;
S<<x<<",";
cout<<"Max (öåëîå, áîëüøå ëèáî ðàâíî
Min): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string f_1()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<x<<",";
cout<<"Locate (âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"Scale (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string f_2()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<x<<",";
cout<<"Locate (âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"Scale (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"Shape (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string fGEOMETRIC()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<"(GEOMETRIC("<<x<<",";
cout<<"Probability (âåùåñòâåííîå îò 0 äî 1):
";
cin>>x;
S<<x<<"))";
return S.str();
}
string fNEGBINOM()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<"(NEGBINOM("<<x<<",";
cout<<"SuccessCount (ïîëîæèòåëüíîå öåëîå): ";
cin>>x;
S<<x<<",";
cout<<"Probability (âåùåñòâåííîå îò 0 äî 1):
";
cin>>x;
S<<x<<"))";
return S.str();
}
string fNORMAL()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<"(NORMAL("<<x<<",";
cout<<"Mean (âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"StdDev (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string fPARETO()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1):
";
cin>>x;
S<<x<<",";
cout<<"Locate (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"Scale (ïîëîæèòåëüíîå
âåùåñòâåííîå): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string fPEARSON6()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1): ";
cin>>x;
S<<"(PEARSON6("<<x<<",";
cout<<"Locate (âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"Scale (ïîëîæèòåëüíîå âåùåñòâåííîå): ";
cin>>x;
S<<x<<",";
cout<<"Shape1 (ïîëîæèòåëüíîå âåùåñòâåííîå):
";
cin>>x;
S<<x<<",";
cout<<"Shape2 (ïîëîæèòåëüíîå âåùåñòâåííîå):
";
cin>>x;
S<<x<<"))";
return S.str();
}
string fPOISSON()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1): ";
cin>>x;
S<<"(POISSON("<<x<<",";
cout<<"Mean (ïîëîæèòåëüíîå âåùåñòâåííîå): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string fTRIANGULAR()
{
float x;
ostringstream S;
cout<<"Stream (öåëîå, áîëüøå ëèáî ðàâíî 1): ";
cin>>x;
S<<"(TRIANGULAR("<<x<<",";
cout<<"Min(âåùåñòâåííîå, ìåíüøå ÷åì Mode): ";
cin>>x;
S<<x<<",";
cout<<"Max(âåùåñòâåííîå, áîëøå ÷åì Mode):
";
cin>>x;
S<<x<<",";
cout<<"Mode(âåùåñòâåííî áîëüøå Min è ìåíüøå
Max): ";
cin>>x;
S<<x<<"))";
return S.str();
}
string fUNIFORM()
{
float x;
ostringstream S;
cout<<"Stream(öåëîå, áîëüøå ëèáî ðàâíî 1): ";
cin>>x;
S<<"(UNIFORM("<<x<<",";
cout<<"Min(âåùåñòâåííîå, ìåíüøå ÷åì Max): ";
cin>>x;
S<<x<<",";
cout<<"Max(âåùåñòâåííîå, áîëøå ÷åì Min):
";
cin>>x;
S<<x<<"))";
return S.str();
}
};
class GPSSOperatori:public FuncStandart
{
public:
int nF,nST,nFas,nQ;
string GENERATE()
{
int n,k,m,l;
float x,K,M,L;
ostringstream S;
S<<"GENERATE ";
M7:
cout<<"Ïðîìåæóòîê âðåìåíè ìåæäó
ïîÿâëåíèÿìè òðàíçàêòîâ: \n";
cout<<"1 - Ïîñòîÿííûé;\n";
cout<<"2 - Ñëó÷àéíûé;\n";
cout<<"3 - Çàäàí ôóíêöèåé;\n";
cout<<"4 - Çàâèñèò îò
ôóíêöèè;\n";
cout<<"5 - Íå çàäàí;\n";
M1:
cout<<"Âàø âûáîð:";
cin>>n;
switch (n)
{
case 1:
cout<<"Âðåìÿ ìåæäó ïîÿâëåíèÿìè
òðàíçàêòîâ: ";
cin>>x;
S<<x;
break;
case 2:
cout<<"Ñðåäíåå âðåìÿ ìåæäó
ïîÿâëåíèÿìè òðàíçàêòîâ: ";
cin>>x;
S<<x<<",";
cout<<"+/-: ";
cin>>x;
S<<x;
break;
case 3:
cout<<"1 - Ñòàíäàðòíàÿ
ôóíêöèÿ;\n";
cout<<"2 - Ïîëüçîâàòåëüñêàÿ
ôóíêöèÿ;\n";
M2:
cout<<"Âàø âûáîð: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand();
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF;
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M2;
break;
}
break;
case 4:
cout<<"Ïîñòîÿííîå çíà÷åíèå,
çàâèñÿùåå îò ôóíêöèè: ";
cin>>x;
S<<x<<",";
cout<<"Ôóíêöèÿ:\n";
cout<<"1 - Ñòàíäàðòíàÿ ôóíêöèÿ;\n";
cout<<"2 - Ïîëüçîâàòåëüñêàÿ
ôóíêöèÿ;\n";
M3:
cout<<"Âàø âûáîð: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand();
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF;
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M3;
break;
}
break;
case 5:
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M1;
break;
}
cout<<"Âðåìÿ çàäåðæêè ïîÿâëåíèÿ
ïåðâîãî òðàíçàêòà:\n";
cout<<"1 - çàäàíî;\n";
cout<<"2 - íå çàäàíî;\n";
M4:
cout<<"Âàø âûáîð: ";
cin>>k;
switch(k)
{
case 1:
cout<<"Âðåìÿ: ";
cin>>K;
break;
case 2: break;
default:
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M4;
break;
}
cout<<"Ïðåäåëüíîå ÷èñëî
òàðàíçàêòîâ:\n";
cout<<"1 - çàäàíî;\n";
cout<<"2 - íå çàäàíî;\n";
M5:
cout<<"Âàø âûáîð: ";
cin>>m;
switch(m)
{
case 1:
cout<<"Êîëè÷åñòâî òðàíçàêòîâ:
";
cin>>M;
break;
case 2: break;
default:
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M5;
break;
}
cout<<"Ïðèîðèòåò òðàíçàêòîâ:\n";
cout<<"1 - çàäàí;\n";
cout<<"2 - íå çàäàí;\n";
M6:
cout<<"Âàø âûáîð: ";
cin>>l;
switch(l)
{
case 1:
cout<<"Ïðèîðèòåò: ";
cin>>L;
break;
case 2: break;
default:
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M6;
break;
}
if((k==1)||(m==1)||(l==1))
{
if(n%2==1) S<<",,";
else S<<",";
if((m==1)||(l==1))
{
if(k==1) S<<K<<",";
else S<<",";
if(l==1)
if(m==1)
S<<M<<","<<L;
else
S<<","<<L;
else S<<M;
}
else S<<K;
}
else
if(n==5)
{
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M7;
}
S<<endl;
system("cls");
return S.str();
}
string ADVANCE()
{
int n,k;
float x;
ostringstream S;
S<<"ADVANCE ";
cout<<"Âðåìÿ çàäåðæêè òðàíçàêòà: \n";
cout<<"1 - Ïîñòîÿííîå;\n";
cout<<"2 - Ñëó÷àéíîå;\n";
cout<<"3 - Çàäàíî ôóíêöèåé;\n";
cout<<"4 - Çàâèñèò îò
ôóíêöèè;\n";
M1:
cout<<"Âàø âûáîð:";
cin>>n;
switch (n)
{
case 1:
cout<<"Âðåìÿ çàäåðæêè:
";
cin>>x;
S<<x<<endl;
break;
case 2:
cout<<"Ñðåäíåå âðåìÿ çàäåðæêè:
";
cin>>x;
S<<x<<",";
cout<<"+/-: ";
cin>>x;
S<<x<<endl;
break;
case 3:
cout<<"1 - Ñòàíäàðòíàÿ
ôóíêöèÿ;\n";
cout<<"2 - Ïîëüçîâàòåëüñêàÿ
ôóíêöèÿ;\n";
M2:
cout<<"Âàø âûáîð: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand()<<endl;
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF<<endl;
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M2;
break;
}
break;
case 4:
cout<<"Ïîñòîÿííîå çíà÷åíèå,
çàâèñÿùåå îò ôóíêöèè: ";
cin>>x;
S<<x<<",";
cout<<"Ôóíêöèÿ:\n";
cout<<"1 - Ñòàíäàðòíàÿ ôóíêöèÿ;\n";
cout<<"2 - Ïîëüçîâàòåëüñêàÿ
ôóíêöèÿ;\n";
M3:
cout<<"Âàø âûáîð: ";
cin>>k;
switch (k)
{
case 1:
S<<FStand()<<endl;
break;
case 2:
FUNCTION();
S<<"FN$F_"<<nF<<endl;
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M3;
break;
}
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M1;
break;
}
return S.str();
}
string ENTER(int ukaz)
{
nST++;
int n,x;
ostringstream S,Enter,Advance,Buf;
if(ukaz!=0)
S<<"U_"<<ukaz<<" ";
cout<<"×èñëî êàíàëîâ: ";
cin>>x;
file<<"St_"<<nST<<" STORAGE
"<<x<<endl;
cout<<"×èñëî çàõâà÷èâàåìûõ êàíàëîâ: ";
cin>>x;
Enter<<"ENTER
St_"<<nST<<","<<x<<endl;
Advance<<ADVANCE();
M2:
cout<<"Ñáîð ñòàòèñòèêè:\n";
cout<<"1 - íàõîæäåíèå â î÷åðåäè ïåðåä ÎÓ;\n";
cout<<"2 - íàõîæäåíèå â ÎÓ;\n";
cout<<"3 - îáùåå âðåìÿ îáðàáîòêè
òðàíçàêòà (1+2);\n";
cout<<"4 - íå òðåáóåòñÿ;\n";
M1:
cout<<"Âàø âûáîð: ";
cin>>n;
switch(n)
{
case 1:
nQ++;
Buf<<Enter.str();
Enter.str("");
Enter<<"QUEUE
Q_"<<nQ<<endl<<Buf.str()<<"DEPART
Q_"<<nQ<<endl;
Buf.str("");
goto M2;
break;
case 2:
nQ++;
Buf<<Advance.str();
Advance.str("");
Advance<<"QUEUE
Q_"<<nQ<<endl<<Buf.str()<<"DEPART
Q_"<<nQ<<endl;
Buf.str("");
goto M2;
break;
case 3:
nQ++;
Buf<<Enter.str();
Enter.str("");
Enter<<"QUEUE
Q_"<<nQ<<endl<<Buf.str();
Buf.str("");
Buf<<Advance.str();
Advance.str("");
Advance<<Buf.str()<<"DEPART
Q_"<<nQ<<endl;
Buf.str("");
goto M2;
break;
case 4:
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M1;
break;
}
S<<Enter.str()<<Advance.str()<<"LEAVE
St_"<<nST<<","<<x<<endl;
system("cls");
return S.str();
}
string SEIZE(int ukaz)
{
nFas++;
int n;
ostringstream S,Seize,Advance,Buf;
if(ukaz!=0)
S<<"U_"<<ukaz<<" ";
Seize<<"SEIZE
F_"<<nFas<<endl;
Advance<<ADVANCE();
M2:
cout<<"Ñáîð ñòàòèñòèêè:\n";
cout<<"1 - íàõîæäåíèå â î÷åðåäè ïåðåä ÎÓ;\n";
cout<<"2 - íàõîæäåíèå â ÎÓ;\n";
cout<<"3 - îáùåå âðåìÿ îáðàáîòêè
òðàíçàêòà (1+2);\n";
cout<<"4 - íå òðåáóåòñÿ;\n";
M1:
cout<<"Âàø âûáîð: ";
cin>>n;
switch(n)
{
case 1:
nQ++;
Buf<<Seize.str();
Seize.str("");
Seize<<"QUEUE
Q_"<<nQ<<endl<<Buf.str()<<"DEPART
Q_"<<nQ<<endl;
Buf.str("");
goto M2;
break;
case 2:
nQ++;
Buf<<Advance.str();
Advance.str("");
Advance<<"QUEUE
Q_"<<nQ<<endl<<Buf.str()<<"DEPART
Q_"<<nQ<<endl;
Buf.str("");
goto M2;
break;
case 3:
nQ++;
Buf<<Seize.str();
Seize.str("");
Seize<<"QUEUE
Q_"<<nQ<<endl<<Buf.str();
Buf.str("");
Buf<<Advance.str();
Advance.str("");
Advance<<Buf.str()<<"DEPART
Q_"<<nQ<<endl;
Buf.str("");
goto M2;
break;
case 4:
break;
default:
cout<<"ÂÂåäåíî íåâåðíî!!!\n";
goto M1;
break;
}
S<<Seize.str()<<Advance.str()<<"RELEASE
F_"<<nFas<<endl;
system("cls");
return S.str();
}
string TRANSFER(int ukaz,float ver,int uzel1,int
uzel2)
{
ostringstream S;
if(ukaz!=0)
S<<"U_"<<ukaz<<" ";
S<<"TRANSFER "<<ver<<",U_"<<uzel2<<",U_"<<uzel1<<endl;
system("cls");
return S.str();
}
string TERMINATE(int ukaz)
{
int x;
ostringstream S;
if(ukaz!=0)
S<<"U_"<<ukaz<<" ";
cout<<"Ñêîëüêî òðàçàêòîâ èçâëå÷ü: ";
cin>>x;
S<<"TERMINATE "<<x<<endl;
system("cls");
return S.str();
}
void FUNCTION()
{
nF++;
int n;
float x;
cout<<"Íîìåð ãåíåðàòîðà(àðãóìåíò ô-èè): ";
cin>>n;
file<<"F_"<<nF<<"
FUNCTION RN"<<n<<",";
cout<<"Òèï ôóíêöèè:\n";
cout<<"1 - Ñ êóñî÷íî-ëèíåéíîé
(íåïðåðûâíîé) àïïðîêñèìàöèåé (Ñ);\n";
cout<<"2 - Ñ ñòóïåí÷àòîé (äèñêðåòíîé)
àïïðîêñèìàöèåé (D);\n";
cout<<"3 - Òàáëè÷íîå, òî÷å÷íîå çàäàíèå
ôóíêöèè áåç àïïðîêñèìàöèè (L);\n";
cout<<"4 - Çàäàíèå äèñêðåòíîé
àòðèáóòèâíîé (E)\n";
cout<<"5 - Çàäàíèå òàáëè÷íîé
àòðèáóòèâíîé (M)\n";
M1:
cout<<"Âàø âûáîð: ";
cin>>n;
switch (n)
{
case 1:file<<"C";break;
case 2:file<<"D";break;
case 3:file<<"L";break;
case 4:file<<"E";break;
case 5:file<<"M";break;
default:
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M1;
break;
}
cout<<"×èñëî òî÷åê:
";
cin>>n;
file<<n<<endl;
for(int i=1;i<=n;i++)
{
cout<<"X["<<i<<"]=";
cin>>x;
file<<x<<",";
cout<<"Y["<<i<<"]=";
cin>>x;
file<<x;
if(i<n)
file<<"/";
}
file<<endl;
}
string FStand()
{
int n;
string S;
cout<<"1 -
BETA(Stream,Min,Max,Shape1,Shape2);\n";
cout<<"2 -
BINOMIAL(Stream,TrialCount,Probability);\n";
cout<<"3 -
DUNIFORM(Stream,Min,Max);\n";
cout<<"4 -
EXPONENTIAL(Stream,Locate,Scale);\n";
cout<<"5 -
EXTVALA(Stream,Locate,Scale);\n";
cout<<"6 -
EXTVALB(Stream,Locate,Scale);\n";
cout<<"7 -
GAMMA(Stream,Locate,Scale,Shape);\n";
cout<<"8 -
GEOMETRIC(Stream,Probability);\n";
cout<<"9 -
INVGAUSS(Stream,Locate,Scale,Shape);\n";
cout<<"10 -
INVWEIBULL(Stream,Locate,Scale,Shape);\n";
cout<<"11 -
LAPLACE(Stream,Locate,Scale);\n";
cout<<"12 -
LOGISTIC(Stream,Locate,Scale);\n";
cout<<"13 -
LOGLAPLACE(Stream,Locate,Scale,Shape);\n";
cout<<"14 -
LOGLOGIS(Stream,Locate,Scale,Shape);\n";
cout<<"15 -
LOGNORMAL(Stream,Locate,Scale,Shape);\n";
cout<<"16 -
NEGBINOM(Stream,SuccessCount,Probability);\n";
cout<<"17 -
NORMAL(Stream,Mean,StdDev);\n";
cout<<"18 -
PARETO(Stream,Locate,Scale );\n";
cout<<"19 -
PEARSON5(Stream,Locate,Scale,Shape);\n";
cout<<"20 -
PEARSON6(Stream,Locate,Scale,Shape1,Shape2 );\n";
cout<<"21 -
POISSON(Stream,Mean);\n";
cout<<"22 -
TRIANGULAR(Stream,Min,Max,Mode);\n";
cout<<"23 -
UNIFORM(Stream,Min,Max );\n";
cout<<"24 -
WEIBULL(Stream,Locate,Scale,Shape );\n";
M1:
cout<<"Âàø âûáîð: ";
cin>>n;
switch(n)
{
case 1:return fBETA();break;
case 2:return fBINOMIAL();break;
case 3:return fDUNIFORM();break;
case 4:return
S="(EXPONENTIAL("+f_1();break;
case 5:return
S="(EXTVALA("+f_1();break;
case 6:return
S="(EXTVALB("+f_1();break;
case 7:return
S="(GAMMA("+f_2();break;
case 8:return fGEOMETRIC();break;
case 9:return
S="(INVGAUSS("+f_2();break;
case 10:return
S="(INVWEIBULL("+f_2();break;
case 11:return
S="(LAPLACE("+f_1();break;
case 12:return
S="(LOGISTIC("+f_1();break;
case 13:return
S="(LOGLAPLACE("+f_2();break;
case 14:return
S="(LOGLOGIS("+f_2();break;
case 15:return
S="(LOGNORMAL("+f_2();break;
case 16:return fNEGBINOM();break;
case 17:return fNORMAL();break;
case 18:return fPARETO();break;
case 19:return
S="(PEARSON5("+f_2();break;
case 20:return fPEARSON6();break;
case 21:return fPOISSON();break;
case 22:return fTRIANGULAR();break;
case 23:return fUNIFORM();break;
case 24:return
S="(WEIBULL("+f_2();break;
default:
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M1;
break;
}
}
};
class GPSSText:public GPSSOperatori
{
vector<int> oper,ukazat;
vector<float> matrix;
public:
GPSSText()
{
nF=0;nST=0;nFas=0;nQ=0;
}
void Matrix()
{
int k,n,m,uzel;
float x;
cout<<"Êîëè÷åñòâî óçëîâ: ";
cin>>uzel;
system("cls");
for(int i=1;i<=uzel;i++)
{
M1:
cout<<"Ââåäèòå îïåðàòîð
"<<i<<" óçëà:\n";
cout<<"1 - ãåíåðàòîð;\n";
cout<<"2 - îäíîêàíàëüíîå
óñòðîéñòâî;\n";
cout<<"3 - ìíîãîêàíàëüíîå
óñòðîéñòâî;\n";
cout<<"4 - âåðîÿòíîñòíûé
óçåë;\n";
cout<<"5 - òåðìèíàòîð;\n";
cout<<"Âàø âûáîð: ";
cin>>n;
if((n<1)&&(n>5))
{
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M1;
}
oper.push_back(n);
if(n==4)
{
M2:
cout<<"Íà êàêîé óçåë èäåò
(ïî âîçðàñòàíèþ): ";
cin>>m;
if(m>uzel)
{
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M2;
}
for(int i=1;i<m;i++)
matrix.push_back(0);
cout<<"Âåðîÿòíîñòü: ";
cin>>x;
matrix.push_back(x);
M3:
cout<<"Âòîðîé óçåë:
";
cin>>k;
if(k>uzel)
{
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M3;
}
for(int i=m+1;i<k;i++)
matrix.push_back(0);
matrix.push_back(1-x);
for(int i=k+1;i<=uzel;i++)
matrix.push_back(0);
}
else
if(n==5)
for(int i=0;i<uzel;i++)
matrix.push_back(0);
else
{
M4:
cout<<"Íà êàêîé óçåë èäåò:
";
cin>>m;
if(m>uzel)
{
cout<<"ÂÂåäåíî
íåâåðíî!!!\n";
goto M4;
}
for(int i=1;i<m;i++)
matrix.push_back(0);
matrix.push_back(1);
for(int i=m+1;i<=uzel;i++)
matrix.push_back(0);
}
system("cls");
}
}
void Programma()
{
int n,uzel1=0,uzel2=0,uzel;
float ver;
bool b;
ostringstream Proga;
Matrix();
uzel=oper.size();
for(int i=0;i<uzel;i++)
ukazat.push_back(0);
Proga<<GENERATE();
for(int i=0;i<uzel;i++)
{
if(matrix[(uzel-1)*uzel+i]>0)
ukazat[i]=i+1;
if(ukazat[i]==0)
for(int j=i;j<uzel;j++)
if(matrix[j*uzel+i]>0)
ukazat[i]=i+1;
}
for(int i=1;i<uzel;i++)
{
cout<<"Óçåë "<<i+1<<endl;
switch(oper[i])
{
case 1:
break;
case 2:
Proga<<SEIZE(ukazat[i]);
break;
case 3:
Proga<<ENTER(ukazat[i]);
break;
case 4:
uzel1=0;
for(int j=0;j<uzel;j++)
if
(matrix[i*uzel+j]>0)
if(uzel1==0)
{
uzel1=j+1;
ver=matrix[i*uzel+j];
}
else uzel2=j+1;
ukazat[uzel1-1]=uzel1;
ukazat[uzel2-1]=uzel2;
Proga<<TRANSFER(ukazat[i],ver,uzel1,uzel2);
break;
case 5:
Proga<<TERMINATE(ukazat[i]);
break;
default: break;
}
if(oper[i]!=5)
{
n=0;
for(int j=0;j<uzel;j++)
if
((matrix[i*uzel+j]>0))
for(int
l=0;l<uzel;l++)
{
if((matrix[l*uzel+j]>0)&&(oper[l]!=4))
n++;
if(n>1)
{
Proga<<"TRANSFER
,U_"<<j+1<<endl;
ukazat[j]=j+1;
n=0;
}
}
}
}
file<<Proga.str();
file.close();
cout<<"\n\n\n\n\n\n\n\n\t#####################################################\n";
cout<<"\t## Ðàáîòà ïðîãðàììû
çàêîí÷åíà! ##\n";
cout<<"\t## Tåêñò ïðîãðàììû íàõîäèòñÿ
â ôàéëå GPSStext.txt! ##\n";
cout<<"\t#####################################################\n";
}
};
int main()
{
setlocale(LC_ALL,"");
GPSSText T;
T.Programma();
system("pause");
return 0;
}
|