Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет7.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
392 Кб
Скачать
☆

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls,Unit2, Grids, Menus, ComCtrls;

type

massiv = array [0..500,0..500] of integer;

type

TForm1 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Button3: TButton;

Image1: TImage;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N5: TMenuItem;

N4: TMenuItem;

StatusBar1: TStatusBar;

procedure Button3Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Cell;

procedure Button1Click(Sender: TObject);

procedure Strelka(x:integer; y:integer);

procedure RandomWrite(i:integer; j:integer);

procedure N2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

procedure AppHint(Sender: TObject);

{ Private declarations }

public

{ Public declarations }

M,N:integer;

Mas : massiv;

Search : TSearch;

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

procedure TForm1.Strelka(x:integer;y:integer);

begin

Image1.Canvas.MoveTo(x,y);{x=20,y=20}

Image1.Canvas.LineTo(x-10,y-12);

Image1.Canvas.MoveTo(x,y);

Image1.Canvas.LineTo(x-10,y+12);

Image1.Canvas.MoveTo(x-10,y-12);

Image1.Canvas.LineTo(x-10,y-3);

Image1.Canvas.MoveTo(x-10,y+12);

Image1.Canvas.LineTo(x-10,y+3);

Image1.Canvas.MoveTo(x-10,y-3);

Image1.Canvas.LineTo(x-18,y-3);

Image1.Canvas.MoveTo(x-10,y+3);

Image1.Canvas.LineTo(x-18,y+3);

Image1.Canvas.MoveTo(x-18,y+3);

Image1.Canvas.LineTo(x-18,y-3);

end;

procedure TForm1.Cell;

var

i:integer;

rec:TRect;

begin

Rec.Left:=0;

Rec.Top:=0;

Rec.Bottom:=Image1.Height;

Rec.Right:=Image1.Width;

Image1.Canvas.Brush.Color:=clWhite;

Image1.Canvas.FillRect(Rec);

Image1.Canvas.Pen.Color:=clBlue;

Image1.Canvas.Pen.Width:=2;

for i:=0 to M do

begin

Image1.Canvas.MoveTo(540,Round(i*(500/M))+4);

Image1.Canvas.LineTo(40,Round(i*(500/M))+4);

end;

for i:=0 to N do

begin

Image1.Canvas.MoveTo(Round(i*(500/N))+40,504);

Image1.Canvas.LineTo(Round(i*(500/N))+40,4);

end;

//

Image1.Canvas.Pen.Color:=clRed;

Image1.Canvas.Pen.Width:=3;

Strelka(30,15);

Image1.Canvas.Pen.Color:=clGreen;

Strelka(570,490);

//

Image1.Canvas.Pen.Color:=clBlack;

Image1.Canvas.Pen.Width:=1;

end;

procedure TForm1.RandomWrite(i:integer; j:integer);

var

x1,x2,y1,y2:integer;

w,h:integer;

rec:TRect;

begin

h:=Round((500/N));

w:=Round((500/M));

//

if (i = 0)and(j = 0) then i:=1;

if (i = n-1)and(j = m-1) then i := n-2;

x1:=41+i*h;

y1:=5+j*w;

x2:=h+39+i*h;

y2:=w+3+j*w;

rec:=Rect(x1,y1,x2,y2);

Image1.Canvas.Brush.Color:=clSilver;

Image1.Canvas.FillRect(rec);

i:=0;

j:=0;

x1:=41+i*h;

y1:=5+j*w;

x2:=h+39+i*h;

y2:=w+3+j*w;

rec:=Rect(x1,y1,x2,y2);

Image1.Canvas.Brush.Color:=clRed;

Image1.Canvas.FillRect(rec);

//

i:=N-1;

j:=M-1;

x1:=41+i*h;

y1:=5+j*w;

x2:=h+39+i*h;

y2:=w+3+j*w;

rec:=Rect(x1,y1,x2,y2);

Image1.Canvas.Brush.Color:=clGreen;

Image1.Canvas.FillRect(rec);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

Button1.SetFocus;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

k,i,j:integer;

begin

M:=StrToInt(Edit1.Text);

N:=StrToInt(Edit2.Text);

if ((N>=1)and(N<=10))then N:=10;

if ((N>=11)and(N<=20))then N:=20;

if ((N>=21)and(N<=25))then N:=25;

if ((N>=26)and(N<=50))then N:=50;

if ((M>=1)and(M<=10))then M:=10;

if ((M>=11)and(M<=20))then M:=20;

if ((M>=21)and(M<=25))then M:=25;

if ((M>=26)and(M<=50))then M:=50;

if (M>50) then M:=50;

if (N>50) then N:=50;

Cell;

k:=1;

while k <= Round(N*M/4) do

begin

Randomize;

i:=Random(N);

j:=Random(M);

RandomWrite(i,j);

Inc(k);

end;

Search := TSearch.Create(true);

Search.Resume;

Search.Priority:=tpLower;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

ShowMessage('Лабораторная работа 7');

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Application.HelpCommand(HELP_Finder,1);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Application.OnHint:= AppHint;

end;

procedure TForm1.AppHint(Sender: TObject);

begin

StatusBar1.Panels[0].Text := Application.Hint;

end;

end.

unit Unit2;