📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
TYPE
matrx2 = array of array of real;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
//PROGRAM D6R6
//Driver for routine ELMHES
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
A:matrx2; R,C:Array[0..5] of real;
I,J:Integer; F:TextFile;
const
s1='%10.2f'; s2='.###0e+00'; NP = 5;
begin
setlength(A ,6,6);
//输入已知的方程组的系数矩阵
A[1, 1]:=1; A[1, 2]:=2; A[1, 3]:=300; A[1, 4]:=4; A[1, 5]:=5;
A[2, 1]:=2; A[2, 2]:=3; A[2, 3]:=400; A[2, 4]:=5; A[2, 5]:=6;
A[3, 1]:=3; A[3, 2]:=4; A[3, 3]:=5; A[3, 4]:=6; A[3, 5]:=7;
A[4, 1]:=4; A[4, 2]:=5; A[4, 3]:=600; A[4, 4]:=7; A[4, 5]:=8;
A[5, 1]:=5; A[5, 2]:=6; A[5, 3]:=700; A[5, 4]:=8; A[5, 5]:=9;
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p6\d6r6.dat');
Rewrite(F);
//Print norms
Writeln(F);
Writeln(F, ' ******* Original Matrix ******* ');
For I:= 1 To NP do
Writeln(F, Format(s1,[A[I,1]]),Format(s1,[A[I,2]]),Format(s1,[A[I,3]]),
Format(s1,[A[I,4]]), Format(s1,[A[I,5]]));
Writeln(F);
Writeln(F, ' ******* Balance Matrix ******* ');
Writeln(F);
BALANC(A, NP);
For I:= 1 To NP do
Writeln(F, Format(s1,[A[I,1]]),Format(s1,[A[I,2]]),Format(s1,[A[I,3]]),
Format(s1,[A[I,4]]), Format(s1,[A[I,5]]));
Writeln(F);
Writeln(F, ' ******* Reduce to Hessenberg Form ******* ');
Writeln(F);
ELMHES(A,NP);
For J:=1 To NP-2 DO
For I:=J+2 To NP do
A[I,J]:=0;
For I:= 1 To NP do
Writeln(F, FormatFloat(s2,A[I,1]),' ',FormatFloat(s2,A[I,2]),' ',
FormatFloat(s2,A[I,3]),' ',FormatFloat(s2,A[I,4]),' ',
FormatFloat(s2,A[I,5]));
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p6\d6r6.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -