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

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

Программа 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; просмотров: 409. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

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

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

ОПРЕДЕЛЕНИЕ ЦЕНТРА ТЯЖЕСТИ ПЛОСКОЙ ФИГУРЫ Сила, с которой тело притягивается к Земле, называется силой тяжести...

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

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