Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Программа PotyagVV





Program PotyagVV;

Uses CRT,Graph,Dos;

Const NN=25;

LABEL 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,

22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,

met1,met2,met3,met4,met5,met6,met7,met8,met9;

TYPE Dl=ARRAY [1..NN] OF INTEGER;

Uk=ARRAY [1..NN] OF REAL;

Rds=ARRAY [1..NN] OF INTEGER;

DlRez=ARRAY [1..NN] OF INTEGER;

UkRez=ARRAY [1..NN] OF REAL;

DRd=ARRAY [1..NN] OF INTEGER;

PUk=ARRAY [1..NN] OF REAL;

VAR FV:text;

FO:text;

FC:text;

FE:text;

FA:text;

NAME:string;

S,st1,st2,st3:String;

i,j,k,n,m,z,d,di,x1,y1,x2,y2,amax,amin,Lob,Vrem,Op,kk,Pr,p,

ObKolVag,Vag8,Vag6,Vag4,Wvf,Ns,Nr,m1,Kdv:integer;

LM:Word;

LUklon,Uklon,DeltaUkl,Uslov,bmin,bmax,SkorDl,TyagDl,TyagTr,

OsudsoLo,OsudsoVa,Put,Skor,SkorPr,UdSopLoc,UdSopSos,SopLoc,

SopSos,SopPo,UdSopPo,Tyag,UdTyag,SilOs,Ksi,LocMas,MasSos,Dk,Mn,

MasPoez,DlSos,DlLoc,DlPoez,TokElek,RasEner,TyagPr,SkorKr,sn,f2n,SkorZad,UklUch,Usk,UskZad,DeltaUsk,DeltaTyaga,Kpr,SosMasPr,X0,

DlinOb,PutProm,UdSopTor,TorSila,SkorTor,PrUkl,TorDel,TorSilaUd,

UklOb,PutTek,Prom,Unl,Inf,Pnd,fn,kpd,cofi,lsras,Dsr,bzub,rs,

rrp,Xs,Xrp,delta,mu:real;

L:Dl;

Ukl:Uk;

Rad:Rds;

RezL:DlRez;

RezUkl:UkRez;

DlRds:DRd;

PrUklRez:PUk;

u:real;

c:char;

 

{ Сигнал ошибки }

Procedure Zvuck1;

begin

Sound(4600);

Delay(200);

NoSound;

end;

{ Сигнал смены окна }

Procedure Zvuck2;

begin

Sound(800);

Delay(100);

NoSound;

end;

{ Информационное окно }

PROCEDURE okno1;

Const

LU=#201;

RU=#187;

LD=#200;

RD=#188;

H=#205;

V=#186;

Var

k:integer;

begin

X1:=2; Y1:=2; X2:=78; Y2:=17;

TextBackground(LightBlue);

TextColor(Yellow);

Window(X1,Y1,X2,Y2);

Write(LU);

For k:=X1+1 to X2-1 do Write(H);

Write(RU);

For k:=Y1+1 to Y2-1 do

begin

GotoXY(1,k-Y1+1);

Write(V);

GotoXY(X2-X1+1,WhereY);

Write(V);

end;

Write(LD);

Window(X1,Y1,X2,Y2+1);

GotoXY(2,Y2-Y1+1);

For k:=X1+1 to X2-1 do Write(H);

Write(RD);

Window(X1+1,Y1+1,X2-1,Y2-1);

ClrScr;

end;

{ Диалоговое окно }

PROCEDURE okno2;

Const

LU=#201;

RU=#187;

LD=#200;

RD=#188;

H=#205;

V=#186;

Var

k:integer;

begin

X1:=2; Y1:=19; X2:=78; Y2:=24;

TextBackground(Cyan);

TextColor(Blue);

Window(X1,Y1,X2,Y2);

Write(LU);

For k:=X1+1 to X2-1 do Write(H);

Write(RU);

For k:=Y1+1 to Y2-1 do

begin

GotoXY(1,k-Y1+1);

Write(V);

GotoXY(X2-X1+1,WhereY);

Write(V);

end;

Write(LD);

Window(X1,Y1,X2,Y2+1);

GotoXY(2,Y2-Y1+1);

For k:=X1+1 to X2-1 do Write(H);

Write(RD);

Window(X1+1,Y1+1,X2-1,Y2-1);

ClrScr;

end;

{ Процедура диалога при вводе данных }

Procedure Okna(var s1,s2,s3:string);

begin

Okno2;

Writeln(s1);

Writeln(s2);

Writeln(s3);

Okno1;

end;

{ Процедура индикации ошибки при вводе }

Procedure Vvod;

begin

okno2;

zvuck1;

TextColor(Red);

Writeln(' Внимание:');

TextColor(Blue);

Writeln(' Параметр вне диапазона. Повторите ввод,');

Writeln(' нажав клавишу <N>');

okno1;

end;

{ Процедура ввода целых чисел }

PROCEDURE str1(var x:integer);

begin

repeat

u:=0;

c:=readkey

until (c in ['y','Y','n','N','Q','q']);

case c of

'n','N': begin

write(' Введите новое значение ');

readln(x);

Okna(st1,st2,st3);

end;

'y','Y': writeln(' Сохраняется старое

значение');'q','Q':u:=1;

end;

end;

{ Процедура ввода вещественных чисел }

PROCEDURE str2(var z:real);

begin

u:=0;

repeat

c:=readkey

until(c in ['y','Y','n','N','q','Q']);

case c of

'n','N':begin

write(' Введите новое значение ');

readln(z);

Okna(st1,st2,st3);

end;

'y','Y':writeln(' Сохраняется старое значение');

'q','Q':u:=1;

end;

end;

 

{ Основная программа }

BEGIN

TextBackGround(Black);

LM:=LastMode;

met1: ClrScr;

{ Создание окон ввода профиля пути }

st1:=' Нажмите клавишу:<Y> - чтобы оставить старое значение; ';

st2:=' <N> - чтобы внести новое значение; ';

st3:=' <Q> - для прекращения ввода.';

Okna(st1,st2,st3);

{ Открытие файла профиля пути }

assign(fv,'C:\PodstaAs\AsPotyag\profil.dat');

reset(fv);

read(fv,n);

i:=1;

while not EOF(fv) and (i<=n) do

begin

readln(fv,l[i],rad[i],DlRds[i],ukl[i]);

inc(i)

end;

close(fv);

{ Ввод профиля пути }

TextColor(Red);

GotoXY(25,1);

Writeln('Ввод профиля пути');

Window(4,4,76,16);

TextColor(Yellow);

1: writeln(#10,' Количество участков n <',n,'>: ');

str1(n);

If u>0 then goto met2;

amin:=1; amax:=20;

if (n<amin) or (n>amax) then

begin

Vvod;

Goto 1;

end;

For i:=1 to n do

begin

ClrScr;

2: writeln(#10,' Длина участка L',i,'<',l[i]:5,'>: ');

str1(l[i]);

If u>0 then goto met2;

amin:=200; amax:=20005;

if (L[i]<amin) or (L[i]>amax) then

begin

Vvod;

goto 2;

end;

3: writeln(#10,' Радиус кривой Rad ',i,'< ',rad[i]:5,'>: ');

str1(rad[i]);

If u>0 then goto met2;

amin:=0; amax:=5000;

if (Rad[i]<amin) or (Rad[i]>amax) then

begin

Vvod;

goto 3;

end;

4: writeln(#10,' Длина криволинейного участка пути DlRds',i,

'< ',DlRds[i]:5,'>: ');

str1(DlRds[i]);

If u>0 then goto met2;

amin:=0; amax:=5000;

if (DlRds[i]<amin) or (DlRds[i]>amax) then

begin

Vvod;

goto 4;

end;

5: writeln(#10,' Уклон ',i,' участка < ',ukl[i]:3:2,'>: ');

str2(ukl[i]);

If u>0 then goto met2;

bmin:=-15.0; bmax:=15.0;

if (Ukl[i]<bmin) or (Ukl[i]>bmax) then

begin

Vvod;

goto 5;

end;

readln;

end;

Okno1;

met2: TextColor(Red);

Writeln(#10,' Ввод исходных данных профиля пути завершен.');

TextColor(Yellow);

Okno2;

Writeln;

Writeln(' Нажмите клавишу - "Y" чтобы продолжить работу',

' программы');

Writeln(' или - "N" чтобы вернуться в режим повторного',

' ввода данных');

Repeat

c:=readkey

until (c in ['n','N','y','Y']);

Case c of

'y','Y': begin end;

'n','N': goto met1;

end;

{'Создание файла исходных данных профиля пути '}

Write;

Assign(FV,'C:\PodstaAs\AsPotyag\profil.dat');

Rewrite(FV);

Writeln(FV,n:12);

For i:=1 to n do Writeln(FV,l[i]:10,rad[i]:10,DlRds[i]:10,

ukl[i]:10:2);

Close(FV);

{ Ввод данных состава }

met3: ClrScr;

st1:=' Нажмите клавишу:<Y> - чтобы оставить старое значение; ';

st2:=' <N> - чтобы внести новое значение; ';

st3:=' <Q> - для прекращения ввода.';

Okna(st1,st2,st3);

TextColor(Red);

GotoXY(25,1);

Writeln('Ввод данных о составе поезда ');

Window(4,4,76,15);

TextColor(Yellow);

assign(fc,'C:\PodstaAs\AsPotyag\DanPoezd.dat');

reset(fc);

readln(fc,ObKolVag,Vag8,Vag6,Vag4);

readln(fc,MasSos,SkorZad,UskZad);

close(fc);

6:writeln(#10,' Общее количество вагонов ObKolVag <',

ObKolVag:5,'>: ');

str1(ObKolVag);

If u>0 then goto met4;

bmin:=0; bmax:=80;

if (ObKolVag<bmin) or (ObKolVag>bmax) then

begin

Vvod;

Goto 6;

end;

7: writeln(#10,' Количество 8-осных вагонов Vag8 <',Vag8:5,'>: ');

str1(Vag8);

If u>0 then goto met4;

bmin:=0; bmax:=ObKolVag;

if (Vag8<bmin) or (Vag8>bmax) then

begin

Vvod;

Goto 7;

end;

8: writeln(#10,' Количество 6-осных вагонов Vag6 <',Vag6:5,'>: ');

str1(Vag6);

If u>0 then goto met4;

bmin:=0; bmax:=ObKolVag-Vag8;

if (Vag6<bmin) or (Vag6>bmax) then

begin

Vvod;

Goto 8;

end;

9: writeln(#10,'Количество 4-осных вагонов Vag4 <',Vag4:5,'>: ');

str1(Vag4); If u>0 then goto met4;

bmin:=0; bmax:=ObKolVag-Vag8-Vag6;

if (Vag4<bmin) or (Vag4>bmax) then

begin

Vvod;

Goto 9;

end;

10:writeln(#10,'Укажите массу состава MasSos <',MasSos:5:0,'>: ');

str2(MasSos);

If u>0 then goto met4;

bmin:=0; bmax:=9000;

if (MasSos<bmin) or (MasSos>bmax) then

begin

Vvod;

Goto 10;

end;

11:writeln(#10,' Укажите заданную скорость движения состава SkorZad <',SkorZad:5:2,'> [км/ч]: ');

str2(SkorZad);

If u>0 then goto met4;

bmin:=0; bmax:=160;

if (SkorZad<bmin) or (SkorZad>bmax) then

begin

Vvod;

Goto 11;

end;

12:writeln(#10,' Укажите ускорение движения состава UskZad <',

UskZad:1:4,'> [м/с2]: ');

str2(UskZad);

If u>0 then goto met4;

bmin:=0; bmax:=2;

if (UskZad<bmin) or (UskZad>bmax) then

begin

Vvod;

Goto 12;

end;

{ Создание файла исходных данных состава }

met4: Okno1;

TextColor(Red);

Writeln;

Writeln(' Ввод данных поезда завершен');

TextColor(Yellow);

Okno2;

Writeln;

Writeln(' Нажмите клавишу - "Y" чтобы продолжить работу',

' программы');

Writeln(' или - "N" чтобы вернуться в режим повторного',

' ввода данных');

Repeat

c:=readkey

until (c in ['n','N','y','Y']);

Case c of

'y','Y': begin end;

'n','N': goto met3;

end;

Write;

Assign(FC,'C:\PodstaAs\AsPotyag\DanPoezd.dat');

Rewrite(FC);

Writeln(FC,ObKolVag:11,Vag8:11,Vag6:11,Vag4:4);

Writeln(FC,MasSos:11:1,SkorZad:11:2,UskZad:11:4);

Close(FC);

{ Ввод данных электровоза }

met5: Okna(st1,st2,st3);

Okno1;

Writeln;

TextColor(Red);

Writeln(' Ввод данных электровоза');

TextColor(Yellow);

assign(fe,'C:\PodstaAs\AsPotyag\Electra.dat');

reset(fe);

readln(fe,mu,Kdv,DlLoc,LocMas);

close(fe);

13:writeln(#10,' Укажите передаточное отношение тягового редуктора электровоза mu <',

mu:3:2,'>: ');

str2(mu);

If u>0 then goto met6;

bmin:=0; bmax:=5;

if (mu<bmin) or (mu>bmax) then

begin

Vvod;

Goto 13;

end;

14:writeln(#10,' Укажите количество тяговых двигателей на электровозе Kdv <',

Kdv:2,'>: ');

str1(Kdv);

If u>0 then goto met6;

bmin:=0; bmax:=20;

if (Kdv<bmin) or (Kdv>bmax) then

begin

Vvod;

Goto 14;

end;

15:writeln(#10,' Укажите длину локомотива DlLoc <',

DlLoc:4:1,'> [м]: ');

str2(DlLoc);

If u>0 then goto met6;

bmin:=0; bmax:=250;

if (DlLoc<bmin) or (DlLoc>bmax) then

begin

Vvod;

Goto 15;

end;

16:writeln(#10,' Укажите массу локомотива в тоннах LocMas <',

LocMas:4:1,'> [т]: ');

str2(LocMas);

If u>0 then goto met6;

bmin:=0; bmax:=10000;

if (LocMas<bmin) or (LocMas>bmax) then

begin

Vvod;

Goto 16;

end;

met6: Okno1;

TextColor(Red);

Writeln;

Writeln(' Ввод данных электровоза завершен.');

TextColor(Yellow);

Okno2;

Writeln(' Нажмите клавишу - "Y" чтобы продолжить работу',

' программы');

Writeln(' или - "N" чтобы вернуться в режим повторного',

' ввода данных');

Repeat

c:=readkey

until (c in ['n','N','y','Y']);

Case c of

'y','Y': begin end;

'n','N': goto met5;

end;

assign(fe,'C:\PodstaAs\AsPotyag\Electra.dat');

rewrite(fe);

writeln(fe,mu:11:2,Kdv:11,DlLoc:11,LocMas:11:2);

close(fe);

 

 

met7: Okna(st1,st2,st3);

Okno1;

Writeln;

TextColor(Red);

GotoXY(25,1);

Writeln('Ввод данных электродвигателя ');

Window(4,4,76,15);

TextColor(Yellow);

assign(fa,'C:\PodstaAs\AsPotyag\ElDvig.dat');

reset(fa);

readln(fa,Unl,Inf,Pnd,fn,p,Ns,Dk,sn);

readln(fa,kpd,cofi,lsras,Dsr,bzub,rs,rrp);

readln(fa,Xrp,m1,delta,Wvf,Xs,X0,f2n,Mn);

close(fa);

17:writeln(#10,' Укажите номинальное линейное напряжение питания Unl <',Unl:4:2,'> [ B ]: ');

str2(Unl);

If u>0 then goto met8;

bmin:=0; bmax:=3000;

if (Unl<bmin) or (Unl>bmax) then

begin

Vvod;

Goto 17;

end;

18:writeln(#10,' Укажите номинальный фазный ток двигателя Inf <',

Inf:4:2,'> [ A ]: ');

str2(Inf);

If u>0 then goto met8;

bmin:=0; bmax:=1000;

if (Inf<bmin) or (Inf>bmax) then

begin

Vvod;

Goto 18;

end;

19:writeln(#10,' Укажите мощность продолжительного режима двигателя Pnd <',

Pnd:4:2,'> [кBA]: ');

str2(Pnd);

If u>0 then goto met8;

bmin:=0; bmax:=1300;

if (Pnd<bmin) or (Pnd>bmax) then

begin

Vvod;

Goto 19;

end;

20:writeln(#10,' Укажите число полюсов двигателя p <',

p:2,'>: ');

str1(p);

If u>0 then goto met8;

bmin:=0; bmax:=6;

if (p<bmin) or (p>bmax) then

begin

Vvod;

Goto 20;

end;

21:writeln(#10,' Укажите номинальную частоту питающего напряжения fn <',fn:3:2,'> [Гц]: ');

str2(fn);

If u>0 then goto met8;

bmin:=0; bmax:=250;

if (fn<bmin) or (fn>bmax) then

begin

Vvod;

Goto 21;

end;

22:writeln(#10,' Укажите коэффициент полезного действия двигателя kpd <', kpd:2:3,'>: ');

str2(kpd);

If u>0 then goto met8;

bmin:=0; bmax:=0.99;

if (kpd<bmin) or (kpd>bmax) then

begin

Vvod;

Goto 22;

end;

23:writeln(#10,' Укажите коэффициент мощности двигателя cofi <',

cofi:2:3,'>: ');

str2(cofi);

If u>0 then goto met8;

bmin:=0; bmax:=1.0;

if (cofi<bmin) or (cofi>bmax) then

begin

Vvod;

Goto 23;

end;

24:writeln(#10,' Укажите число витков фазы двигателя Wvf <', Wvf:3,'>: ');

str1(Wvf);

If u>0 then goto met8;

bmin:=0; bmax:=999;

if (Wvf<bmin) or (Wvf>bmax) then

begin

Vvod;

Goto 24;

end;

25:writeln(#10,' Укажите расчетную длину статора двигателя lsras <', lsras:2:3,'> [м]: ');

str2(lsras);

If u>0 then goto met8;

bmin:=0; bmax:=2.0;

if (lsras<bmin) or (lsras>bmax) then

begin

Vvod;

Goto 25;

end;

26:writeln(#10,' Укажите диаметр расточки статора двигателя Dsr <',

Dsr:2:3,'> [м]: ');

str2(Dsr);

If u>0 then goto met8;

bmin:=0; bmax:=1.0;

if (UskZad<bmin) or (UskZad>bmax) then

begin

Vvod;

Goto 26;

end;

27:writeln(#10,' Укажите число пазов статора двигателя Ns <',

Ns:4,'>: ');

str1(Ns);

If u>0 then goto met8;

bmin:=0; bmax:=200;

if (Ns<bmin) or (Ns>bmax) then

begin

Vvod;

Goto 27;

end;

29:writeln(#10,' Укажите диаметр колеса электровоза Dk <',

Dk:3:2,'>: ');

str2(Dk);

If u>0 then goto met8;

bmin:=0; bmax:=2.0;

if (Nr<bmin) or (Nr>bmax) then

begin

Vvod;

Goto 29;

end;

30:writeln(#10,' Укажите ширину коронки зубца статора bzub <',

bzub:2:3,'> [м]: ');

str2(bzub);

If u>0 then goto met8;

bmin:=0; bmax:=0.1;

if (bzub<bmin) or (bzub>bmax) then

begin

Vvod;

Goto 30;

end;

31:writeln(#10,' Укажите активное сопротивление фазы статора двигателя Rs <',

Rs:2:4,'> [Ом]: ');

str2(Rs);

If u>0 then goto met8;

bmin:=0; bmax:=0.1;

if (Rs<bmin) or (Rs>bmax) then

begin

Vvod;

Goto 31;

end;

32:writeln(#10,' Укажите активное приведенное сопротивление фазы ротора Rrp <', Rrp:2:4,'>[Ом]:');

str2(Rrp);

If u>0 then goto met8;

bmin:=0; bmax:=0.1;

if (Rrp<bmin) or (Rrp>bmax) then

begin

Vvod;

Goto 32;

end;

33:writeln(#10,' Укажите индуктивное сопротивление фазы статора Xs <', Xs:2:4,'> [Ом]: ');

str2(Xs);

If u>0 then goto met8;

bmin:=0; bmax:=0.3;

if (Xs<bmin) or (Xs>bmax) then

begin

Vvod;

Goto 33;

end;

34:writeln(#10,'Укажите приведенное индуктивное сопротивление фазы ротора Xrp<', Xrp:2:4,'>[Ом]:');

str2(Xrp);

If u>0 then goto met8;

bmin:=0; bmax:=0.3;

if (Xrp<bmin) or (Xrp>bmax) then

begin

Vvod;

Goto 34;

end;

35:writeln(#10,' Укажите количество фаз тягового двигателя m1 <',

m1:2,'>: ');

str1(m1);

If u>0 then goto met8;

bmin:=0; bmax:=6;

if (m1<bmin) or (m1>bmax) then

begin

Vvod;

Goto 35;

end;

36:writeln(#10,' Укажите величину рабочего зазора двигателя delta <', delta:2:1,'> [мм]: ');

str2(delta);

If u>0 then goto met8;

bmin:=0; bmax:=5.0;

if (delta<bmin) or (delta>bmax) then

begin

Vvod;

Goto 36;

end;

37:writeln(#10,'Укажите величину реактивного сопротивления контура ');

writeln(#10,' намагничивания двигателя X0 <', X0:2:5,'> [Oм]: ');

str2(X0);

If u>0 then goto met8;

bmin:=0; bmax:=10.0;

if (X0<bmin) or (X0>bmax) then

begin

Vvod;

Goto 37;

end;

38:writeln(#10,' Укажите величину номинального скольжения ротора двигателя sn <', sn:2:4,'>: ');

str2(sn);

If u>0 then goto met8;

bmin:=0; bmax:=1.0;

if (sn<bmin) or (sn>bmax) then

begin

Vvod;

Goto 38;

end;

39:writeln(#10,' Укажите величину номинальной частоты ротора двигателя f2n <', f2n:2:2,'>: ');

str2(f2n);

If u>0 then goto met8;

bmin:=0; bmax:=10.0;

if (f2n<bmin) or (f2n>bmax) then

begin

Vvod;

Goto 39;

end;

40:writeln(#10,' Укажите величину номинального момента двигателя Mn <', Mn:6:2,'> [Нм]: ');

str2(Mn);

If u>0 then goto met8;

bmin:=0; bmax:=20000.0;

if (Mn<bmin) or (Mn>bmax) then

begin

Vvod;

Goto 40;

end;

met8: Okno1;

TextColor(Red);

Writeln;

Writeln(' Ввод данных тягового электродвигателя завершен.');

TextColor(Yellow);

Okno2;

Writeln(' Нажмите клавишу - "Y" чтобы продолжить работу',

' программы');

Writeln(' или - "N" чтобы вернуться в режим повторного',

' ввода данных');

Repeat

c:=readkey

until (c in ['n','N','y','Y']);

Case c of

'y','Y': begin end;

'n','N': goto met7;

end;

 

Assign(fa,'C:\PodstaAs\AsPotyag\ElDvig.dat');

Rewrite(fa);

writeln(fa,Unl:11:1,Inf:11:1,Pnd:11:1,fn:11:1,p:11,Ns:11,Dk:11:2,sn:11:2);

writeln(fa,kpd:11:3,cofi:11:3,lsras:11:3,Dsr:11:3,bzub:11:3,rs:11:7,rrp:11:7);

writeln(fa,Xrp:11:7,m1:11,delta:11:4,Wvf:11,Xs:11:7,X0:11:7,f2n:11:2,Mn:11:2);

Close(fa);

{ Спрямление }

St1:='';

St2:=' Результат спрямления ';

St3:='';

Okna(St1,St2,St3);

Assign(fv,'C:\PodstaAs\AsPotyag\Profil.dat');

Reset(fv);

Readln(fv,n);

i:=1;

While not EOF(fv) and (i<=n) do

begin

readln(fv,L[i],Rad[i],DlRds[i],Ukl[i]);

inc(i);

end;

{ for i:=1 to n do

writeln(L[i]:5,Rad[i]:5,DlRds[i]:5,Ukl[i]:5:2);

readln;}

Close(fv);

RezL[1]:=L[1];

PrUklRez[1]:=Ukl[1];

PrUklRez[1]:=0;

Writeln(#10);

Writeln(' В ',1,' спрямленный участок вошел ',1,

' участок профиля ');

Writeln(' Длина участка ',RezL[1]:6);

Writeln(' Уклон участка ',RezUkl[1]:3:3);

Writeln(' Приведенный уклон ',PrUklRez[1]:3:3);

Readln;

i:=2; LUklon:=0; Lob:=0; k:=2; m:=2; z:=2;

Okno1;

ClrScr;

Repeat

LUklon:=LUklon+L[i]*Ukl[i];

Lob:=Lob+L[i];

Uklon:=LUklon/Lob;

If DlRds[i]<=0 then

PrUklRez[i]:=0.0

else

If DlPoez<=DlRds[i] then

PrUklRez[i]:=700/Rad[i]

else

PrUklRez[i]:=(700/Rad[i]*DlRds[i])/DlPoez;

For j:=k to i do

begin

DeltaUkl:=abs(Uklon-Ukl[j]);

If DeltaUkl<0.01 then DeltaUkl:=0.01;

Uslov:=2000/DeltaUkl;

If (Uslov>=L[j]) then

begin

If j=i then

begin

di:=i;

RezUkl[m]:=Uklon;

RezL[m]:=Lob;

PrUklRez[m]:=PrUklRez[m]+PrUklRez[j];

end;

end

else

begin

m:=m+1;

ClrScr;

Writeln(#10);

Writeln(' В ',m-1,' спрямленный участок вошли',

' участки профиля с ',z,' по ',i-1);

LUklon:=0;

Lob:=0;

z:=i;

i:=di;

k:=i+1;

Writeln(' Длина участка ',RezL[m-1]:6);

Writeln(' Уклон участка ',RezUkl[m-1]:3:3);

Writeln(' Приведенный уклон ',PrUklRez[m-1]:3:3);

Writeln;

Readln;

PrUklRez[m]:=0;

Goto met9;

end;

end;

PrUkl:=0;

met9: i:=i+1;

until i>n-1;

ClrScr;

Writeln(#10);

Writeln(' В ',m,' спрямленный участок вошли участки профиля с ', z,' по ', n-1);

Writeln(' Длина участка ',RezL[m]:6);

Writeln(' Уклон участка ',RezUkl[m]:3:3);

Writeln(' Приведенный уклон ',PrUklRez[m]:3:3);

Readln;

RezL[m+1]:=L[n];

RezUkl[m+1]:=0;

PrUklRez[m+1]:=Ukl[n];

ClrScr;

Writeln(#10);

Writeln(' В ',m+1,' спрямленный участок вошел участок ',

n,' профиля ');

Writeln(' Длина участка ',RezL[m+1]:6);

Writeln(' Уклон участка ',RezUkl[m+1]:3:3);

Writeln(' Приведенный уклон ',PrUklRez[m+1]:3:3);

{ Создание файла спрямленного профиля пути }

Assign(fo,'C:\PodstaAs\AsPotyag\SprProfA.dat');

Rewrite(fo);

Writeln(fo,m+1:12);

For i:=1 to m+1 do

writeln(fo,RezL[i]:12,RezUkl[i]:10:2,PrUklRez[i]:10:2);

Close(fo);

 

TextMode(LM);

END.

 







Дата добавления: 2015-09-04; просмотров: 442. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Эндоскопическая диагностика язвенной болезни желудка, гастрита, опухоли Хронический гастрит - понятие клинико-анатомическое, характеризующееся определенными патоморфологическими изменениями слизистой оболочки желудка - неспецифическим воспалительным процессом...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия