Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TForm1 = class(TForm)
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- Edit1: TEdit;
- Edit2: TEdit;
- Edit3: TEdit;
- Button1: TButton;
- Button2: TButton;
- Label4: TLabel;
- Label5: TLabel;
- Label6: TLabel;
- Label7: TLabel;
- Label8: TLabel;
- Label9: TLabel;
- Label10: TLabel;
- Label11: TLabel;
- Label12: TLabel;
- Label13: TLabel;
- Label14: TLabel;
- Label15: TLabel;
- Button3: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- const
- n = 5; {kolichestvo stantsii}
- var
- Form1: TForm1;
- rg:real; {opytnaya nagruzka}
- s:real; {opytnaya proizvoditel'nost'}
- p:real; {veroyatnost' prohozhdeniya kadra}
- rp:real; {opytnaya veroyatnost' prohozhdeniya kadra}
- i:integer; {schetchik kollizii(neproshedshih kadrov)}
- j:integer; {schetchik uspeshno proshedshih kadrov}
- k:integer; {peremennaya "proverki prohoda kadrov" }
- l:integer; {kolichestvo kadrov v nabore}
- g:real; {normirovannaya propuschennaya nagruzka}
- r:integer; {dlitel'nost' kadra}
- bool:boolean; {flag sostoyaniya}
- implementation
- {$R *.dfm}
- procedure aloxa; {protsedura ALOHA}
- begin
- i:=0;
- j:=0;
- for k:= 1 to l do {nachalo proverki prohoda kadrov}
- begin
- bool:=false;{esli false to paket ne proshel}
- while bool=false do {poka bool=false do...}
- begin
- rp:=(random(100)+1)/100;{opytnaya veroyatnost' prohozhdeniya kadra - sluchainym obrazom generiruetsya}
- if (rp<=p) then {esli opytnaya veroyatnost' prohozhdeniya kadra <= veroyatnost' prohozhdeniya kadra}
- begin
- bool:=true;{...bool:=true;}
- inc(j);{schitaet kolichestvo uspeshno proshedshih paketov}
- end
- else inc(i);{kolichestvo neproshedshih paketov}
- end;
- end;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- randomize;{generator sluchainyh chisl}
- if edit1.Text <> '' then
- g:=StrToFloat(Edit1.Text);
- if edit2.Text <> '' then
- r:=StrToInt(Edit2.Text);
- if edit3.Text <> '' then
- l:=StrToInt(Edit3.Text);
- p:=exp(-2*G);{veroyatnost' prohozhdeniya kadra}
- aloxa;
- rg:=((j+i)*n*1/r)/l; {opytnoe znachenie normirovannoi propuschennoi nagruzki}
- s:=rg*exp(-2*rg); {opytnoe znachenie proizvoditel'nosti}
- label5.Caption:='Teoreticheskoe znachenie proizvoditel'nosti '+FloattoStr(g*p);
- label6.Caption:='Opytnoe znachenie proizvoditel'nosti '+FloatToStr(s);
- label7.Caption:='Kolichestvo kollizii na '+floattostr(l)+' paketov '+floattostr(i);
- label8.Caption:='Obschee vremya peredachi kadrov '+floattostr((j+i)*r);
- label9.Caption:='Vremya peredachi odnogo kadra '+floattostr((j+i)*r/l);
- p:=exp(-G);
- aloxa;
- rg:=((j+i)*n*1/r)/l; {opytnoe znachenie normirovannoi propuschennoi nagruzki}
- s:=rg*exp(-rg); {opytnoe znachenie proizvoditel'nosti}
- label11.Caption:='Teoreticheskoe znachenie proizvoditel'nosti '+FloattoStr(g*p);
- label12.Caption:='Opytnoe znachenie proizvoditel'nosti '+FloatToStr(s);
- label13.Caption:='Kolichestvo kollizii na '+floattostr(l)+' paketov '+floattostr(i);
- label14.Caption:='Obschee vremya peredachi kadrov '+floattostr((j+i)*r);
- label15.Caption:='Vremya peredachi odnogo kadra '+floattostr((j+i)*r/l);
- end;
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- close;
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- edit1.Text:='';
- edit2.Text:='';
- edit3.Text:='';
- label5.Caption:='';
- label6.Caption:='';
- label7.Caption:='';
- label8.Caption:='';
- label9.Caption:='';
- label11.Caption:='';
- label12.Caption:='';
- label13.Caption:='';
- label14.Caption:='';
- label15.Caption:='';
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement