четверг, 23 декабря 2010 г.

Лабораторная работа №6.

Код программы.
procedure TForm1.Button1Click(Sender: TObject);
const
N=500;
var
    y,x,xsc,ysc,xmin,ymin,xmax,ymax,ky,kx,dx,A,B,C,h,x1,x2,y1,xsc1,ysc1,xsc2,i,w,l:real;
    zxsc,zysc:integer;
begin
  Image1.Canvas.pen.Color := clblack;

A:= StrtoInt(Edit1.Text);
B:= StrtoInt(Edit2.Text);
C:= StrtoInt(Edit3.Text);
xmin:=StrtoInt(Edit4.Text);
ymin:=StrtoInt(Edit5.Text);
xmax:=StrtoInt(Edit6.Text);
ymax:=StrtoInt(Edit7.Text);
i:= StrtoInt(Edit9.Text);
w:= StrtoInt(Edit10.Text);
l:= StrtoInt(Edit8.Text);

Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.pen.Color := clBlue;
kx:=Image1.Width/(xmax-xmin);
ky:=Image1.Height/(ymax-ymin);
zxsc:=round((0-xmin)*kx);
zysc:=round(Image1.Height-(0-ymin)*ky);
Image1.Canvas.MoveTo(zxsc,0);
Image1.Canvas.LineTo(zxsc,Image1.Height);
Image1.Canvas.MoveTo(0,zysc);
Image1.Canvas.LineTo(Image1.Width,zysc);



Image1.Canvas.Pen.Color:=clyellow;
h:=(w-i)/l;
x1:=i;
while (x1-h<=w) do
begin
    x2:=x1-h;
    y1:=abs((A*x1*x1)+(B*x1)+C);
    xsc1:=Round((x1-Xmin)*kx);
    ysc1:=Round(Image1.Height-(y1-Ymin)*ky);
    xsc2:=Round((x2-Xmin)*kx);
    Image1.Canvas.MoveTo(Round(xsc1),Round(ysc1));
    Image1.Canvas.rectangle(Round(xsc1),Round(ysc1),Round(xsc2),Round(zysc));
    x1:=x1+h;
end;
      dx:=(xmax-xmin)/n;
x:=xmin;
Image1.canvas.Pen.Color:=clgreen;
while x<xmax do
begin
    y:=abs((A*x*x)+(B*x)+C);
    xsc:=(x-xmin)*(kx);
    ysc:=Image1.Height-(y-ymin)*ky;
    Image1.Canvas.Ellipse (round(xsc), round(ysc), round(xsc+2), round(ysc+2));
    x:=x+dx;
end;
end;                          

Интерфейс.



Комментариев нет:

Отправить комментарий