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