Смекни!
smekni.com

Критерій відношення правдоподібності для великих вибірок (стр. 6 из 6)

if(RdBtn_HandEnter.Checked ) then

begin

st:=EvaluteStatistic(ValArr, ProbArray, StrGrd.ColCount-1,false);

Memo_WriteResult.Lines.Add(FloatToStr(st));

end

else

if (RdBtn_FileRead.Checked ) then

begin

st:=EvaluteStatistic(ValArr, ProbArray,s.Count,false );

Memo_WriteResult.Lines.Add(FloatToStr(st));

end

else

begin

st:=EvaluteStatistic(ValArr, ProbArray,0,true);

Memo_WriteResult.Lines.Add(FloatToStr(st));

end;

Memo_WriteResult.Lines.Add('Значення критичної точки:');

if(RdB_CompGenerate.Checked )then

critical_point:=FindCriticalPoint(3)

else

critical_point:=FindCriticalPoint(StrToInt(Frm.Cmb_CountValue.Text));

Memo_WriteResult.Lines.Add(FloatToStr(critical_point));

if(st<critical_point) then

Memo_WriteResult.Lines.Add('Висновок: гіпотеза не суперечить реалізації вибірки.')

else

Memo_WriteResult.Lines.Add('Висновок: гіпотеза суперечить реалізації вибірки.');

end;

procedure TFrm.RdBtn_HandEnterClick(Sender: TObject);

var i:Integer;

begin

Memo_WriteResult.Lines.Clear();

Edt_Average.Visible:=false; Lbl_Average.Visible:=false;Cmb_CountValue.Visible:=true;

Edt_Dispersion.Visible: = false; Lbl_Dispersion. Visible: = false;Lbl_CountValue.Visible :=true;

StrGrd.ColCount:=StrToInt(Cmb_CountValue.Text )+1;

for i:=1 to StrGrd.ColCount do

StrGrd.Cols[i].Text:='x'+IntToStr(i);

StrGrd.RowCount:=3;

StrGrd.Rows[1].Text:='Частоти';

StrGrd.Rows[2].Text:='Ймовірності';

end;

procedure TFrm.Cmb_CountValueChange(Sender: TObject);

begin

RdBtn_HandEnterClick( Sender);

RdBtn_HandEnter.Checked:=true;

end;

procedure TFrm.RdBtn_FileReadClick(Sender: TObject);

begin

Memo_WriteResult.Lines.Clear();

Edt_Average.Visible:=false; Lbl_Average.Visible:=false;Cmb_CountValue.Visible:=false;

Edt_Dispersion.Visible:= false; Lbl_Dispersion.Visible:=false;Lbl_CountValue.Visible :=false;

List:= TStringList.Create;

if OpnDg.Execute then

List.LoadFromFile(OpnDg.FileName );

end;

function SetGaussNumber(a:String):Boolean;

var i:Integer;

begin

SetGaussNumber:=false;

for i:=1 to Frm.StrGrd.ColCount-1 do

begin

if( Frm.StrGrd.Cells[i,0]<>'') then

begin

if(Frm.StrGrd.Cells[i,2]='') then

Frm.StrGrd.cells[i,2]:='1';

if(Frm.StrGrd.Cells[i,1]=a) then

begin

Frm.StrGrd.cells[i,2]:=IntToStr(StrToInt(Frm.StrGrd.cells[i,2])+1);

SetGaussNumber:=true;

end

end;

end;

end;

procedure TFrm.RdB_CompGenerateClick(Sender: TObject);

var i:Integer;

begin

Memo_WriteResult.Lines.Clear();

Randomize;

StrGrd.Rows[1].Text:='Значення';

StrGrd.Rows[2].Text:='Частоти';

Edt_Average.Visible:=true; Lbl_Average.Visible:=true;Cmb_CountValue.Visible:=false;

Edt_Dispersion.Visible:= true; Lbl_Dispersion.Visible:=true;Lbl_CountValue.Visible :=false;

for i:=0 to 50 do

begin

if StrGrd.Col <i+1 then

StrGrd.ColCount:=StrGrd.ColCount+1;

if(not(SetGaussNumber(FloatToStr(StrToFloat(Frm.Edt_Average.Text)+RandG(0 ,1)*Power(StrToFloat(Frm.Edt_Dispersion.Text),1./2))))) then //StrToFloat(Frm.Edt_Average.Text) ,StrToFloat(Frm.Edt_Dispersion.Text )

begin

StrGrd.Cells[i+1,0]:='x'+IntToStr(i+1);

StrGrd.Cells[i+1,1]:=FloatToStr(StrToFloat(Frm.Edt_Average.Text)+RandG(0 ,1)*Power(StrToFloat(Frm.Edt_Dispersion.Text),1./2));

StrGrd.Cells[i+1,2]:='1';

end;

end;

end;

procedure TFrm.Edt_AverageChange(Sender: TObject);

begin

RdB_CompGenerate.Checked:=false;

RdB_CompGenerate.Checked:=true;

end;

procedure TFrm.Edt_DispersionChange(Sender: TObject);

begin

RdB_CompGenerate.Checked:=false;

RdB_CompGenerate.Checked:=true;

end;

end.


Додаток C. Результати виконання програми

Результати одержані при ручному вводі:

Результати отримані при зчитуванні з файлу:

Дані згенеровані комп’ютером: