📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
RegComp, Buttons, StdCtrls, ExtCtrls;
const
COUNT = 100;
type
TForm1 = class(TForm)
RegComp1: TRegComp;
SpeedButton1: TSpeedButton;
teZValue: TEdit;
teTValue: TEdit;
teCentered: TEdit;
teChiSqr: TEdit;
sbZValue: TSpeedButton;
sbTValue: TSpeedButton;
sbCentered: TSpeedButton;
Panel1: TPanel;
teDataValue: TEdit;
teMeanValue: TEdit;
teStdDevValue: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
sbChiSqr: TSpeedButton;
tePopStdDevValue: TEdit;
Label4: TLabel;
sbRTestStat: TSpeedButton;
teRStat: TEdit;
Label5: TLabel;
sbTTableValue: TSpeedButton;
teTTableValue: TEdit;
teN: TEdit;
Label6: TLabel;
sbSmSampCI: TSpeedButton;
teSmCISampLow: TEdit;
teSmCISampHi: TEdit;
tePipedLo: TEdit;
tePipedHi: TEdit;
sbPiped: TSpeedButton;
sbPZRange: TSpeedButton;
tePZRange: TEdit;
Label7: TLabel;
sbLrgSmpCI: TSpeedButton;
teLrgCISampHi: TEdit;
teLrgCISampLo: TEdit;
teMean: TEdit;
sbMean: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure sbZValueClick(Sender: TObject);
procedure DataChange(Sender: TObject);
procedure sbTValueClick(Sender: TObject);
procedure sbChiSqrClick(Sender: TObject);
procedure sbCenteredClick(Sender: TObject);
procedure sbRTestStatClick(Sender: TObject);
procedure sbTTableValueClick(Sender: TObject);
procedure sbSmSampCIClick(Sender: TObject);
procedure sbPipedClick(Sender: TObject);
procedure sbPZRangeClick(Sender: TObject);
procedure sbLrgSmpCIClick(Sender: TObject);
procedure sbMeanClick(Sender: TObject);
private
{ Private declarations }
public
AnInt: TIntervalRec;
aMeanValue: extended;
aDataValue: extended;
aStdDevValue: extended;
aPopStdDevValue: extended;
n,i: integer;
TmpArray,TmpArray2: array [0..COUNT] of double;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
randomize;
for i:= 0 to COUNT do begin
TmpArray[i] := i;
TmpArray2[i] := i + random(4);
end;
DataChange(Sender);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.sbZValueClick(Sender: TObject);
begin
teZValue.Text:= FloatToStr( Regcomp1.GetZValue( aDataValue, aMeanValue, aStdDevValue ) ) ;
end;
procedure TForm1.DataChange(Sender: TObject);
begin
if (teMeanValue.Text <> '') and
(teDataValue.Text <> '') and
(teStdDevValue.Text <> '') and
(tePopStdDevValue.Text <> '') and
(teN.Text <> '') then begin
aMeanValue := StrToFloat(teMeanValue.Text);
aDataValue := StrToFloat(teDataValue.Text);
aStdDevValue := StrToFloat(teStdDevValue.Text);
aPopStdDevValue := StrToFloat(tePopStdDevValue.Text);
n := StrToInt(teN.Text);
end;
end;
procedure TForm1.sbTValueClick(Sender: TObject);
begin
teTValue.Text:= FloatToStr( RegComp1.CalcT( aMeanValue,aDataValue,aStdDevValue,n ) );
end;
procedure TForm1.sbChiSqrClick(Sender: TObject);
begin
teChiSqr.Text:= FloatToStr( RegComp1.CalcChiSquare( TmpArray,TmpArray2,n ) );
end;
procedure TForm1.sbCenteredClick(Sender: TObject);
begin
teCentered.Text:= FloatToStr( RegComp1.GetCenterValue( aDataValue,aMeanValue ) );
end;
procedure TForm1.sbRTestStatClick(Sender: TObject);
var
s1,s2: string;
begin
InputQuery('Enter sample correlation value (-1.0 to +1.0)','Enter: ',S1);
InputQuery('Enter population correlation value (-1.0 to +1.0)','Enter: ',s2);
teRStat.Text := FloatToStr( RegComp1.BVCorrelationSampleTestStat( StrToFloat(s1),StrToFloat(s2),n ) ) ;
end;
procedure TForm1.sbTTableValueClick(Sender: TObject);
begin
tetTableValue.Text:= FloatToStr( RegComp1.TTableValue2( n ) );
end;
procedure TForm1.sbSmSampCIClick(Sender: TObject);
begin
AnInt:= RegComp1.SmallSampleCIforMean( aMeanValue,aStdDevValue,n );
teSmCISampLow.Text := FloatToStr(AnInt.Lower);
teSmCISampHi.Text := FloatToStr(AnInt.Upper);
end;
procedure TForm1.sbPipedClick(Sender: TObject);
var
s: string;
begin
InputQuery('Enter distance (in std deviations) ','Enter: ',s);
AnInt:= RegComp1.MakePiped( aMeanValue,aStdDevValue,StrToFloat(s) );
tePipedLo.Text := FloatToStr(AnInt.Lower);
tePipedHi.Text := FloatToStr(AnInt.Upper);
end;
procedure TForm1.sbPZRangeClick(Sender: TObject);
begin
tePZRange.Text:= FloatToStr( RegComp1.ProbabilityZBetweenPlusMinus( aStdDevValue ) );
end;
procedure TForm1.sbLrgSmpCIClick(Sender: TObject);
begin
AnInt:= RegComp1.LargeSampleCIforMean( aMeanValue,aStdDevValue,'0.95' );
teLrgCISampLo.Text := FloatToStr(AnInt.Lower);
teLrgCISampHi.Text := FloatToStr(AnInt.Upper);
end;
procedure TForm1.sbMeanClick(Sender: TObject);
begin
teMean.Text:= FloatToStr( RegComp1.GetMean ( TmpArray,COUNT ) );
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -