📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
matrx2=array of array of real;
var
Form1: TForm1;
implementation
//PROGRAM D9R10
//Driver for routine SIMPLX
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
s1='%8.2f';
N = 4; M = 4; NP = 5; MP = 6; M1 = 2; M2 = 1; M3 = 1; NM1M2 = N+M1+M2;
var
F:TextFile; A:matrx2;
IZROV,IPOSV:array[0..4] of integer; ANUM:array[0..5] of real;
TXT:array[0..7] of string; ALPHA:array[0..5] of string;
I,J,JJ,JMAX,ICASE:integer; STR1,STR2,STR3:string;
begin
SetLength(A,7,6);
TXT[1]:='x1'; TXT[2]:='x2'; TXT[3]:='x3'; TXT[4]:='x4';
TXT[5]:='y1'; TXT[6]:='y2'; TXT[7]:='y3';
A[1, 1]:=0; A[1, 2]:=1; A[1, 3]:=1; A[1, 4]:=3; A[1, 5]:=-0.5;
A[2, 1]:=740; A[2, 2]:=-1; A[2, 3]:=0; A[2, 4]:=-2; A[2, 5]:=0;
A[3, 1]:=0; A[3, 2]:=0; A[3, 3]:=-2; A[3, 4]:=0; A[3, 5]:=7;
A[4, 1]:=0.5; A[4, 2]:=0; A[4, 3]:=-1; A[4, 4]:=1; A[4, 5]:=-2;
A[5, 1]:=9; A[5, 2]:=-1; A[5, 3]:=-1; A[5, 4]:=-1; A[5, 5]:=-1;
A[6, 1]:=0; A[6, 2]:=0; A[6, 3]:=0; A[6, 4]:=0; A[6, 5]:=0;
SIMPLX(A, M, N, MP, NP, M1, M2, M3, ICASE, IZROV, IPOSV);
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p9\d9r10.dat');
Rewrite(F);
Writeln(F);
If ICASE = 1 Then
Writeln(F, ' Unbounded objective function')
Else If ICASE = -1 Then
Writeln(F, ' No solutions satisfy constraints given');
JJ:=1;
For I:=1 To N do
begin
If IZROV[I] <= N + M1 + M2 Then
begin
ALPHA[JJ]:=TXT[IZROV[I]];
JJ:=JJ + 1;
end;
end;
JMAX:=JJ - 1;
Writeln(F);
STR1:=' ';
For JJ:=1 To JMAX do
STR1:=STR1 + ALPHA[JJ]+' ';
Writeln(F, ' ',STR1);
For I:=1 To M + 1 do
begin
If I > 1 Then
ALPHA[1]:=TXT[IPOSV[I - 1]]
Else
ALPHA[1]:=' ';
ANUM[1]:=A[I, 1];
JJ:=2;
For J:=2 To N + 1 do
begin
If IZROV[J - 1] <= (N + M1 + M2) Then
begin
ANUM[JJ]:=A[I, J];
JJ:=JJ + 1;
end;
end;
JMAX:=JJ - 1;
STR2:=' ';
For JJ:=1 To JMAX do
begin
STR3:=' ';
STR3:=COPY(FloatToStr(ANUM[JJ]),1,7);
STR2:= STR2 + STR3 + ' ';
end;
Writeln(F, ALPHA[1],STR2);
end;
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p9\d9r10.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -