📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, ComCtrls;
const length=10;
type
TForm1 = class(TForm)
Panel1: TPanel;
Pgmain: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label9: TLabel;
GroupBox3: TGroupBox;
TabSheet3: TTabSheet;
GroupBox4: TGroupBox;
Label10: TLabel;
Label11: TLabel;
Edit8: TEdit;
Edit9: TEdit;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label2: TLabel;
GroupBox1: TGroupBox;
Label3: TLabel;
Edit3: TEdit;
Button2: TButton;
BitBtn2: TBitBtn;
GroupBox5: TGroupBox;
GroupBox6: TGroupBox;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
GroupBox2: TGroupBox;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
type myarray1=array[1..length] of array[1..length] of tedit;
type myarray2=array[1..length] of Tlabel;
var
Form1: TForm1;
implementation
{$R *.dfm}
var n:integer;
P,D:array[1..length] of real;
shuru1:myarray1;
shuru2: myarray2;
Zhuan,Pei:real;
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,j:integer;//Zhuan,Pei:real;
P0,x,x1,x2,D0,f:real;
begin
Zhuan:=StrTofloat(Edit1.Text); //单位货物赢利数
Pei:=StrTofloat(Edit2.Text); //单位货物损失费
P0:=0;
for i:=1 to n do
begin
D[i]:=strtofloat(shuru1[i,1].text);
P[i]:=strtofloat(shuru1[i,2].text);
P0:=P0+P[i];
end;
if P0<>1 then
begin
showmessage('输入的概率数据不合法!');
exit;
end
else
begin
x:=Zhuan/(Zhuan+Pei);
x1:=0;x2:=0;
for j:=1 to n-1 do
begin
x1:=x1+p[j];
x2:=x1+p[j+1];
if (x>x1) and (x<=x2) then
begin
D0:=D[j+1];
break;
end;
end;
f:=0;
for i:=1 to n do
if D[i]>D0 then
f:=f+D0*Zhuan*P[i]
else
f:=f+(D[i]*Zhuan-(D0-D[i])*Pei)*P[i];
pgmain.ActivePageIndex:=2;
edit8.Text:=formatfloat('0.###',D0);
edit9.Text:=formatfloat('0.###',f);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:= 0 to pgMain.PageCount - 1 do
pgMain.Pages[I].TabVisible := False;
pgmain.ActivePageIndex:=0 ;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
begin
n:=0;
if edit3.text<>'' then
begin
try
for i:=1 to n do
begin
shuru2[i].free;
for j:=1 to 2 do
shuru1[i,j].free;
end;
finally
n:=0;
n:=strtoint(edit3.text);
if n>9 then
begin
showmessage('分布个数不能大于9!');
pgmain.ActivePageIndex:=0;
end
else
begin
for i:=1 to n do
for j:=1 to 2 do
begin
shuru1[i,j]:=tedit.Create(self);
shuru1[i,j].parent:=tabsheet2;
shuru1[i,j].Width:=62;
shuru1[i,j].Height:=24;
shuru1[i,j].left:=80+(j-1)*(shuru1[i,j].Width+80);
shuru1[i,j].top:=50+(i-1)*(shuru1[i,j].Height+2);
shuru2[i]:=Tlabel.Create(self);
shuru2[i].parent:=tabsheet2;
shuru2[i].Width:=40;
shuru2[i].Height:=24;
shuru2[i].left:=50;
shuru2[i].top:=54+(i-1)*(shuru2[i].Height+2);
shuru2[i].Caption:='D'+inttostr(i)+'='+' P'+inttostr(i)+'=';
end;
pgmain.ActivePageIndex:=1;
end;
end;
end;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1'..'9']) then
key:=chr(0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -