29.05.2013, 05:29
|
Прохожий
|
|
Регистрация: 27.03.2013
Сообщения: 3
Версия Delphi: Delphi 7 Lite E
Репутация: 10
|
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
edt1: TEdit;
edt2: TEdit;
edt3: TEdit;
edt4: TEdit;
btn1: TButton;
btn2: TButton;
lbl1: TLabel;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
x1,x2,y1,y2,q,k,z: Integer;
{$R *.dfm}
{В четырех строках ввода (Edit) ввести координаты двух угловых вершин
прямоугольника, его стороны параллельны кроме формы. Генератором случайных
чисел сгенерировать 1000 случайных точек. Те из них, которые попадут мимо
прямоугольника, отображать синим цветом, те, что внутрь прямоугольника -
лимонным, на границы прямоуголольника - красным. По окончании "обстрела"
вывести в надписи (Label) сколько точек попало в прямоугольник, сколько на его
границы, сколько не попало в прямоугольник.}
procedure TForm1.btn1Click(Sender: TObject);
begin
x1:=StrToInt(edt1.text);
y1:=StrToInt(edt2.text);
x2:=StrToInt(edt3.text);
y2:=StrToInt(edt4.text);
edt1.Hide;
edt2.Hide;
edt3.Hide;
edt4.Hide;
Form1.Canvas.Brush.color:=clblack;
Form1.Canvas.Pen.color:=clwhite;
form1.Canvas.rectangle(x1,y1,x2,y2);
x2:=x2-1;
y2:=y2-1;
end;
procedure TForm1.btn2Click(Sender: TObject);
var
px: array [1..1000] of integer;
py: array [1..1000] of Integer;
i:Integer;
begin
randomize;
for i:=1 to 1000 do
begin
px[i]:=Random(1000);
py[i]:=Random(500);
if ( px[i]>x1) and (px[i]<x2) and (py[i]>y1) and ( py[i]<y2) then
begin Form1.Canvas.Pixels[px[i],py[i]]:=clyellow;inc(q);end
else
if (((px[i]=x1) or (px[i]=x2))and(py[i]>y1) and (py[i]<y2)) then
begin Form1.Canvas.Pixels[px[i],py[i]]:=clred; Inc(k);end
else
if (((py[i]=y1) or (py[i]=y2))and(px[i]>x1) and (px[i]<x2)) then
begin Form1.Canvas.Pixels[px[i],py[i]]:=clred;Inc(k);end
else
begin Form1.Canvas.Pixels[px[i],py[i]]:=clblue; inc(z); end ;
end;
lbl1.caption:='Внутри='+floattostr(q)+' На границе='+floattostr(k)+' На снаружи='+floattostr(z);
end;
end.
|