📄 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 D6R3
//Driver for routine TRED2
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
s1='%14.6f'; s2='###'; s3='%9.6f';
NP = 3;
var
D,E:array[0..3] of real;
F:TextFile; A,C,FF:matrx2;
I,J,K,L,M:integer;
begin
SetLength(A,4,4);
SetLength(C,4,4);
SetLength(FF,4,4);
A[1, 1]:=1; A[1, 2]:=2; A[1, 3]:=3;
A[2, 1]:=2; A[2, 2]:=2; A[2, 3]:=3;
A[3, 1]:=3; A[3, 2]:=3; A[3, 3]:=3;
For I:=1 To NP do
For J:=1 To NP do
C[I,J]:= A[I,J];
TRED2(C, NP, D, E);
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p6\d6r3.dat');
Rewrite(F);
Writeln(F, ' diagonal elements');
Writeln(F);
Writeln(F,Format(s1,[D[1]]),Format(s1,[D[2]]),Format(s1,[D[3]]));
Writeln(F);
Writeln(F,' off-diagonal elements');
Writeln(F);
Writeln(F,Format(s1,[E[2]]),Format(s1,[E[3]]));
//Check transformation matrx
For J:=1 To NP do
begin
For K:=1 To NP do
begin
FF[J,K]:=0;
For L:=1 To NP do
For M:=1 tO NP DO
FF[J,K]:=FF[J,K]+C[L,J]*A[L,M]*C[M,K];
end;
end;
//How does it look?
Writeln(F);
Writeln(F, ' Tridiangonal matrx');
Writeln(F);
For I:=1 To NP do
Writeln(F,Format(s1,[FF[I,1]]),Format(s1,[FF[I,2]]),
Format(s1,[FF[I,3]]));
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p6\d6r3.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -