📄 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;
var
Form1: TForm1;
ISET:^integer; GSET:^real;
implementation
//PROGRAM D11R6B
//Driver for routine TPTEST
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
s1='%12.4f'; NPTS = 500; ANOISE = 0.3; NSHFT = 10; EPS = 0.01;
var
F:TextFile;
DATA1,DATA2,DATA3:array[0..NPTS] of real;
I,J:integer;
OFFSET,GAUSS,AVE1,VAR1,AVE2,VAR2,AVE3,VAR3,SHIFT,T1,PROB1,T2,PROB2:real;
begin
New(ISET); New(GSET);
Randomize;
//Generate Gaussian distributed data
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p11\d11r6B.dat');
Rewrite(F);
Writeln(F,' Correlated: Uncorrelated:');
Writeln(F,' Shift T Probability T Probability');
OFFSET:=(NSHFT / 2) * EPS;
For J:=1 To NPTS do
begin
GAUSS:=GASDEV;
DATA1[J]:=GAUSS;
DATA2[J]:=GAUSS + ANOISE * GASDEV;
DATA3[J]:=GASDEV + ANOISE * GASDEV;
end;
AVEVAR(DATA1, NPTS, AVE1, VAR1);
AVEVAR(DATA2, NPTS, AVE2, VAR2);
AVEVAR(DATA3, NPTS, AVE3, VAR3);
For J:=1 To NPTS do
begin
DATA1[J]:=DATA1[J] - AVE1 + OFFSET;
DATA2[J]:=DATA2[J] - AVE2;
DATA3[J]:=DATA3[J] - AVE3;
end;
For I:=1 To NSHFT + 1 do
begin
SHIFT:=I * EPS;
For J:=1 To NPTS do
begin
DATA2[J]:=DATA2[J] + EPS;
DATA3[J]:=DATA3[J] + EPS;
end;
TPTEST(DATA1, DATA2, NPTS, T1, PROB1);
TPTEST(DATA1, DATA3, NPTS, T2, PROB2);
Writeln(F,Format('%6.2f',[SHIFT]),Format(s1,[T1]),Format(s1,[PROB1]),
Format(s1,[T2]),Format(s1,[PROB2]));
end;
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p11\d11r6B.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -