Научная электронная библиотека
Монографии, изданные в издательстве Российской Академии Естествознания

Приложение А

 

{Фрагмент модуля программного комплекса управления состоянием автомобильных дорог в районах лесозаготовок}

unit Vidp;

interface

uses  Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls, Grids;

type

TForm4 = class(TForm)

S1: TStringGrid; CheckBox1: TCheckBox; Label1: TLabel;

Button1: TButton; Button3: TButton; Label2: TLabel; Edit1: TEdit;

Label3: TLabel; Edit2: TEdit; Label4: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Button3Click(Sender: TObject);

private    { Private declarations }

public        { Public declarations }

end;

var

Form4: TForm4;

k,uk,so1,so2,so3,so4,v1,v2,v3,fi2:real;

kl,i,code,flag,chet,chet1:integer;

s,s111,sv,sv1:string;

s11,s22,r1,r2,min,lo,fi,l2,l3:real;

implementation

uses Vidpr; {$R *.DFM}

procedure TForm4.FormCreate(Sender: TObject);

begin Form4.Refresh;

S1.Options:=[goFixedVertLine,goFixedHorzline,goVertLine,

goHorzline,goRangeSelect,goAlwaysShowEditor,goEditing];

for i:=1 to 50 do begin

str(i,s);S1.Cells[0,i]:= +s;end;

S1.Cells[0,0]:=№; S1.Cells[1,0]:= Пикеты; S1.Cells[2,0]:=Уклон, %; S1.Cells[3,0]:=Скорость 1-го автомобиля, км/ч ;

S1.Cells[4,0]:=Скорость 2-го автомобиля, км/ч ;

S1.Cells[5,0]:=Скорость 3-го автомобиля, км/ч ;

S1.Cells[6,0]:=Коэффициент сцепления;

k:=1;lo:=5;fi2:=0.2;

sv:=Видимость обеспечена;

sv1:=Видимость не обеспечена;flag:=0;end;

procedure TForm4.Button1Click(Sender: TObject);

begin kl:=1;chet:=0;chet1:=0;

while S1.Cells[1,kl]<> do kl:=kl+1;

for i:=1 to kl-1 do

begin val(S1.Cells[2,i],uk,code);

val(S1.Cells[3,i],v1,code);

val(S1.Cells[4,i],v2,code);

val(S1.Cells[5,i],v3,code);

val(S1.Cells[6,i],fi,code);

so1:=v1/3.6+k*v1*v1/(254*(fi+uk))+lo;min:=so1;

so2:=(v1+v2)/3.6+k*v1*v1/(254*(fi+uk))+k*v2*v2/(254*(fi+uk))+lo;

r1:=v1*v1/(127*fi2); r2:=v2*v2/(127*fi2);s11:=k*v1*v1/(254*(fi+uk));

s22:=k*v2*v2/(254*(fi+uk));l2:=v1*(s11-s22)/(v1-v2);

l3:=v3/v1*(2*l2);

so3:=v1/3.6+2*sqrt(4*r1)+v2/3.6+2*(v1/v2)*sqrt(4*r2)+lo;

so4:=v1/3.6+2*l2+l3+lo;str(uk:10:4,s);Form2.S2.Cells[2,i]:=s;

str(v1:10:4,s);Form5.S2.Cells[3,i]:=s;str(v2:10:4,s);

Form5.S2.Cells[4,i]:=s;str(v3:10:4,s);Form5.S2.Cells[5,i]:=s;

str(fi:10:4,s);Form5.S2.Cells[6,i]:=s;if min<so2 then min:=so2

                   else if min<so3 then min:=so3

                        else if min<so4 then min:=so4;

str(min:10:4,s);Form5.S2.Cells[7,i]:=s;

Form5.S2.Cells[0,i]:=S1.Cells[0,i];

Form5.S2.Cells[1,i]:=S1.Cells[1,i];

if s111=I then begin

if so1>=150 then chet:=chet+1;

if so1>=300 then chet1:=chet+1;end

else if s111=II then begin

if so1>=125 then chet:=chet+1;

if so1>=250 then chet1:=chet+1;end

else if s111=III then begin

if so1>=100 then chet:=chet+1;

if so1>=200 then chet1:=chet+1;end

else if s111=IV then begin

if so1>=75 then chet:=chet+1;

if so1>=150 then chet1:=chet+1;end

else if s111=V then begin

if so1>=50 then chet:=chet+1;

if so1>=100 then chet1:=chet1+1;end

else flag:=1;end;

Form5.S2.Cells[0,0]:=№;

Form5.S2.Cells[1,0]:= Пикеты;

Form5.S2.Cells[2,0]:=Уклон, %;

Form5.S2.Cells[3,0]:=Скорость 1-го автомобиля, км/ч;

Form5.S2.Cells[4,0]:= Скорость 2-го автомобиля, км/ч ;

Form5.S2.Cells[5,0]:= Скорость 3-го автомобиля, км/ч ;

Form5.S2.Cells[6,0]:=Коэффициент сцепления;

Form5.S2.Cells[7,0]:=Видимость, м;

so1:=chet*100/(kl-1);so2:=chet1*100/(kl-1);

str(so1:4:2,s111);Form5.Label3.Caption:=s111+ %;

str(so2:4:2,s111);Form5.Label6.Caption:=s111+ %;

Form4.Hide;Form5.Show;end;

procedure TForm4.Edit2Change(Sender: TObject);

begin s111:=Edit2.text;end;

procedure TForm4.Edit1Change(Sender: TObject);

begin Form5.Label2.caption:=Edit1.text;end;

procedure TForm4.Button3Click(Sender: TObject);

begin close;end;end.

unit Vidpr; interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, Grids, ExtCtrls;

type

TForm5 = class(TForm)

S2: TStringGrid; Button1: TButton; Button2: TButton;

Label1: TLabel; Label2: TLabel;

Label3: TLabel; Label4: TLabel;

Label5: TLabel; Label6: TLabel; PB:TPaintBox;

procedure Button1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var   Form5: TForm5; kl1,code:integer; i1,i2,j1,j2,a,b,i,p:integer;

y1,y2,x1,x2,m,max,pos:real;

s,s1:string;

implementation uses Vidp;

{Функция перевода абсцисс в режим экрана }

function II(x:extended):integer;

begin       II:=i1+round((x-x1)*(i2-i1)/(x2-x1)); end;

{Функция перевода ординат в режим экрана }

function JJ(y:extended):integer;

begin       JJ:=j2-round((y-y1)*(j2-j1)/(y2-y1)); end;

{$R *.DFM} procedure TForm5.Button1Click(Sender: TObject);

begin close;end;

procedure TForm5.FormActivate(Sender: TObject);

begin Form5.Refresh;

Pb.Canvas.Brush.Color:=clWhite;

kl1:=1;max:=-100000;p:=1;

while S2.Cells[1,kl1]<> do kl1:=kl1+1;

s:=S2.Cells[1,1];

pos:=Pb.Width div (kl1-1);while s[p]<>+ do p:=p+1;

for i:=1 to kl1-1 do

begin val(S2.Cells[7,i],m,code);

if max<m then max:=m;end;

i1:=0;j1:=0;i2:=Pb.Width;j2:=PB.Height;a:=0;b:=i2;x1:=a;x2:=b;

y1:=-0.001;y2:=max;

Pb.Canvas.Pen.Color:=clblack;Pb.Canvas.Rectangle(0,0,i2,j2);

Pb.Canvas.Pen.Width:=1;Pb.Canvas.Pen.Style:=psSolid;

val(S2.Cells[7,1],m,code);PB.Canvas.MoveTo(II(0),JJ(m));

for i:=2 to kl1-1 do begin val(S2.Cells[7,i],m,code);

PB.Canvas.LineTo(II(pos),JJ(m));pos:=pos+Pb.Width div (kl1-1);

end;end;end.

unit Virash;

interface uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids;

Type  TForm1 = class(TForm)

SG1: TStringGrid; Button1: TButton;

Button2: TButton; Edit1: TEdit;

Edit2: TEdit; Label1: TLabel; Label2: TLabel;

procedure Button2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

private  { Private declarations }

public      { Public declarations }

end;

var Form1: TForm1; i,code,k:integer;

id,idop,r,v,mu,B,ib,l:real; s, s111: string;

implementation

{$R *.DFM}

procedure TForm4.Edit2Change(Sender: TObject);

begin s111:=Edit2.text;end;

procedure TForm1.Button2Click(Sender: TObject);

begin close;end;

procedure TForm1.FormActivate(Sender: TObject);

begin Form1.Refresh;

SG1.Options:=[goFixedVertline, goFixedHorzline, goVertLine,

goHorzLine, goRangeSelect, goAlwaysShowEditor, GoEditing];

SG1.Cells[0,i]:= №;

for i:=1 to 100 do

begin str(i,s); SG1.Cells[0,i]:=s;end;

i:=0;SG1.Cells[1,i]:=Пикеты;SG1.Cells[2,i]:=Радиус горизонт. кривой; SG1.Cells[3,i]:=Скорость движения, км/ч;

SG1.Cells[4,i]:=Коэффициент поперечной силы;

SG1.Cells[5,i]:=Ширина проезжей части;

SG1.Cells[6,i]:=Длина отгона виража;

SG1.Cells[7,i]:=Уклон виража, промили;end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

var code:integer;

begin if key=#13 then begin

val(Edit1.text,id,code);

if (id>-0.1)and(id<100000) then Edit2.SetFocus

else Edit1.SelectAll;end;end;

procedure TForm1.Edit2Change(Sender: TObject);

begin k:=1;end;

procedure TForm1.Button1Click(Sender: TObject);

begin k:=1;

while SG1.Cells[1,k]<> do k:=k+1;

if (Edit2.text=I)or(Edit2.text=II) then idop:=5

else idop:=10;for i:=1 to k-1 do begin

val(SG1.Cells[2,i],r,code);val(SG1.Cells[3,i],v,code);

val(SG1.Cells[4,i],mu,code);

val(SG1.Cells[5,i],B,code);

if r>2000 then SG1.Cells[7,i]:=Двускатный поперечный профиль

else ib:=v*v/(127*r)-mu;

str(ib:10:4,s);SG1.Cells[7,i]:=s;

l:=B*(id+idop)/idop;str(l:10:4,s);SG1.Cells[6,i]:=s;end;end; end.


Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674