📄 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;
Edit6: TEdit;
Edit7: TEdit;
Label9: TLabel;
Edit9: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses math;
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var n,i:integer;
x,u,s,qp,P0,g,Ls,Lq,Px,fuhe:real;
begin
if (edit1.Text='') or (edit2.Text='')or (edit3.Text='') or (edit9.Text='') then
begin
showmessage('请输入完整数据!');
exit;
end;
n:=strtoint(edit1.text);
x:=strtofloat(edit2.text);
u:=strtofloat(edit3.text);
g:= strtofloat(edit9.text);
qp:=x/u ;
if g>1.0 then
begin
showmessage('概率不能大于 1!');
exit;
end;
s:=0;
for i:=0 to n do
s:=s+ power(qp,i)*exp((ln(1-g)/n)*i*(i-1)/2) ;
P0:=1/s;
Ls:=0 ; Lq:=0;
for i:=1 to n do
begin
Ls:=Ls+i*power(qp,i)*exp((ln(1-g)/n)*i*(i-1)/2 )*P0; //系统内顾客平均数
Lq:=Lq+ (i-1)*power(qp,i)*exp((ln(1-g)/n)*i*(i-1)/2 )*P0; //排队顾客的平均数
end;
Px:=1-(Ls-Lq)/qp; //系统损失概率
fuhe:=Ls-Lq; //服务员平均负荷
edit4.Text:=formatfloat('0.000',Ls); //格式化输出结果
edit5.Text:= formatfloat('0.000',Lq);
edit6.Text:=formatfloat('0.000',Px);
edit7.Text:=formatfloat('0.000',fuhe);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -