Рисунок 2.4 – Формирование исходных данных по задаче «Тяговые расчеты»
В нижней строке высвечивается подсказка об использовании функциональных клавиш.
После того, как данные об уклоне и длине элемента профиля введены, пользователь, нажимая клавишу «ESC», выходит из окна 4.
Далее идет расчет. О начале расчета пользователь узнает из сообщений, выдаваемых на экран терминала. После окончания расчета пользователь опять попадает в окно 1 для выбора очередной серии локомотива. Нажатие клавиши «ESC» из окна 1 возвращает пользователя в главное меню «Тяговые расчеты».
При выборе пункта «Печать» пользователь получает возможность выдать на печать таблицу «Тяговые расчеты» (рисунок 2.5).
На экране высвечивается окно «Серия локомотива». Пользователь выбирает серию локомотива и в окне 2 вводит вариант расчета. Предполагается, что все данные уже введены по этой серии локомотива и варианту расчета. В противном случае пользователю выдается сообщение об отсутствии данных и нужно перейти к пункту «Тяговые расчеты» для ввода данных. Имеется возможность указать два режима вывода: «Выдача на экран» или «Выдача на печать». Для этого выдается соответствующее меню – запрос. После завершения печати документа по выбранной серии локомотива и варианту расчета пользователь, нажав клавишу "ESC", возвращается в окно «Серия локомотива», а далее при помощи клавишу "ESC" пользователь возвращается в меню «Тяговые расчеты».
Тяговые расчеты |
|||
Серия локомотива ТЭ10 |
Вариант расчета |
||
Данные о локомотиве |
Данные об уклоне / длине эл-та профиля |
||
Масса локомотива 129 Масса состава 2400 Максимальная скорость 100 Начальная скорость 50 Механическая работа локомотива 100 Время хода поезда 5 Все верно? Да Нет |
Номер |
Уклон ‰ |
Длина эл-та профиля, км |
1 2 3 |
0,0 3,0 3,4 |
1,85 0,40 0,20 |
|
F1 Добавить F2 Удалить F3 Восст. ESC Выход |
Рисунок 2.5 – Информация о продольном профиле
Определение скорости, времени хода и механической
работы локомотива
Программа 2
set talk off
set echo off
set step off
set status off
set scoreboard off
set safely off
set exact off
set near on
set deletad on
set date. Gerrman
set color to gr+/b, w+/r,b
ON KEY LABEL F1 do ppp
ON KEY LABEL F2 delete
ON KEY LABEL F3 recall
DELANE WINDOW wff FROM 8,40 TO 20,79 NONE:
NOFLOAT NOGROW SHADOW COLOR W+/BG+,W+/B, W+/BG+ W+/BG+, W+/B, W+/BG+ TITLE' Данные об уклоне/длине эл-та профиля'
clear
close all
sele 1
use dlok index dlok
sele 2
use dvg index dvg
dime mv(11)
mv(1)=' ТЭ10 '
mv(2)=' ВЛ80 '
mv(3)=' ТЭ3 '
mv(4)=' ВЛ60 '
mv(5)=' ТЭ116 '
mv(6)=' ТЭП60 '
mv(7)=' ТЭП10 '
mv(8)=' ЧС2 '
mv(9)=' ЧС4 '
mv(10)=' ЧС7 '
mv(11)=' ВЛ80К '
lv=1
@ 0,0 to 24,80 double
@ 0,30 say 'Тяговые расчеты'
do while. T.
@ 2,20 menu mv. 11. title 'Серия локомотива'
read menu to lv save
if lv =0
clear
exit
endif
rv=lv
@ 2,45 to 4,68 double
nom1=1
@ 3,48 say 'Вариант расчета' get nom1 pict '9'
read
sele 1
count to n1
if n1>0
seek str(lv.2)+str(nom1.1)
if .not.found( )
append blank
repl ksl with rv.nom with nom1
endif
else
append blank
repl ksl with rv,nom with nom1
endif
a=0
@ 6,2 to 23,38 double
@ 6,6 say ' Данные о локомотиве'
do while.t.
@ 8,6 say ' Масса локомотива'
@ 9,9 get a
@ 10,6 say ' Масса состава'
@ 11,8 get b
@ 12,6 say ' Максимальная скорость'
@ 13,9 get c
@ 14,6 say ' Начальная скорость'
@ 15,9 get d
@ 16,6 say ' Механическая работа локомотива'
@ 17,9 get e
@ 18,6 say ' Время хода поезда'
@ 19,9 get f
read
@ 21,11 say ' Все верно ?'
men=1
@ 22,13 prompt ' Да'
@ 22,18 prompt ' Нет'
menu to men
if men=1
exit
andif
enddo
ra=a
rb=b
rc=c
rd=dre=e
rf=f
do pod
rm=1
sele 2
count to n2
if n2>0
seek str(lv,2)+str(nom1,1)+str(rm,2)
if .not/found( )
append blank
repl ksl with rv.nom with nom1.n with rm
endif
else
append blank
repl ksl with rv.nom with nom1.n with rm
endif
nz=recno( )
set filter to ksl=lv. and. nom=nom1
go stop
browse fields n: 5: h='Номер' ,y:8:y='Уклон' ,s:20:
h='Длина эл-та профиля':
WINDOW wff all format/ COLOR SCHEME 10
set color to gr+/h,w=/r,h
@ 6,2 clear to 23,78
@ 2,45 clear to 4,68
SAVE SCREEN TO nemscr
SET CURSOR OFF
do PRWAIT with 'w+/r' , 'gr+/r' , 'Подождите 1' , 'Идет основной расчет…'
SET CURSOR ON
sele 2
go nz
do while. not.eof( ). ksl=lv.and.nom=nom1
do case
case lv=1
do rash1
case lv=2
do rash2
case lv=3
do rash3
case lv=4
do rash4
case lv=5
do rash5
case lv=6
do rash6
case lv=7
do rash7
case lv=8
do rash8
case lv=9
do rash9
case lv=10
do rash10
case lv=11
do rash11
endcase
skip
enddo
do PRWAIT with 'w+/rb' , 'gr+/rb'.' Основной расчет ' . ' :
ЗАВЕРШЕНО УСПЕШНО! '
WAIT'' TIMEJUT 2
SET CURSOR ON
RESTORE SCREEN FROM nemscr
enddo
set filter to
return
proc pod
set color to W+/N
@ 22,40 say 'F1'
@ 22,50 say 'F2'
@ 22,60 say 'F3'
@ 22,69 say 'ESC'
set color to GR+/W
@ 22,42 say ' Добавить'
@ 22,52 say 'Удалить'
@ 22,62 say 'Восст.'
@ 22,72 say 'Выход'
set color to
return
PROC VIX
KEYBOARD CHR(23)
return
proc ppp
rm=n+1
append blank
repl ksl with lv.nom with nom1.n with rm
return
proc rashl
u=ra/(ra+rb)
s1=0
do while.t.
d1=1.9+0.01*rd+0.0003*rd**2
c1=1.12+5.3*0.001*rd+1.31*0.0001*rd**2
b1=u*d1+(1-u)*c1
do case
case rd≤22
q=129000*(0/25+8/(100+20*rd))
case rd≤60
q=98900-6209.1*rd+190.415*rd**2-2/80833*rd**3+0.01583333*rd**4
otherwise
q=91850-3672.9*rd+63.104*rd**2-0.495833*rd**3+0.00145833*rd**4
endcase
a1=sqrt(abs(rd**2+12*(q/(ra+rb)-b1-y)))-rd
rd=rd+a1
if rd≥rc
rd=rc
rf=rf+60*(s-s1)/rd
q=(ra+rb)*(b1+y)
if q>0
re=re+0.001*q*(s-s1)
endif
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.