![]() |
|
#1
|
|||
|
|||
![]() Здравствуйте, ребят подскажите пожалуйста мучаюсь уже не первый час! Как мне это реализовать в 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; |