unit
Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math, Grids;
type
TForm3 =
class
(TForm)
Label1: TLabel;
Label2: TLabel;
Mem: TMemo;
Label3: TLabel;
Memo12: TMemo;
Memo13: TMemo;
Memo14: TMemo;
Memo15: TMemo;
Memo16: TMemo;
Memo17: TMemo;
Memo18: TMemo;
Memo19: TMemo;
Memo110: TMemo;
Memo11: TMemo;
SG: TStringGrid;
Label4: TLabel;
Label5: TLabel;
procedure
FormCreate(Sender: TObject);
procedure
FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint;
var
Handled:
Boolean
);
procedure
FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint;
var
Handled:
Boolean
);
procedure
FormActivate(Sender: TObject);
private
public
D :
double
;
Mass :
Array
[
1..100
]
of
double
;
PO :
Array
[
1..10
]
of
real
;
end
;
Const
Form3: TForm3 =
nil
;
implementation
uses
TV1, MO;
{$R *.dfm}
procedure
TForm3
.
FormCreate(Sender: TObject);
Var
i,j,p,op:
integer
;
Chr:
String
;
Sum,s:
double
;
begin
Label2
.
Caption:=
'Дисперсия= '
+FloatToStr(D)+#
13
+#
13
+
'Дисперсия рассчитывается'
+
' по формуле: D=x1^2*p1+x2^2+p2...-M где M- мат. ожидание'
+#
13
;
Mem
.
Lines
.
Insert(
0
,
'Оценка дисперсии'
+#
13
);
Mem
.
Lines
.
Insert(
1
,
''
);
Mem
.
Lines
.
Insert(
2
,
'Оценка дисперсии считается по формуле: 1\n((x1-M1)^2+...+(xn-Mn)^2). Все значение округлены до 4 знаков после запятой.'
);
p:=
10
; op:=
1
;
for
i:=
3
to
22
do
Begin
sum:=
0
;
Chr:=
''
;
for
j:=
1
to
p
do
Begin
Sum:=sum+Power(Mass[j]-PO[op],
2
);
Chr:=Chr+
'('
+FloatToStr(Mass[j])+
' - '
+FloatToStr(PO[op])+
')'
+
'^'
+
'2'
+
' + '
;
End
;
Delete(Chr,Length(Chr)-
2
,
3
);
if
(i
mod
2
)=
0
then
Mem
.
Lines
.
Insert(i,
''
)
else
begin
Mem
.
Lines
.
Insert(i,
'D'
+IntToStr(op)+
'= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
SG
.
Cells[op-
1
,
0
]:=IntToStr(p);
SG
.
Cells[op-
1
,
1
]:=FloatToStr(RoundTo(Sum/p,-
4
));
Case
op
of
1
: Memo12
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
2
: Memo13
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
3
: Memo14
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
4
: Memo15
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
5
: Memo16
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
6
: Memo17
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
7
: Memo18
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
8
: Memo19
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
9
: Memo110
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
10
: Memo11
.
Lines
.
Insert(
1
,
'D'
+IntToStr(op)+
'= '
+
'1/'
+IntToStr(p)+
'*'
+
'('
+Chr+
')= '
+FloatToStr(RoundTo(Sum/p,-
4
))+#
13
);
End
;
p:=p+
10
;
op:=op+
1
;
End
;
End
;
end
;
procedure
TForm3
.
FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint;
var
Handled:
Boolean
);
begin
VertScrollBar
.
Position:=VertScrollBar
.
Position-
10
;
end
;
procedure
TForm3
.
FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint;
var
Handled:
Boolean
);
begin
VertScrollBar
.
Position:=VertScrollBar
.
Position+
10
;
end
;
procedure
TForm3
.
FormActivate(Sender: TObject);
begin
if
Form2=
nil
then
begin
ShowMessage(
'Вы не посчитали математическое ожидание!'
);
Exit;
End
;
end
;
end