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. Результати виконання програми
Результати одержані при ручному вводі:
Результати отримані при зчитуванні з файлу:
Дані згенеровані комп’ютером: