![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
на тему: ___________________________________________________________
__________________________________________________________________
__________________________________________________________________
№ залікової книжки: ________________________
Виконав студент групи ___________
________________________
(П.І.Б)
Перевірив доцент
Полтавець В.В.
Донецьк 2004
Додаток Б
Приклад лістінгу програми рішення конструкторської задачі проектування
{*-------------------------------------------------------------*}
{* Донецкий национальный технический университет *}
{* Механический факультет *}
{* Кафедра "Металлорежущие станки и инструменты" *}
{*-------------------------------------------------------------*}
{* *}
{* Программа к контрольной работе по курсу *}
{* "Основы автоматизации проектирования" *}
{* *}
{*-------------------------------------------------------------*}
{* Расчет параметров подшипников *}
{* *}
{*-------------------------------------------------------------*}
{* Разработала студентка группы МС-98н Гореленкова С.А. *}
{* *}
{* весенний семестр 2001 г. *}
{*-------------------------------------------------------------*}
PROGRAM Raschet_pametrov_podship;
Uses CRT; {библиотечный модуль для работы с экраном}
{----- Раздел описания констант -----}
Const
Temperature=1; {температурный фактор}
p=3; {коэффициент вида подшипника}
mu=2.4e-3; {коэффициент трения}
S0=1; {требуемый статический фактор}
{----- Раздел описания типов -----}
Type
str=string[5]; {тип для символьной переменной}
{----- Раздел описания переменных -----}
Var
vid:char; {вид нагрузки}
L10, Ll10:real; {долговечность, час}
n:word; {число оборотов/мин}
Fr, Fa:real; {сила радиальная и осевая, Н}
Da, Df:real; {диаметр подшипника внешний и внутренний, мм}
B:real; {ширина подшипника, мм}
C_P:real; {требуемый фактор}
C, C1:real; {корригируемый фактор}
X, Y:real; {радиальный и осевой факторы, Н}
tipL10:str; {тип долговечности}
d, Pu:real; {диаметр вала, мм, и нагрузка, Н}
C0:real; {динамическая грузоподъёмность}
m, Pp:real; {масса и нагрузка}
a1, a23:real; {табличные коэффициенты}
Mom:real; {момент, Н мм}
Gk:real; {вязкость, г}
f:text; {файловая переменная}
{-------- Раздел описания нестандартных процедур --------}
{--------------------------------------------------------}
Procedure DINAMISCHc_p(tip:str; L:real; Var C:real);
{ подпрограмма счета C/P при динамической нагрузке при
различных типах долговечности }
Begin
If tip='L10h' then C_P:=exp(1/3.333*ln(L*60*n/1e6));
If tip='L10s' then C_P:=exp(1/3*ln(L*1000/pi/Dr))
else C_P:=exp(1/1.11*ln(L));
If Fr>Fa then C:=C_P*Fr { IF- оператор проверки условия}
else C:=C_P*Fa;
End;
{---------------------------------------------------------}
Procedure STATISCHc_p(Var C:real);
{ подпрограмма счета C/P при статической нагрузке }
Begin
C_P:=S0;
If Fr>Fa then C:=C_P*Fr
else C:=C_P*Fa;
End;
{----------------------------------------------------------}
Procedure DINAM_l10(tip:str;Var L:real);
{ подпрограмма счета долговечности при динамич.нагрузке}
Begin
If tip='L10h' then L:=exp(1/p*ln(C_P))*1e6/60/n;
If tip='L10s' then L:=exp(1/p*ln(C_P))*pi*Dr/1000
else L:=exp(1/p*ln(C_P));
End;
{----------------------------------------------------------}
Procedure STAT_l10(tip:str;Var L:real);
{ подпрограмма счета долговечности при статич.нагрузке}
Begin
If tip='L10h' then L:=exp(1/p*ln(C_P))*1e6/60/n;
If tip='L10s' then L:=exp(1/p*ln(C_P))*pi*Dr/1000
else L:=exp(1/p*ln(C_P));
End;
{----------------------------------------------------------}
{ основной модуль программы }
BEGIN
Clrscr; {процедура очистки экрана}
assign(f,'Gorelen.res');{связь файловой переменной с именем файла на диске}
rewrite(f); {открытие файла для записи}
Writeln('':5,'Ввод исходных данных:');
writeln('':5,'---------------------');
writeln;
writeln('Выберите вид долговечности подшипника');
writeln('это "L10h","L10s" или "L10"?');
readln(tipL10);
write('Введите само значение долговечности=');
readln(L10);
write('Введите значение силы (N)Fr=');
readln(Fr);
write('Введите значение силы (N)Fa=');
readln(Fa);
write('Введите внутренний диаметр (mm)Dr=');
readln(Dr);
write('Введите число оборотов в минуту n=');
readln(n);
writeln('Какой вид нагрузки вас интересует');
writeln('динамическая или статическая? Введите "D" или "S"');
readln(vid);
If (vid='D')or(vid='d') then DINAMISCHc_p(tipL10,L10,C);
{ вызов процедуры счета С при
динамич. нагрузке }
If (vid='S')or(vid='s') then STATISCHc_p(C);
{ вызов процедуры счета С при
статической нагрузке }
C1:=C/Temperature;
writeln;
writeln(' ПРОАНАЛИЗИРУЙТЕ полученные результаты ');
writeln('Требуемое значение фактора C/P =',C_P:4:1);
writeln('C = ',C:9);
writeln('C1 = ',C1:9);
writeln('-------------------------------------------');
{ вывод результатов расчета во внешний файл }
writeln(f,' Расчет параметров подшипников');
writeln(f,'-------------------------------------------');
writeln(f,'Требуемое значение фактора C/P =',C_P:4:1);
writeln(f,'C = ',C:9);
writeln(f,'C1 = ',C1:9);
writeln(f,'-------------------------------------------');
a1:=1;
a23:=0.9;
writeln;
writeln('Для продолжения работы нажмите любую клавишу');
repeat until KeyPressed;
Clrscr;
writeln(' Введите новые данные:');
write('Диаметр вала, мм d = '); readln(d);
write('Внешний диаметр подшипника, мм Da = ');readln(Da);
write('Ширина подшипника, мм B = '); readln(B);
write('Нагрузка на вал, Н Pu = ');readln(Pu);
write('Динамическая грузоподъемность подшипника C0 = ');readln(C0);
write('Масса подшипника, кг m = '); readln(m);
write('Радиальный силовой фактор, Н X = '); readln(X);
write('Осевой силовой фактор, Н Y = '); readln(Y);
{ вывод исходных данных для расчета во внешний файл }
writeln(f,' Исходные данные');
writeln(f,'Диаметр вала d = ',d:5:2,'мм');
writeln(f,'Внешний диаметр подшипника Da = ',Da:4,'мм');
writeln(f,'Ширина подшипника B = ',B:3,'мм');
writeln(f,'Нагрузка на вал Pu = ',Pu:7:2, 'Н');
writeln(f,'Динамическая грузоподъемность подшипника C0 = ',C0:8);
writeln(f,'Масса подшипника m = ',m:3, 'кг');
writeln(f,'Радиальный силовой фактор X = ',X:7:2,'Н');
writeln(f,'Осевой силовой фактор Y = ',Y:7:2,'Н');
Pp:=X*Fr+Y*Fa;
If (vid='D')or(vid='d') then DINAM_l10(tipL10,Ll10);
If (vid='S')or(vid='s') then STAT_l10(tipL10,Ll10);
L10:=a1*a23*Ll10;
Mom:=0.5*mu*Pp*d;
Gk:=0.35*Da*B*1e-4;
writeln('L10=',L10:9);
writeln('Момент M=',Mom:9,' Nmm');
writeln('Вязкость Gk=',Gk:9,' g');
{ вывод результатов расчета во внешний файл }
writeln(f,' Результаты расчета');
writeln(f,'Долговечность L10 = ',Ll10:9, 'часов');
writeln(f,'Момент M = ',Mom:9,'Н мм');
writeln(f,'Вязкость Gk = ',Gk:9,'г');
close(f); {закрытие внешнего файла}
writeln;
writeln('Для окончания работы программы нажмите любую клавишу);
repeat until KeyPressed;
END.
{ конец основного модуля программы }
Дата публикования: 2015-04-06; Прочитано: 230 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!