📄 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;
implementation
//PROGRAM D11R9
//Driver for routine CHSTWO
uses
unit2;
{$R *.DFM}
Function EXPDEV:real;
begin
EXPDEV:= -Ln(Random);
end;
procedure TForm1.Button1Click(Sender: TObject);
const
s1='%12.2f'; s2 = '.###0e+00'; NPTS = 2000; NBINS = 10;
var
F:TextFile;
BINS1,BINS2:array[0..NBINS] of real;
I,J,IBIN:integer; X,DF,CHSQ,PROB:real;
begin
Randomize;
For J:=1 To NBINS do
begin
BINS1[J]:=0;
BINS2[J]:=0;
end;
For I:=1 To NPTS do
begin
X:=EXPDEV;
IBIN:=Trunc(X * NBINS / 3) + 1;
If IBIN <= NBINS Then BINS1[IBIN]:=BINS1[IBIN] + 1;
X:= EXPDEV;
IBIN:=Trunc(X * NBINS / 3) + 1;
If IBIN <= NBINS Then BINS2[IBIN]:=BINS2[IBIN] + 1;
end;
CHSTWO(BINS1, BINS2, NBINS, -1, DF, CHSQ, PROB);
//Generate Gaussian distributed data
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p11\d11r9.dat');
Rewrite(F);
Writeln(F);
Writeln(F,' Dataset 1 Dataset 2');
For I:= 1 To NBINS do
Writeln(F,Format(s1,[BINS1[I]]),Format(s1,[BINS2[I]]));
Writeln(F);
Writeln(F, 'Chi-squared: ', FormatFloat(s2,CHSQ));
Writeln(F, 'Probability: ', FormatFloat(s2,PROB));
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p11\d11r9.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -