
16.12.2010, 10:23
|
Прохожий
|
|
Регистрация: 16.12.2010
Сообщения: 39
Репутация: -2254
|
|
Процедура
Здравствуйте, ребят подскажите пожалуйста мучаюсь уже не первый час! Как мне это реализовать в Delphi? Куда именно это написать -(
Код:
procedure Tform1.Regress(num: integer); {num кол-во элементов}
var
a, b, x_avg, y_avg, temp, temp2, cor: real;
t, min, max: integer;
ch: char;
begin
y_avg := 0;
x_avg := 0;
for t := 1 to num do
begin
y_avg := y_avg + StrToFloat(StringGrid1.Cells[t,1]);
x_avg := x_avg + StrToFloat(StringGrid1.Cells[t,0]);
end;
x_avg := x_avg/num;
y_avg := y_avg/num;
temp := 0; temp2 := 0;
for t := 1 to num do
begin
temp := temp +(StrToFloat(StringGrid1.Cells[t,1]) - y_avg)*(StrToFloat(StringGrid1.Cells[t,0])-x_avg);
temp2 := temp2 +(t - x_avg)*(t-x_avg);
end;
b := temp/temp2;
a := y_avg-(b*x_avg);
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.Pen.Color:=clWhite;
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.Pen.Color:=clRed;
For t:=1 to num do
image1.Canvas.Ellipse(Trunc(StrToFloat(StringGrid1.Cells[t,0]))-2,Image1.Height -Trunc(StrToFloat(StringGrid1.Cells[t,1]))-2,
Trunc(StrToFloat(StringGrid1.Cells[t,0]))+2,Image1.Height -Trunc(StrToFloat(StringGrid1.Cells[t,1]))+2);
Image1.Canvas.Pen.Color:=clBlack;
image1.Canvas.MoveTo(1, Image1.Height - Trunc(a+b));
image1.Canvas.LineTo(100,Image1.Height - Trunc(a+b*100));
Label2.Caption:='Y = '+FloatToStr(Trunc(b*100)/100)+'x + '+FloatToStr(Trunc(a*100)/100);
end;
|