пятница, 24 декабря 2010 г.

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

Код программы.
procedure TForm1.Button1Click(Sender: TObject);
 const n=6;l=2;
       m: array[1..n,1..l]of real=((15,15),(15,40),(25,40),(20,35),(25,30),(15,30));
  var p1,p2,p3:array[1..l,1..l] of real;
      pn:array[1..n,1..l] of real;
      i,j,g,OXsc,OYsc:integer;
      kx,ky,Xmax,Ymin,Ymax,Xmin,ugol:real;
  begin

   Xmax:=100;
   Ymin:=-100;
   Ymax:=100;
   Xmin:=-100;
   Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.pen.Color := clred;
   kx:=Image1.Width/(Xmax-Xmin);
   ky:=Image1.Height/(Ymax-Ymin);
   OXsc:=Round((0-Xmin)*kx);
   OYsc:=Round(Image1.Height-(0-Ymin)*ky);
   Image1.Canvas.MoveTo(OXsc,0);
   Image1.Canvas.LineTo(OXsc,Image1.Height);
   Image1.Canvas.MoveTo(0,OYsc);
   Image1.Canvas.LineTo(Image1.Width,OYsc);
   Image1.Canvas.Pen.Color:=clgreen;
   Image1.canvas.moveto(Round((m[1,1]-Xmin)*kx),Round(Image1.Height-(m[1,2]-Ymin)*ky));
   for i:=2 to n do
      Image1.canvas.lineto(Round((m[i,1]-Xmin)*kx),Round(Image1.Height-(m[i,2]-Ymin)*ky));
   ugol:=(StrtoInt(Edit1.Text))*(pi/180);
   p1[1,1]:=cos(ugol);
   p1[1,2]:=sin(ugol);
   p1[2,1]:=-sin(ugol);
   p1[2,2]:=cos(ugol);
   p2[1,1]:=StrtoInt(Edit2.Text);
   p2[1,2]:=StrtoInt(Edit3.Text);
   p2[2,1]:=StrtoInt(Edit4.Text);
   p2[2,2]:=StrtoInt(Edit5.Text);
    for i:=1 to l do
     for j:=1 to l do
    begin
     p3[i,j]:=0;
      for g:=1 to l do
        p3[i,j]:=p3[i,j]+p1[i,g]*p2[g,j];
    end;
    for i:=1 to n do
     for j:=1 to l do
    begin
     pn[i,j]:=0;
      for g:=1 to l do
        pn[i,j]:=pn[i,j]+m[i,g]*p3[g,j];
     end;
     Image1.Canvas.pen.Color := clblack;
   Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.pen.Color := clgreen;
   Image1.Canvas.MoveTo(OXsc,0);
   Image1.Canvas.LineTo(OXsc,Image1.Height);
   Image1.Canvas.MoveTo(0,OYsc);
   Image1.Canvas.LineTo(Image1.Width,OYsc);
   Image1.canvas.moveto(Round((pn[1,1]-Xmin)*kx),Round(Image1.Height-(pn[1,2]-Ymin)*ky));
 for i:=2 to n do
    Image1.canvas.lineto(Round((pn[i,1]-Xmin)*kx),Round(Image1.Height-(pn[i,2]-Ymin)*ky));
end;
                                 Интерфейс.


 

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

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

Код программы.
  procedure TForm1.Button1Click(Sender: TObject);
 const n=6;l=2;
       m: array[1..n,1..l]of real=((15,15),(15,40),(25,40),(20,35),(25,30),(15,30));
  var p:array[1..l,1..l] of real;
      pn:array[1..n,1..l] of real;
      i,j,g,OXsc,OYsc:integer;
      kx,ky,Xmax,Ymin,Ymax,Xmin:real;

begin
Xmax:=110;
   Ymin:=-110;
   Ymax:=110;
   Xmin:=-90;
   Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.pen.Color := clblue;
   kx:=Image1.Width/(Xmax-Xmin);
   ky:=Image1.Height/(Ymax-Ymin);
   OXsc:=Round((0-Xmin)*kx);
   OYsc:=Round(Image1.Height-(0-Ymin)*ky);
   Image1.Canvas.MoveTo(OXsc,0);
   Image1.Canvas.LineTo(OXsc,Image1.Height);
   Image1.Canvas.MoveTo(0,OYsc);
   Image1.Canvas.LineTo(Image1.Width,OYsc);
   Image1.Canvas.Pen.Color:=clblue;
   Image1.canvas.moveto(Round((m[1,1]-Xmin)*kx),Round(Image1.Height-(m[1,2]-Ymin)*ky));
   for i:=2 to n do
      Image1.canvas.lineto(Round((m[i,1]-Xmin)*kx),Round(Image1.Height-(m[i,2]-Ymin)*ky));

   p[1,1]:=StrtoInt(Edit1.Text);
p[1,2]:=StrtoInt(Edit2.Text);
p[2,1]:=StrtoInt(Edit3.Text);
p[2,2]:=StrtoInt(Edit4.Text);
    for i:=1 to n do
     for j:=1 to l do
    begin
     pn[i,j]:=0;
      for g:=1 to l do
        pn[i,j]:=pn[i,j]+m[i,g]*p[g,j];
     end;
   Image1.Canvas.pen.Color := clwhite;
   Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.pen.Color := clblue;
   Image1.Canvas.MoveTo(OXsc,0);
   Image1.Canvas.LineTo(OXsc,Image1.Height);
   Image1.Canvas.MoveTo(0,OYsc);
   Image1.Canvas.LineTo(Image1.Width,OYsc);
   Image1.canvas.moveto(Round((pn[1,1]-Xmin)*kx),Round(Image1.Height-(pn[1,2]-Ymin)*ky));
 for i:=2 to n do
    Image1.canvas.lineto(Round((pn[i,1]-Xmin)*kx),Round(Image1.Height-(pn[i,2]-Ymin)*ky));

end;    

Интерфейс.





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

Код программы.

procedure TForm1.Button1Click(Sender: TObject);
 const n=6;l=2;
       m: array[1..n,1..l]of real=((15,15),(15,40),(25,40),(20,35),(25,30),(15,30));
  var p:array[1..l,1..l] of real;
      pn:array[1..n,1..l] of real;
      i,j,g,OXsc,OYsc:integer;
      kx,ky,Xmax,Ymin,Ymax,Xmin,ugol:real;
  begin
   Xmax:=110;
   Ymin:=-110;
   Ymax:=110;
   Xmin:=-90;
   Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.pen.Color := clblue;
   kx:=Image1.Width/(Xmax-Xmin);
   ky:=Image1.Height/(Ymax-Ymin);
   OXsc:=Round((0-Xmin)*kx);
   OYsc:=Round(Image1.Height-(0-Ymin)*ky);
   Image1.Canvas.MoveTo(OXsc,0);
   Image1.Canvas.LineTo(OXsc,Image1.Height);
   Image1.Canvas.MoveTo(0,OYsc);
   Image1.Canvas.LineTo(Image1.Width,OYsc);
   Image1.Canvas.Pen.Color:=clblue;
   Image1.canvas.moveto(Round((m[1,1]-Xmin)*kx),Round(Image1.Height-(m[1,2]-Ymin)*ky));
   for i:=2 to n do
      Image1.canvas.lineto(Round((m[i,1]-Xmin)*kx),Round(Image1.Height-(m[i,2]-Ymin)*ky));
   ugol:=(StrtoInt(Edit1.Text))*(pi/180);
   p[1,1]:=cos(ugol);
   p[1,2]:=sin(ugol);
   p[2,1]:=-sin(ugol);
   p[2,2]:=cos(ugol);
    for i:=1 to n do
     for j:=1 to l do
    begin
     pn[i,j]:=0;
      for g:=1 to l do
        pn[i,j]:=pn[i,j]+m[i,g]*p[g,j];
     end;
   Image1.Canvas.pen.Color := clwhite;
   Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
   Image1.Canvas.pen.Color := clblue;
   Image1.Canvas.MoveTo(OXsc,0);
   Image1.Canvas.LineTo(OXsc,Image1.Height);
   Image1.Canvas.MoveTo(0,OYsc);
   Image1.Canvas.LineTo(Image1.Width,OYsc);
   Image1.canvas.moveto(Round((pn[1,1]-Xmin)*kx),Round(Image1.Height-(pn[1,2]-Ymin)*ky));
 for i:=2 to n do
    Image1.canvas.lineto(Round((pn[i,1]-Xmin)*kx),Round(Image1.Height-(pn[i,2]-Ymin)*ky));
end;

Интерфейс.



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

Код программы.
procedure TForm1.Button1Click(Sender: TObject);
const m=5;
      n=3;
      l=4;
      a:array[1..m,1..n] of integer=((2,1,3),(4,0,1),(-1,2,1),(2,0,-1),(0,4,-2));
      b:array[1..n,1..l] of integer=((2,0,1,1),(3,1,0,-1),(2,2,0,-4));
var   c:array[1..m,1..l] of integer;
    i,j,k,p:integer;
begin
    for i:=1 to m do
    for j:=1 to n do
    for p:=1 to l do
    begin
    StringGrid1.Cells[j,i]:=InttoStr(a[i,j]);
    StringGrid2.Cells[p,j]:=InttoStr(b[j,p]);
    end;
    for i:=1 to m do
    for j:=1 to l do
    begin
    c[i,j]:=0;
    for k:=1 to n do
    c[i,j]:=c[i,j]+a[i,k]*b[k,j];
    StringGrid3.Cells[j,i]:=InttoStr(c[i,j]);
    end;
end; 

Интерфейс.

Виртуальная экскурсия.

Задача: Подготовить с помощью сервиса Google - карты Google виртуальную экскурсии по одной из ниже предложенных тем.

Презентация.

Лабораторная работа №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;                          

Интерфейс.



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

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

Код программы.
procedure TForm1.Button1Click(Sender: TObject);
 var
x,y,N,a,la:real;
xsc,ysc:integer;
begin
N:= StrtoInt(Edit1.Text);
Image1.Canvas.Pen.Color:=clyellow;
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.Pen.Color:=clgreen;
x:=round(Image1.Width/2);
y:=round(Image1.Height/2);
a:=0;
la:=((360/N)*Pi)/180;
xsc:=round(x+100*cos(a));
ysc:=round(y+100*sin(a));
Image1.Canvas.MoveTo(xsc, ysc);
while a< 2*(Pi) do
begin
xsc:=round(x+100*cos(a));
ysc:=round(y+100*sin(a));
Image1.Canvas.LineTo(xsc, ysc);
a:=a+la;
end;
end;                          

Интерфейс.

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

Код программы.
procedure TForm1.Button1Click(Sender: TObject);
  const
g=10;
Pi=3.14;
var n,t,x,y,xmax,tmax,kx,ky,dt,xsc,ysc,ymax,b,v:real;
begin
Image1.Canvas.pen.Color := clyellow;
v:= StrtoInt(Edit1.Text);
n:= StrtoInt(Edit2.Text);
b:= StrtoInt(Edit3.Text);
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.pen.Color := clgreen;
b:=(b*Pi)/180;
xmax:=(v*v*sin(2*b))/g;
ymax:=(v*v*sin(b)*sin(b))/(2*g);
kx:=Image1.Width/((v*v)/g);
ky:=Image1.Height/((v*v)/(2*g));
tmax:=(2*v*sin(b))/g;
dt:=tmax/n;
t:=0;
Image1.canvas.moveto(0,round(ymax));

while t<tmax do begin
x:=v*cos(b)*t;
y:=v*sin(b)*t-(g*t*t)/2;
xsc:=(x*kx);
ysc:=(Image1.Height-y*ky);
Image1.Canvas.Ellipse (round(xsc), round(ysc), round(xsc+2), round(ysc+2));
t:=t+dt;
end;
end;                         

Интерфейс.

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

 Код программы.

procedure TForm1.Button1Click(Sender: TObject);
const  N=1000;
var
y,x,xsc,ysc,xmin,ymin,xmax,ymax,ky,kx,dx,A,B,C:real;
pxsc,pysc:integer;
begin
Image1.Canvas.pen.Color:=clred;
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);
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.pen.Color := clblue;
kx:=Image1.Width/(xmax-xmin);
ky:=Image1.Height/(ymax-ymin);
pxsc:=round((0-xmin)*kx);
pysc:=round(Image1.Height-(0-ymin)*ky);
Image1.Canvas.MoveTo(pxsc,0);
Image1.Canvas.LineTo(pxsc,Image1.Height);
Image1.Canvas.MoveTo(0,pysc);
Image1.Canvas.LineTo(Image1.Width,pysc);
dx:=(xmax-xmin)/n;
x:=xmin;
while x<xmax do begin
y:=(A*x*x)+(B*x)+C;
xsc:=(x-xmin)*(kx);
ysc:=Image1.Height-(y-ymin)*ky;
Image1.Canvas.pen.Color := clgreen;
Image1.Canvas.Ellipse (round(xsc), round(ysc), round(xsc+2), round(ysc+2));
x:=x+dx;
end;
end;                            

Интерфейс.

четверг, 28 октября 2010 г.

Лабораторная работиа №1.

Код программы.
procedure TForm1.Button1Click(Sender: TObject);
  var
a,b, c:integer;
begin
  val (edit1.Text,a);
  val (edit2.text,b);
 c:=a+b;
 Edit3.Text:=Inttostr (C);
end;     

Интерфейс.


четверг, 14 октября 2010 г.

лабораторная работа № 2

 Код программы.
procedure TForm1.Button1Click(Sender: TObject);
var ax, ay, bx, by, cx, cy:integer;
begin
     ax:= StrtoInt(Edit1.Text);
     ay:= StrtoInt(Edit2.Text);
     bx:= StrtoInt(Edit3.Text);
     by:= StrtoInt(Edit4.Text);
     cx:= StrtoInt(Edit5.Text);
     cy:= StrtoInt(Edit6.Text);
     Image1.Canvas.Rectangle(0, 0, 500, 500);
     Image1.Canvas.MoveTo(ax,ay);
     Image1.Canvas.pen.Color := clblue;
     Image1.Canvas.LineTo(bx,by);
     Image1.Canvas.pen.Color := clred;
     Image1.Canvas.LineTo(cx,cy);
     Image1.Canvas.pen.Color := clgreen;
     Image1.Canvas.LineTo(ax,ay);
end;       

     Интерфейс.





Блок-схема.