⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 很好运筹学的DEOPHI原代码.包括动态规划,原始单纯形法,对策论,决策论等
💻 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 + -