PSS(2-1) (Симулятор)
2019-09-182019-09-18zzyxelСтудИзба
Описание файла
Файл "PSS(2-1)" внутри архива находится в следующих папках: Симулятор, SIMPAS. Документ из архива "Симулятор", который расположен в категории "". Всё это находится в предмете "военная кафедра" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "PSS(2-1)"
Текст из документа "PSS(2-1)"
2 10.���樠��� ��⥬�� ������� � ����� 19 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ����ঠ��� ~~~~~~~~~~ program Example2(input,output); const 1.�������� ........................................ 3 Demand=1; {����⨥ ����㯫���� �ॡ������} 2.�ਭ樯� ������� ��⥬� ..................... 4 Service=2; {����⨥ ���㦨����� �ॡ������} 3.������� ���������饩 �ணࠬ�� ................ 5 Failure=3; {����⨥ �����㦨����� �ॡ������} 4.��ࠢ���騩 ᯨ᮪ ��⥬� ...................... 6 Poisson=2; {�����䨪��� ���ᮭ���� ��⮪�} 5.�᭮��� ��⥬�� ��६���� � �� ⨯� ......... 7 type %include 'type.pss'; 6.�᭮��� ��⥬�� ������� .................... 8 DataType=char; 7.�뢮� �⫠��筮� ���ଠ樨 ..................... 10 var %include 'var.pss'; 8.�࣠������ ������ ��� ᮡ��� .................. 11 L,N,M,S:integer; Lam,Mju,Nju,T:real; 9.�ਬ�� ���������饩 �ணࠬ�� ................... 13 %include 'proc.pss'; 10.���樠��� ��⥬�� ������� ................. 17 begin 11.�ᮡ������ �������樨 �� �⠭樨 ���� ......... 20 Initiate; writeln('���� ��室��� ������ ��⥬� ���ᮢ��� ���㦨�����:'); write('������� ���㦨����� = ');readln(N); write('��ࠬ��� ��⮪� ����㯫��. ��� = ');readln(Lam); write('��ࠬ��� ��⮪� ���㦨�. ��� = ');readln(Mju); write('��ࠬ��� ��⮪� ��宦����� ��।� = ');readln(Nju); write('�த����⥫쭮��� ������ = ');readln(T); write('������⢮ ��� �� �室��� ��⮪� = ');readln(M); write('������⢮ ॠ����権 ������ = ');readln(L); Statistics(Demand);Statistics(Service);Statistics(Failure);S:=0; repeat Generate(Demand,Poisson,Lam,0,M); Start(Demand,NegExp(Lam),nil,T); while Simulate do case ActNumb of Demand:begin S:=S+Have(Service); if Have(Service) < N then Prepare(Service,NegExp(Mju),nil) else Prepare(Failure,NegExp(Nju),nil) end; Service:if Have(Failure) > 0 then begin Addr:=CancMin(Failure); Prepare(Service,NegExp(Mju),nil) end; Failure:; end; until Repeater = L; 4 9.�ਬ�� ���������饩 �ணࠬ�� 17 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2.�ਭ樯� ������� ��⥬� 2:begin Mk:=Mk+1; if R = 0 then K:=K-1 else begin R:=R-1; �㭪樮������ ���� ��⥬� ����� ��ᬠ�ਢ��� ��� ��- Addr:=CancMin(3); Prepare(2,NegExp(Mju),nil) end ����⥫��� ᬥ�� �� ���ﭨ�. ����樮��� ����� ( ��������- end; ���� ����� �㭪樮������ ���� ��⥬� ) ����� �।�- 3:begin Mp:=Mp+1; R:=R-1 end; ⠢��� ᮢ��㯭����� �⤥���� ����ᮢ, ����� �⭮����� � end; �㭪樮������ ��।������� ��ꥪ⮢ ��⥬�. Pk:=Mk/(Mk+Mp); Pr:=Mr/(Mk+Mp); ����� ���ﭨ� ������� �� ����ᮢ �ந�室�� �१ ��������- writeln('Pk=',Pk:8:2,' Pr=',Pr:8:2) ����� ⮣� ��� ����� ᮡ���. � ���� ��⥬� ������ ��⥪�- end. �� �� ����襩 ��� �����६���� (��ࠫ���쭮). ��� ���ᯥ祭�� ��ࠫ���쭮�� ����ᮢ ���������騩 ������ ����� ���� �����- 10.���樠��� ��⥬�� ������� � ����� �� ���� �� �ਭ樯� ����ﭭ��� ������ ⥪�饣� �६��� � ��- ��� ���ᯥ祭�� ᡮ� ������� ���ଠ樨 � �࣠����樨 �������� ��� ���ﭨ�, ��������� � ��⥬�, ���� �� �ਭ樯� � ������� ��⮪�� PSS-��⥬� ����砥� ᯥ樠��� ��६���� � �ᯮ�짮����� �ࠢ���饣� �����⬠, ����� �࠭�� ���ଠ�� �������. ��� ��� ᮡ����, ������������ �� �����-� �६� ��� �믮���- 10.1.��� � ��६����� ��� ������᪨� ������ ��� � ������⥫쭮 �� ��⨢������. PSS-��⥬� ॠ����� ��- StatType=array[1..3] of record ன �ਭ樯, ����� ���� �������� ��䥪⨢�� � 㭨���ᠫ�- Numb, ����� ᮡ��� ��. Exist, ���稪 ��������� ᮡ�⨩ � ᯨ᪥ ��ࠢ���騩 ������ ��⥬� ����� ࠧ �� �믮������ ��।�- Simul, ���稪 �ந�襤�� ᮡ�⨩ ������ �ணࠬ��, �易���� � ��ࠡ�⪮� �ந�襤襣� ᮡ��� ��- Prep, ���稪 �ந�襤�� ��������� ����, ��⨢������ ��।��� ᮡ�⨥, �롨�� ��� �� �ࠢ���饣� Canc:integer end; ���稪 �ந�襤�� �⬥� ᯨ᪠ ������������ ᮡ�⨩. �ணࠬ�� ��ࠡ�⪨ ᮡ�⨩ ����� �������� ���� ᮡ��� ��� �⬥���� 㦥 ����������� � �- Stat:^StatType; �����⥫� �� ������᪨� ����� ࠢ���饬 ᯨ᪥ � ᮮ⢥��⢨� � ࠧ��⨥� ����� � ������. � �ࠢ���饬 ᯨ᪥, ����饬 㭨������ ���, ᮤ�ন��� 10.2.��� � ��६����� ��� �����樨 ��⮪�� �᭮���� ���ଠ�� � ������������ ᮡ����: �����䨪��� �- GenerType=array[1..3] of record ���� (�����), �६� ����㯫���� ᮡ��� � ��뫪� �� ��������- Numb, ����� ᮡ��� ���� ���ଠ�� (�����),�⭮������� � ᮡ���. ������� ��� Count, ���稪 横��� �����樨 ������ ��।������ ����砬� ������, ���ਬ��: ��� ����த��� �- ID:integer; �����䨪��� ⨯� ���稪� ��⨩ (� ��������� ����), �� �ਭ�������� � ࠧ���� ��- Param1,Param2:real end; ��ࠬ��� ����, ��ன ��ᠬ, ����� ����� ᮤ�ঠ�� �����䨪��� �����. ���䨪��� ᯨ᪠ �������� ��⠢��� ������⥪� ��⥬��� ��- Gener:^GenerType; �����⥫� �� ����� �����樨 ��⮪�� 楤��, �����⢫����: - �᭮��� ����樨 �� ��������� � �⬥�� ᮡ�⨩ ������; 10.3.������ �����祭�� �� ᡮ� ����⨪� - �ନ���� ��砩��� ����稭, ����室���� � ������᪨� procedure Statistics(Numb:integer); �������; ������ ���ਭ����� Numb, ��� ����� ᮡ���, ��� ���ண� ��- - �࣠������ �����⮢�� �ࠢ���饣� ᯨ᪠, ��⥬��� ��६��- ��室��� ᮡ���� ����⨪�. ����� �������� �� ����� ��� ���; ᮡ�⨩. � �������� �� �����祭��� ������ ᮡ���, � ��- - �࣠������ 室� ����������. ���� �����祭�� ⮣�, �� �뫮 �����祭� ���쨬. 6 3.������� ���������饩 �ணࠬ�� 9.�ਬ�� ���������饩 �ணࠬ�� 15 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9.3.2.�ணࠬ�� ��ࠡ�⪨ 1-�� ᮡ��� � �⮩ �������樨 ���ᯥ稢����� ������� ���쪨� 横��� � �ந��諮 ᮡ�⨥ � ���ﭨ� x1, � ��� ����� �맢���: ���������� �� ��� ����� repeat...until � ��⥬��� ���- �) ᮡ�⨥ � �⮬ �� ���ﭨ� �१ ���ࢠ� �६���, ��।�- ������ Repeater. ����� �� ������⥫쭮�� ������ � ��ࠬ�� Lam; � ������ 横�� ���������� (while...end) ��⥬��� �㭪�� �) ᮡ�⨥ � ���ﭨ� x2 �१ ���ࢠ� �६���, ��।������ Simulate �����ন���� 室 ����������, ��⠭������� ��⥬��� �� ������⥫쭮�� ������ � ��ࠬ�� Mju, � �� ������ �� N ��६����� ActNumb, � ᮮ⢥��⢨� � ���� ��⨢����㥬��� �- �������; ����, ��� �����稢�� 横�, � ᮡ�⨥ ����� �㫥��� ����� �) ᮡ�⨥ � ���ﭨ� x3 �१ ���ࢠ� �६���, ��।������ (�ਧ��� ����砭�� ����樨). ��⥬ � ������� case..of ������- �� ������⥫쭮�� ������ � ��ࠬ�� Nju, � ������ �� N ��- ����� �믮������ ⮫쪮 ⮩ �ணࠬ�� ��ࠡ�⪨, ��⪠ ���ன �����. ᮢ������ � ᮤ�ন�� ActNumb. ���⥫쭮��� 1-�� ᮡ��� ����� ���� ॠ�������� ���饩 �ண- �ணࠬ�� ��ࠡ�⪨ ᮡ��� �।�⠢��� ᮡ�� ���� ������, ࠬ���: ���� ᯨ᮪ ����� ��᪠�� � ����� PSS-��⥬�, �����- begin 祭��� ����� begin...end. Prepare(1,NegExp(Lam),nil); {�} if K <> N then begin 4.��ࠢ���騩 ᯨ᮪ ��⥬� K:=K+1; Prepare(2,NegExp(Mju),nil) {�} end ��ࠢ���騩 ᯨ᮪ ��⥬� ����� �� �奬� ����楢��� ��㭠�- else begin ࠢ������� ᯨ᪠ � ������� ������. ��� ���饭�� � ���⠬ Mr:=Mr+1; R:=R+1; {�} ᯨ᪠ �㦨� ��⥬��� ��६����� Node, ������ 㪠��⥫�� �� Prepare(3,NegExp(Nju),nil) �������� ����, ����� �ᯮ������ ⮫쪮 ��� ��뢠��� end ᯨ᪠ � �����. end; ����� ���� ᯨ᪠ �।�⠢��� ᮡ�� ������ � ���騬� ���ﬨ: Numb - ����� ᮡ���, Time - �६� ᮡ���, Addr - ��뫪� 9.3.3.�ணࠬ�� ��ࠡ�⪨ 2-�� ᮡ��� �� ����� ᮡ���, Next - ��뫪� �� ���騩 ���� ᯨ᪠, � �ந��諮 ᮡ�⨥ � ���ﭨ� x2, � ��� ����� �맢���: Prev - ��뫪� �� �।�����騩 ���� ᯨ᪠. �) ��������� ������ �� ������⢨� �ॡ������ � ��।�; � �ࠢ���饬 ᯨ᪥ �� ����� ������ ���� 㯮�冷祭� �� �) �� ����稨 � ��।� �ॡ������ - �⬥�� ᮡ��� � ���ﭨ� �����⠭�� Time ! x3 (ᮡ��� � ���� 3) � ��������� �६���� ��� ᢥ�襭��, � �� ��ࠡ�⪥ ᯨ᪠ ����� Simulate �����⢫���� ���- �ନ���� ᮡ��� � ���ﭨ� x2, �१ ���ࢠ� �६���, �� ������⥫쭮��� ����⢨�: ��।������ �� ������⥫쭮�� ������ � ��ࠬ�� Mju. - �롨ࠥ��� ���ଠ�� �� ��ࢮ�� ���� ᯨ᪠ ( � ��������- ���⥫쭮��� 2-�� ᮡ��� ����� ���� ॠ�������� ���饩 �ண- �� �६���� ) � ��⥬�� ��६���� ( Numb -> ActNumb, Time ࠬ���: -> ActTime, Addr -> ActAddr ); begin - ������� ����� �⮣� ��⨢���� ᮡ���, � � �� ࠢ�� ��- Mk:=Mk+1; ��, � ���� ᯨ᮪ ��頥��� � ������ �����稢�����. � ��- if R = 0 then K:=K-1 {�} ⨢��� ��砥 - ���� ᯨ᪠ �᪫�砥��� �� ᯨ᪠, � ��� else begin {�} ���ଠ�� �⠭������ ����㯭�� �ணࠬ�� ��ࠡ�⪨ ��⨢���� R:=R-1; Addr:=CancMin(3); Prepare(2,NegExp(Mju),nil) ᮡ��� �१ ��⥬�� ��६����. end end; 8 13 6.�᭮��� ��⥬�� ������� 9.�ਬ�� ���������饩 �ணࠬ�� � ��⥬� �ᯮ������� ���쪮 �ᯮ����⥫��� ��楤�� � 9.1.���⠭���� ����� �� ���������� �㭪権, ����� ��뢠���� �᭮��묨 ��⥬�묨 �����ࠬ�. ��: �業��� ��䥪⨢����� ��⥬� ���ᮢ��� ���㦨����� � ��࠭�- 祭�� �६���� �������� � � �ਮ��⮬ ���㦨����� �� ����- procedure ViewNote(P:NotePntr); - ��楤�� ������ ����� ᯨ᪠. ���쭮�� �६��� ��室� �� ��।�. � ��⥬�, ������� �� N ����த��� �������, ����㯠�� ��⮪ function RND:real; - �㭪�� ����祭�� ��砩��� ����稭� �ॡ������ � ��⥭ᨢ������ Lam. ��⮪ ���㦨����� ������� ����- � ��������� 0..1 . �� �ࠪ�ਧ���� ��⥭ᨢ������ Mju. �ॡ������, ���⠢襥 �� ������ �����묨, �⠭������ � ��।�, ��� �� ���� ������� ��- procedure DelNote(P:NotePntr);- ��楤�� 㤠����� ����� ᯨ᪠. ⮪ �室� �� ��।� �����㦥����� �ॡ������ � ��⥭ᨢ������ Nju. function IncNote(P1,P2:NotePntr;N:integer;T:real; �� ��� ��������� ������� � �� ����稨 ��।�, �ॡ������ A:DataPntr):NotePntr; �� ��।� � ��������� �६���� ��室� �� ��।� ���㦨������ �㭪�� ����祭�� � ᯨ᮪ ����� ����� 㪠����묨, �� ���������� ������訬�� �������. � �����饭�� �� ����. ��।����� ������⥫� ��䥪⨢���� ��⥬�: Pk - ����⭮��� ���㦨����� �ॡ������ � ��⥬�; function GetNextT(T:real):NotePntr;- �㭪�� ���᪠ ���� ����� Pr - ����⭮��� ��宦����� �ॡ������ �१ ��।�. � �६����, ��騬 �� 㪠�����. 9.2.��ଠ������ ����� ����樨 ��饣� �ਬ������ � PSS-��⥬� ���ᯥ稢����� ���- �������� ��⥬� �।�⠢�� �ਥ������ ��䮬 ���ﭨ� 騬� ��楤�ࠬ� � �㭪�ﬨ: x2 �) ��ࠢ���騥 ������� ��⥬� . x1 procedure Initiate; - ���樠������ ��६����� ��⥬�. 0 . k procedure Start(N:integer;T:real;A:DataPntr;Time:real); - ���- . ��� ��砫� ॠ����樨; ��ࢮ� ����� � ᯨ᪥ � ����, x3 �६���� � ���ᮬ ������ (N,T,A) ; � �६��� ����砭�� ���������� (Time). ��� ������祭� ������ ���ﭨ�: x1 - ������ � ��⥬� �ॡ������; function Simulate:boolean; - ������ 蠣� ���������� x2 - ���㦨����� �ॡ������ � ��������� ������; � ��⨢���樨 ᮡ���. x3 - �室 �����㦥����� �ॡ������ �� ��।�. �㭪樨 ��⥬� ����뢠���� �ணࠬ���� ��ࠡ�⪨ ᮡ�⨩ ���- procedure Finish; - ��ନ���� ᮡ��� ����砭�� ����������. ��, ��室� �� ����� ࠧ�襭��� ���� ���室�, ��� ������ �㭪樨 ���室� ࠢ�� 1: G(y01)=G(y12)=G(y13)=G(y32)=G(y2k)=G(y3k)=1 10 6.�᭮��� ��⥬�� ������� 11 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8.�࣠������ ������ ��� ᮡ��� � ���.��������� M � �।�.��.�⪫������� S. � ����� ���������� ��� ��������� ����室������ ᮯ��⠢- function NegExp(L:real):real; - ������, �������騩 ���� ������㥬��� ᮡ��� ������� ����� ������, �ࠪ�ਧ���� ��砩��� ����稭�, ��।������� �� ����- �� ᮡ�⨥. �� ����� ������ �������᪨ ᮧ��������, ��������- ��⥫쭮�� ������ � ��ࠬ�� L > 0. �� � 㭨�⮦�����. ������� ����� ������ ��।������ ����� ������ � �ᮡ�������- 7.�뢮� �⫠��筮� ���ଠ樨 �� �몠 ��᪠��. �������� 㤮��� ����뢠�� ⠪�� ����� ��� ��- ����, ���ਬ��: ��� �뢮�� �⫠��筮� ���ଠ樨 �� ����᪥ ������ ����室��� DataType=record AA:integer; BB:real; CC:boolean end: ������ ᮮ⢥�����騩 ���� ��� � ��⥬��� ��६����� � �� ����� �।�⠢���� ᮡ�� ���� ����稭�, � ����� ������ Inform. � ⠪��� ������� �� �ந�����, � ���, ����ᥭ�� � DataType=real; ��� DataType=integer; ... � �.�. ��� ��६����� ����� Initiate ( ᬮ�� �������� ���������- � ��砥, � ����� � ������ �� �㦭�, � ⨯ �� ࠢ�� ������ 饩 �ணࠬ�� ) ���ᯥ稢��� ������⢨� �뢮�� �⫠��筮� ����- ���� ��।����, ���ਬ��: DataType=char; ��樨. �� �ᯮ�짮����� ���������� ����� �ॡ���� ��।����� �� �⫠��筮� ���ଠ樥� ��⥬� ���뢠���� ᮮ�饭�� � ᮡ�⨨, � � ����⢥ ��ࠬ��� ��뫪� �� �����, ����� � �⮬� ������� ����� ࠡ�⠥� ⥪�騩 ��⥬�� ������, ���ਬ��: ������ ���� �������᪨ ᮧ����, ���� ��।��� ����⠭�� NIL, ��- Start,Simulate,Prepare � ��㣨�. �� � ᮡ��� ������ ���. �뢮����� ��ப� � ������ ������ � ᮤ�ন�� ����� ����� ��� ᮧ����� ������ �ਬ������ ������ New(Addr); (ᮡ���). �� ��� �믮������ � ��६����� Addr ���뫠���� ���� ᮧ������� ��� � ��६����� Inform ����� ���饥 ���祭��: ����� ������. �� �⮣� ����� ������ ����室��� ���祭��, 0 - �⫠��筠� ���ଠ�� �� �뢮�����; ���ਬ��: Addr^.AA:=0;Addr^.BB:=3.14;Addr^.CC:=true; 1 - �뢮����� �����筠� ���ଠ�� �� ��⨢����㥬�� ᮡ����; � ����⢥ ��६����� ��� ��뫪� �� ����� ����� �ਬ����� �� 2 - �뢮����� ���ଠ�� ��� ��� ᮡ����, � ����묨 ࠡ���� ⮫쪮 ᯥ樠�쭮 ��� �⮣� �।�����祭��� ��⥬��� ��६����� ⥪�騥 �������; Addr, �� � ���� ����� ��६�����, ���� �� ⨯ DataPntr. 3 - � ��, �� � �� 2, �� �������� ��⠭�� � ��砫� ������ ॠ- �� ⮣�, ��� ����� ��ନ���, ��� ����� ���� �易�� � ����樨 ������; ������� ������㥬� ᮡ�⨥� ������, ���ਬ��: 4 - � ��, �� � �� 3, �� �������� ��⠭�� �� ��⨢���樨 ���- Prepare(3,205.7,Addr); ���� ᮡ���. ����� ᮡ�⨩ ����� �ᯮ�짮������ � ������� �� �� ⮣�, ��� �� ��⠭��� ��� �������� ������� ���� ��ப� - NewLine ᮡ��� �ந�室�� (��⨢���������). ����� � ����� ��������, (Enter) ��� �த������� ������. � ����㯭� ᮡ�⨥. ��� �⮣� �ணࠬ��� �࣠������� ���� ᮡ��� � �ࠢ���饬 ᯨ᪥. �� ���᪥ ����� �ᯮ�짮������ ��⥬�� ��६���� Node -㪠��⥫� �� �������� ���� ᯨ᪠ � Route -��६����� ⨯� ��뫪� �� ���� ᯨ᪠. ���ᬮ�ਬ ��� �ਬ��, ��� �����⢨�� ᬥ�� ���祭�� � ���� CC ������ � True �� False, ��� ��� ������������ ᮡ�⨩, � ���- ��� ����� ᮡ��� ࠢ�� ���, � ���� AA ������ ����⥫쭮. 12 8.�࣠������ ������ ��� ᮡ��� 6.�᭮��� ��⥬�� ������� 9 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ �) �⬥���騥 ᮡ�⨥ ������� ��⥬� Route:=Node^.Next; while Route <> Node do function Cancel(P:NotePntr):DataPntr; - ������ �᪫�祭�� �� begin ᯨ᪠ ����� ᮡ��� �� �� �����. if (Route^.Numb = 2)and(Route^.Addr <> Nil) then if (Route^.Addr^.AA < 0)and(Route^.Addr^.CC = True) then function CancMin(N:integer):DataPntr; - ������ �᪫�祭�� �� Route^.Addr^.CC:=False; ᯨ᪠ ����� ᮡ��� � 㪠����� ���� � Route:=Route^.Next ��������� �६����. end; �) ��������騥 ᮡ�⨥ ������� ��⥬� � ��㣮� �ਬ�� �ॡ���� ���� ���� ����� ᮡ��� � ���� ��, � ���ᨬ���� ����������� �६���� ����㯫����, � �- procedure Prepare(N:integer;DT:real;A:DataPntr); - ������ ����- ��ঠ騬 � ���� BB ������ ���. 祭�� � ᯨ᮪ ����� ᮡ��� � ���� N , ���ᮬ ������ A � �६���� , ࠢ�� �㬬� Route:=Node; T ⥪�饥 + DT , ��। ������� � �६���� Addr:=Nil; ����訬, 祬 T ⥪�饥 + DT. repeat �� ���� � 㯮�冷稢����� �� �६���. Route:=Route^.Prev; if (Route^.Numb = 3)and(Route^.Addr <> Nil) then procedure PrepPrior(N:integer;DT:real;A:DataPntr); - ������ if Route^.Addr^.BB = 0 then Addr:=Route^.Addr ����祭�� � ᯨ᮪ ����� ᮡ��� ��। ��- until (Route = Node)or(Addr <> Nil); ����� � �६���� �� ����訬, 祬 ⥪�饥 + DT. �� ���� - 㯮�冷稢���� � �ਮ��⮬. �� ��⨢���樨 ᮡ��� ��� ����� ����㯭� �१ ��⥬��� ��- ६����� ActAddr, ������� ��뫪��. ������ �������, �� �� procedure PrepBefore(P:NotePntr;N:integer;A:DataPntr); - ������ �ᯮ�짮����� ������ ��� ������ ���� 㭨�⮦���, �⮡� �� ���- ����祭�� � ᯨ᮪ ����� ᮡ��� ��। ��- ���� ������. ��� 㭨�⮦���� �ਬ������ ������ Dispose(Addr), �����, 㪠������ �� ���ᮬ. �६� � ��. � ��� Addr - ��뫪� �� �����. � � ������ �ᯮ������� ������� �⬥�� ᮡ��� � ᮡ�⨥ procedure PrepAfter(P:NotePntr;N:integer;A:DataPntr); - ������ �易�� � ����묨, � 㭨�⮦��� ����� ����� �� �����, �����- ����祭�� � ᯨ᮪ ����� ᮡ��� �� ��- 頥���� �����, ���ਬ��: �����, 㪠������ �� ���ᮬ. �६� � ��. Addr:=CancMin(2); Dispose(Addr); �) ������� �ନ���� ��砩��� ����稭 function Uniform(Min,Max:real):real; - ������, �������騩 ࠢ����୮ ��।������� ��砩��� ����稭� � ��������� �� Min �� Max. function Normal(M,S:real):real; - ������, �������騩 ��ଠ�쭮 ��।������� ��砩��� ����稭� 14 9.�ਬ�� ���������饩 �ணࠬ�� 4.��ࠢ���騩 ᯨ᮪ ��⥬� 7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ������� ���� �㭪樮������ ��⥬� ������� ���- ���⥬�� ������� � �ணࠬ��� ��ࠡ�⪨ ��������� ������� � 饥: ᯨ᮪ ���� ����� � ��⮬ 㯮�冷稢���� �� �६��� � �᪫�- y01 - ����� �室�� � ��⥬� �१ ���ﭨ� x1 � ���ࢠ��� ��� �� �� ᯨ᪠. �६���, ��।������ �� ������⥫쭮�� ������ � ���- ��� Lam; 5.�᭮��� ��⥬�� ��६���� � �� ⨯� y12 - ����� ���室�� �� ���ﭨ� x1 � ���ﭨ� x2 �� ����- 稨 ������� ������; ��� ������ ������� ᮡ��� � ��⥬� �ᯮ������ ��� ⨯� ��� y13 - ����� ���室�� �� ���ﭨ� x1 � ���ﭨ� x3 �� ��- ������ - DataType.��� ������ ᮡ��� ����뢠���� ᯥ樠�쭮 � ����⢨� ������� ������; �ணࠬ�� � ࠧ���� Type, � ������ �� �������㥬�� �����. ���- y32 - ����� ���室�� �� ���ﭨ� x3 � ���ﭨ� x2 �� ��- ਬ��: ���������� ������ � �� ����稨 ��।�; DataType=char; ��� DataType=record A:integer; B:real end; y2k - ����� �������� ��⥬� �� �ॡ뢠��� � ���ﭨ� x2 � �祭�� �६���, ��।�������� �� ������⥫쭮�� ������ �� ⮣� � ��⥬� ��।����� �������騥 ⨯�: � ��ࠬ�� Mju; DataPntr=^DataType; - ��� 㪠��⥫� �� ����� ᮡ���. y3k - ����� �������� ��⥬� �� �ॡ뢠��� � ���ﭨ� x3 � �祭�� �६���, ��।�������� �� ������⥫쭮�� ������ NotePntr=^NoteType; - ��� 㪠��⥫� �� ������ ᮡ���. � ��ࠬ�� Nju. ���������� ࠡ��� ��⥬� �ॡ���� � �祭�� �६��� T, ��- NoteType=record - ��� ����� ᮡ��� � ᯨ᪥. ।����: Numb:integer; ����� ���⥫쭮�� ᮡ���. Mk - ������⢮ ���㦥���� �������� �ॡ������; Time:real; �६� ����㯫���� ᮡ���. Mr - ������⢮ �ॡ������, ��室������ � ��।�; Addr:DataPntr; ���� ������ ᮡ���. Mp - ������⢮ �ॡ������, �襤�� �� ��।� �����㦥��묨. Next,Prev:NotePntr ���� �����饩 � �।��饩 ��१ �� ����稭� � ��ࠧ�� ��� ������⥫�: end; ����� � ᯨ᪥ (�裡). Mk Mr ��६���� � ��⥬� ����� ���騥 ����� � ⨯�: Pk = --------- ; Pr = --------- . Mk + Mp Mk + Mp ActNumb:integer; - ����� ���⥫쭮�� ��⨢���� ᮡ���. ActTime:real; - �६� ����㯫���� ��⨢���� ᮡ���. 9.3.�ணࠬ������ ����� ActAddr:DataPntr; - ���� ������ ��⨢���� ᮡ���. 9.3.1.����� Repeater, - ���稪 ����७�� ॠ����権. � �⮩ ������ ������ ᮡ�⨥ �ࠪ�ਧ���� ⮫쪮 ��� ���� Inform, - ���㫨騪 �⫠��筮� ���ଠ樨. � �६���� ��� ����㯫����. �� �ࠪ���⨪� ᮤ�ঠ��� � ���- RND_INT:integer; - ��ঠ⥫� ���� ���. ��� ����� �ࠢ���饣� ᯨ᪠, ���⮬� ��� ����室����� ᮧ��- Node, - �����⥫� �� �������� ����� ᯨ᪠. ���� �� �����-���� ������� ����� ��� ᮡ�⨩. Route, - ����稩 㪠��⥫� �� ������ ᯨ᪠. � ���������� � ������� � ���� ����� ���稪�� Mk, Mr, Mp, SlyNode:NotePntr; - ������ �㡫���� Node. ������ ���稪 ⥪�饣� � ������� ������� - K, � ���稪 �- Addr:DataPntr; - ����稩 㪠��⥫� �� ����� ᮡ���. ��饣� � �ॡ������ � ��।� - R. 16 9.�ਬ�� ���������饩 �ணࠬ�� 5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.������� ���������饩 �ணࠬ�� 9.3.4.�ணࠬ�� ��ࠡ�⪨ 3-�� ᮡ��� � �ந��諮 ᮡ�⨥ � ���ﭨ� x3, � ��� �� �맮��� �����- ����������� �ணࠬ�� ᮧ������ �� �몥 ��᪠��. ��� ������ ���� ᮡ�⨩, ����� �ॡ������ �室�� �� ��।� � �� ��⥬� ������� ������� ������祭�� ������⥫� PSS � ������� PSS- �����㦥���. �ணࠬ�� ��ࠡ�⪨ �⮣� ᮡ��� ᮤ�ন�: ��⥬�, �ᯮ��㥬� ��।������ ��ࠧ��. ���� ������� ����- begin Mp:=Mp+1; R:=R-1 end; �����饩 �ணࠬ�� ����� ���騩 ���: 9.3.5.�।�⠢����� ���������饩 �ணࠬ�� Program <��� �ணࠬ��> (input,output); Label <���᮪ ��⮪> program Example1(input,output); Const <���᮪ ����⠭�> type Type %include 'type.pss'; %include 'type.pss'; {������ ������祭�� ��⥬��� ⨯��} DataType=char; DataType=<���ᠭ�� ⨯� ������, �ਭ�������� ᮡ���>; var <���ᠭ�� ⨯��, �ᯮ��㥬�� � �ணࠬ��> %include 'var.pss'; Var N,K,R,Mk,Mr,Mp:integer; %include 'var.pss'; {������ ������祭�� ��⥬��� ��६�����} Lam,Mju,Nju,T,Pk,Pr:real; <���ᠭ�� ��६�����, �ᯮ��㥬�� � �ணࠬ��> %include 'proc.pss'; %include 'proc.pss'; {������ ������祭�� ��⥬��� ��楤��} begin <��楤��� � �㭪樨 �ணࠬ��> Initiate; Begin write('N='); readln(N); Initiate; {���樠������ ��६����� ��⥬�} write('Lam='); readln(Lam); <�࣠������ ����� ��室��� ������ ������> write('Mju='); readln(Mju); <���������騩 ����> write('Nju='); readln(Nju); <�࣠������ �뢮�� १�������� ������ ������> write('T='); readln(T); End. write('Inform='); readln(Inform); K:=0; R:=0; Mk:=0; Mr:=0; Mp:=0; ���������騩 ���� �।�⠢��� ᮡ�� ������ �ࠢ������ Start(1,NegExp(Lam),nil,T); ���������: while Simulate do case ActNumb of 1:begin Prepare(1,NegExp(Lam),nil); repeat if K <> N then begin Start(<��ࠬ���� ���樠����樨 �ࠢ���饣� ᯨ᪠>); K:=K+1; Prepare(2,NegExp(Mju),nil) ... end while Simulate do case ActNumb of else begin <��⪠-����� ᮡ���>:<�ணࠬ�� ��ࠡ�⪨ ᮡ���>; Mr:=Mr+1; R:=R+1; ... Prepare(3,NegExp(Nju),nil) <��⪠-����� ᮡ���>:<�ணࠬ�� ��ࠡ�⪨ ᮡ���>; end end; end; ... until Repeater=<������⢮ 横��� ����������>; 18 10.���樠��� ��⥬�� ������� � ����� 3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.�������� 10.4.������ �����祭�� �� ������� ��⮪� ����������� ��⥬� �� ��᪠�� �।�⠢��� ᮡ�� ������⥪� procedure Generate(Numb,Distribution:integer;Param1,Param2:real; ��⥬��� ���㫥� � ����� �ࠢ�� �� �ᯮ�짮����� �⮩ �������- Count:integer); ��. ������ ��⥬� ���� ���७��� �몠 ��᪠��, �ਥ���- ������ ��� ᮡ��� Numb �����砥� ������� Count ��� � ��- ����� �� ᮧ����� ������� ���� ��⥬. �� ��⮪� � ��।�������, ������� �����䨪�� Distribution �᭮���� ����� PSS-��⥬� - ���������� ������⥫쭮 ��- � ��ࠬ��ࠬ� ��⮪� Param1 � Param2. ��室��� ᮡ�⨩, ����� ����� �⭮����� � ��ࠫ���쭮 �ந�- �����䨪��� Distribution ����� ����� ���騥 ���祭��: 室�騬 ����ᠬ. 0 - ࠢ����୮�, 1 - ��ଠ�쭮�, 2 - ���ᮭ��� ��।������. � �᭮�� PSS-��⥬� ����� �ਭ樯� ��⥬� SIMULA � �� ��饭- ��ࠬ���� ��।������ � ��, �� �������� ��� ᮮ⢥������� ��� ��ਠ�⮢ SIMSIM � SIMPLI, ࠧࠡ�⠭��� ��� ���祭�� ��㤥�- ���稪�� Uniform,Normal,NegExp, �� ��� ������� Param2 ࠢ�� 0. ⮢ ��� �᭮��� ������� ����������� �����⬮� ���� ��⥬ ����蠥��� �������� ��⮪� �� �����, 祬 ��� ��� ᮡ�⨩.��� �� ������� ��䥤� #2. ⮣�, �⮡� ��⮪ ��砫 ����������, ����室��� ���������� ��� ��������� � ����������� �몠 ��᪠�� � ������ ��⥬� ��ࢮ� ᮡ�⨥ ��⮪� � �ࠢ���饬 ᯨ᪥. �� �ࠢ����� � SIMSIM � SIMPLI �������� ������� ������� � ��� �������� ���������饩 �ணࠬ��. 10.5.������᪨� ������� �� ������� ����� �㭪�ﬨ, ����� �������� ���祭�� ᮮ⢥�����饣� ���稪�, ��।������ �� �������� �������� ॠ����権 ������. ��ࠬ��� Numb 㪠�뢠�� �� ����� ᮡ��� ��� ���ண� �����頥��� ������� ���祭��: function Done(Numb:integer):real; - �ந�襤�� ᮡ�⨩. function Prep(Numb:integer):real; - ����������� ᮡ�⨩. function Canc(Numb:integer):real; - �⬥������ ᮡ�⨩. ��� ��।������ ������⢠ ����ᥩ ᮮ⢥�����饣� �����, ��- 室����� � ᯨ᪥ �� ����� ������ �६��� ����� �ᯮ�짮����: function Have(Numb:integer):integer; 10.6.�ਬ�� ������, �ᯮ����饩 ������᪨� ������� �������㥬 �ணࠬ�� �業�� ��⥬� ���ᮢ��� ���㦨�����, �ᯮ���� ������᪨� ������� � ���⠢�� ��। ��� �������- ⥫쭮 ������ ����� �।���� � ������� ��ࠡ�⪮� �������. 20 10.���樠��� ��⥬�� ������� � ����� ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ���������� ��������������� ����������� �� �.�.���������� -------------------------------------------------------- writeln('============ �������� ���������� ============='); ������� ������� N�2 writeln('����⭮��� ���㦨����� �������� =', Done(Service) /(Done(Service)+Done(Failure)):8:3); writeln('����⭮��� ��宦����� ��।� =', Prep(Failure) /(Done(Service)+Done(Failure)):8:3); writeln('�।��� � ������� ������� =', S/Repeater/Done(Demand):8:3); ��������� �.�. end. ������������ ���������� 11.�ᮡ������ �������樨 �� �⠭樨 ���� �� ������������ ������� PSS �� ࠡ�� �� �⠭樨 ���� ��।������� 䠩� � �ணࠬ- ( Pascal System for Simulation ) ���, ���ਬ�� PSS1.PAS, ����� ���� �⪮������� � ������� ��- ����� ����樮���� ��⥬�: pc pss1.pas -output pss1.exe -list -include /usr/pascal/include ^ ^ ^ ^ ^ ^ ^ | | | | | | ���� � ������⥪�; | | | | | ���� ��� 㪠����� ��� � | | | | | ������⥪� PSS-��⥬�; | | | | ���� ��� �뤠� ���⨭�� �訡�� | | | | �������樨 (� 䠩� pss1.lst); | | | ��� १������饣� (�ᯮ��塞���) 䠩��; | | ���� ��� 㪠����� ����� 䠩��-१����; | ��� ��室���� 䠩��; ������� ����᪠ ��᪠��-���������. ��樨 -output � -include ����� �������� ᮪�饭��, ��� -o � -i. � 䠩�� ���⨭�� �訡�� �ਢ������ ����� ��室�� ⥪�� � 㪠��- ���� �� �����㦥��� �訡��. ��᪢� - 1993