📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Panel3: TPanel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Label4: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label6: TLabel;
Label7: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label8: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Label9: TLabel;
Edit9: TEdit;
Label13: TLabel;
Edit10: TEdit;
Edit11: TEdit;
Label14: TLabel;
Label15: TLabel;
Edit12: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses math;
{$R *.dfm}
function J(a:real;n:integer):real ;
var i:integer;
s2:integer;
s1:real;
begin
s1:=power(a,n);
s2:=1;
for i:=1 to n do
s2:=s2*i;
result:=s1/s2;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var i1,i2,n,m:integer;
S1,S2,x,u,qp,P0,Px,Q,A,K,Lq,Ls,Wq,Ws:real;
begin
if (edit1.Text='') or (edit2.Text='')or (edit3.Text='') or (edit9.Text='') then
begin
showmessage('请输入完整数据!');
exit;
end;
S1:=0;
S2:=0;
n:=StrToint(Edit1.Text);
x:=StrTofloat(Edit2.Text);
u:=StrTofloat(Edit3.Text);
m:=StrToint(Edit9.Text);
qp:=x/u;
for i1:=0 to n do
S1:=S1+ J(qp,i1);
for i2:=1 to m do
S2:=S2+power(qp/n,i2)*J(qp,n);
P0:=1/(S1+S2) ;
Px:= J(qp,n)*power(qp/n,m)*P0; //损失概率
Q :=1-Px ; //相对通过能力:
A:=x*Q ; //绝对通过能力:
K:=A/u ; //服务员平均数
Lq:= J(qp,n)*(qp/n)*(P0/sqr(1-qp/n)) *(1-(m+1)*power(qp/n,m)+m*power(qp/n,m+1)); //排队顾客平均数
Ls:=Lq+K; //系统内顾客的平均数
Wq:=Lq/x; //平均排队时间
Ws:=Wq+Q/u; //平均逗留时间
edit4.Text:= formatfloat('0.000 ',Px);
edit5.Text:=formatfloat('0.000',Q);
edit6.Text:= formatfloat('0.000',A);
edit7.Text:=formatfloat('0.000',K);
edit8.Text:=formatfloat('0.000',Lq);
edit10.Text:=formatfloat('0.000',Ls);
edit11.Text:=formatfloat('0.000',Wq);
edit12.Text:=formatfloat('0.000',Ws);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -