В этой программе объединены общим меню двенадцать небольших программ. Производится расчет при разном наборе исходных данных. Сейчас все привыкли к графическому интерфейсу – пункт меню вычирают мышкой и щелкают кнопкой. Здесь применен древний интерфейс: Пункты меню пронумерованы цифрами ( номерами ). Чтобы выбрать пункт меню – введите цифру номера пункта меню и нажмите Enter.
Листинг программы.
# -*– coding: cp1251 -*-
import math # Подключили математич модуль
global Rad # Радиус – Обьявили глобальную переменную
global Diam # Диаметр
global Xord # Хорда
global Progi # Прогиб
global UgSe # Угол раствора радиусов на хорду
global Dug # Длина дуги над хордой
global PlSe # Площадь сектора на хорду
global PlTr # Площадь Треугольника под хордой
global PlGo # Площадь Горбушки
u=" "
u=" Расчет элементов Хорда – Прогиб – Радиус "
print (uu)
print (u)
print (uu)
u=" ...... ...... ...... ...... ...... ...... ..... ...... "
print (u)
Pii=0.000000
Pii=math.pi # Вытащили число " Пи "
Kvz=0 # Флаг – Если =1 то работа уже выполнена.
print (uu)
u=" 1 – Расчет по Хорде – Радиусу "
print (u)
print (uu)
u=" 2 – Расчет по Хорде и Углу раствора "
print (u)
print (uu)
u=" 3 – Расчет координат Радиусной кривой "
print (u)
print (uu)
u=" 4 – Расчет по Хорде и длине Дуги "
print (u)
print (uu)
u=" 5 – Расчет по Хорде и Прогибу "
print (u)
print (uu)
u=" 6 – Расчет по Радиусу и Углу раствора "
print (u)
print (uu)
u=" 7 – Расчет по Радиусу и Прогибу "
print (u)
print (uu)
u=" 8 – Расчет по Радиусу и длине Дуги "
print (u)
print (uu)
u=" 9 – Расчет по Прогибу и длине Дуги "
print (u)
print (uu)
u=" 10 – Расчет по Прогибу и Углу раствора "
print (u)
print (uu)
u=" 11 – Расчет по Углу раствора и длине Дуги "
print (u)
print (uu)
u=" 12 – Расчет Правильного многогранника "
print (u)
print (uu)
u=" ...... ...... ...... ...... ...... ...... ..... ...... "
print (u)
q=0
q=input( ) # Вводим число
q=float(q) # Принудительно в вещественное число
# ...... ....... ....... ....... ....... ........ .......
if q==1:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
print (uu)
u=" Расчет по Хорде – Радиусу "
print (u)
print (uu)
u=" Введите Хорду "
print (u)
print (uu)
a=0.00000000
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u=" Введите Радиус "
print (u)
print (uu)
R=0.00000000
R=input( ) # Вводим число
R=float(R) # Принудительно в вещественное число
x=0.00000000
y=0.00000000
v=0.00000000
Sk=0.0000000
St=0.00000000
S=0.000000000
x=((R*R)-(a*a/4))
b=R-(math.sqrt(x)) # Квадратный корень из " x "
x=(a/2)/R
y=math.asin(x)
v=math.cos(y)
aur=2*y
au=aur*180/Pii # Угол А в градусах
Kvz=1 # Коэф – Расчет уже выполнен
# Далее Конец Cдвига – четыре пробела в начале каждой строки
else:
# Далее Cдвиг – четыре пробела в начале каждой строки
Kvz=0
# ...... ....... ....... ....... ....... ........ .......
# Далее Конец Cдвига – четыре пробела в начале каждой строки
if q==2:
# Угол раствора это угол между двумя радиусами идущими к концам хорды.
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
print (uu)
u=" Расчет по Хорде и углу раствора "
print (u)
print (uu)
u=" Введите Хорду "
print (u)
print (uu)
a=0.00000000
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u=" Введите Угол раствора в градусах "
print (u)
print (uu)
au=0.00000000
au=input( ) # Вводим число
au=float(au) # Принудительно в вещественное число
x=0.00000000
aur=0.00000000
v=0.00000000
y=0.00000000
Sk=0.0000000
St=0.00000000
S=0.000000000
aur=au*Pii/180
x=math.sin(aur/2)
R=(a/2)/x # Нашли радиус
y=(R*R)-(a*a/4)
v=math.sqrt(y) # Квадратный корень из " y "
b=R-v # Нашли прогиб
Kvz=1 # Коэф – Расчет уже выполнен
# Далее Конец Cдвига – четыре пробела в начале каждой строки
else:
# Далее Cдвиг – четыре пробела в начале каждой строки
Kvz=0
# ...... ....... ....... ....... ....... ........ .......
# Далее Конец Cдвига – четыре пробела в начале каждой строки
if q<3:
# Далее Cдвиг – четыре пробела в начале каждой строки
D=R+R
Sk=Pii*D*D*au/(4*360) # Площадь сектора круга с углом aur
St=(a/2)*(R-b) # Площадь треугольника в секторе
S = Sk-St # Площадь горбушки
L=Pii*D*au/360 # Длина дуги
print (uu)
u=" ,,,, ,,,, ,,,, ,,,,, ,,,,, ,,,, ,,,,, ,,,,, ,,,,, "
print (u)
print (uu)
print (uu)
u=" Хорда = "
ss=str(a) # Преобразуем число в строку
u=u+ss
print (u)
Xord=u
print (uu)
u=" Стрела прогиба = "
ss=str(b) # Преобразуем число в строку
u=u+ss
print (u)
Progi=u
print (uu)
u=" Радиус = "
ss=str(R) # Преобразуем число в строку
u=u+ss
print (u)
Rad=u
print (uu)
u=" Диаметр = "
ss=str(D) # Преобразуем число в строку
u=u+ss
print (u)
Diam=u
print (uu)
u=" Угол раствора хорды = "
ss=str(au) # Преобразуем число в строку
u=u+ss
print (u)
UgSe=u
print (uu)
u=" Длина дуги над хордой = "
ss=str(L) # Преобразуем число в строку
u=u+ss
print (u)
Dug=u
print (uu)
u=" Площадь сектора = "
ss=str(Sk) # Преобразуем число в строку
u=u+ss
print (u)
PlSe=u
print (uu)
u=" Площадь треугольника под горбушкой = "
ss=str(St) # Преобразуем число в строку
u=u+ss
print (u)
PlTr=u
print (uu)
u=" Площадь горбушки = "
ss=str(S) # Преобразуем число в строку
u=u+ss
print (u)
PlGo=u
print (uu)
# Далее Конец Cдвига – четыре пробела в начале каждой строки
# ...... ....... ....... ....... ....... ........ .......
if q==3:
# Далее Cдвиг – четыре пробела в начале каждой строки
q=13 # Переброс в конец программы
# ....... ....... ....... ...... ...... ....... ....... ......
# Далее Конец Cдвига – четыре пробела в начале каждой строки
if q==4:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
print (uu)
u=" Расчет по Хорде и длине Дуги "
print (u)
print (uu)
u=" Введите Хорду "
print (u)
print (uu)
a=0.00000000
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u=" Введите длину Дуги "
print (u)
print (uu)
L=0.00000000
L=input( ) # Вводим число
L=float(L) # Принудительно в вещественное число
R=0.00000000
dx=a/200000
rt=(a/2)+dx # Начальный радиус расчета
aa=a/2 # Половина хорды
dl=Pii*rt
while dl>L: # Расчет по Хорде и длине Дуги
# Далее Cдвиг – восемь пробелов в начале каждой строки
rt=rt+dx # Текущий радиус
x=aa/rt
y=2*(math.asin(x)) # Угол А в радианах через арс синус
dl=rt*y # Текущая длина дуги
# Далее Cдвиг – четыре пробела в начале каждой строки
yg=y*180/Pii # Угол " y " в градусах
au=yg
R=rt # Нашли радиус
y=(R*R)-(aa*aa)
v=math.sqrt(y) # Квадратный корень из " y "
b=R-v # Нашли прогиб
D=R+R
Sk=Pii*D*D*yg/(4*360) # Площадь сектора круга с углом aur
St=aa*v # Площадь треугольника в секторе
S = Sk-St # Площадь горбушки
# Далее Конец Cдвига – четыре пробела в начале каждой строки
else:
# Далее Cдвиг – четыре пробела в начале каждой строки
Kvz=0
# Далее Конец Cдвига – четыре пробела в начале каждой строки
# ...... ...... ....... ...... ...... ....... ....... ....... ........
if q==5:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
u=" Расчет по Хорде – Прогибу "
print (u)
print (uu)
u=" ...... ...... ...... ...... ...... ...... ..... ...... "
print (u)
print (uu)
u=" Введите Хорду "
print (u)
print (uu)
a=0.00000000
a=input( ) # Вводим число
a=float(a) # Хорда – Принудительно в вещественное число
u=" Введите Стрелу Прогиба "
print (uu)
print (u)
print (uu)
b=0.00000000
b=input( ) # Вводим число
b=float(b) # Стрела прогиба – Принудительно в вещественное число
x=0.00000000
y=0.00000000
v=0.00000000
R=0.00000000
Sk=0.0000000
St=0.00000000
S=0.000000000
Ex=1.000000
k=a/2
Rt=k+(k/100000)
Rd= k/100000
t=k/100000000
# Уточнение шаговым подбором
while Ex >t:
# Далее Cдвиг – восемь пробелов в начале каждой строки
Rt=Rt+Rd
x=((Rt*Rt)-(k*k))
c=math.sqrt(x) # Квадратный корень из " x "
Ex=(Rt-c)-b
# E=math.abs(x)
# Конец подбора ........ ....... ......
# Далее Cдвиг – четыре пробела в начале каждой строки
R=Rt
D=R+R
x=k/Rt
sur=math.asin(x) # Угол А в радианах
su=sur*180/Pii # Угол А в градусах
au=2*su
yg=au
L=(R+R)*Pii*au/360
# ....... ....... ....... ...... ...... ....... ....... ....... ........
# Далее Конец Cдвига – четыре пробела в начале каждой строки
if q==6:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
u=" Расчет по Радиусу и Углу раствора "
print (u)
print (uu)
u=" ...... ...... ...... ...... ...... ...... ..... ...... "
print (u)
print (uu)
u=" Введите Радиус "
print (u)
print (uu)
R=0.00000000
R=input( ) # Вводим число
R=float(R) # Радиус – Принудительно в вещественное число
u=" Введите Угол раствора в градусах "
print (uu)
print (u)
print (uu)
yg=0.00000000
yg=input( ) # Вводим число
yg=float(yg) # Угол раствора – Принудительно в вещественное число
yr=yg*Pii/180 # Угол раствора В радианах
x=0.00000000
y=0.00000000
v=0.00000000
Sk=0.0000000
St=0.00000000
S=0.000000000
Ex=1.000000
x= math.cos(yr/2)
y=R*x
b=R-y
x=(R*R)-(y*y)
c=math.sqrt(x) # Квадратный корень из " x "
a=c+c
au=yg
D=R+R
# .......... ........ ....... ....... ........ .......…
# Далее Конец Cдвига – четыре пробела в начале каждой строки
# ....... ....... ....... ...... ...... ....... ....... ....... .
if q==7:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
u=" Расчет по Радиусу и Прогибу "
print (u)
print (uu)
u=" ...... ...... ...... ...... ...... ...... ..... ...... "
print (u)
print (uu)
u=" Введите Радиус "
print (u)
print (uu)
R=0.00000000
R=input( ) # Вводим число
R=float(R) # Радиус – Принудительно в вещественное число
u=" Введите Прогиб "
print (uu)
print (u)
print (uu)
b=0.00000000
b=input( ) # Вводим число
b=float(b) # Угол раствора – Принудительно в вещественное число
k=R-b
x=(R*R)-(k*k)
a=(math.sqrt(x))*2
x=(a/2)/k
aur = (math.atan(x))*2
au=aur*180/Pii
yg = au
# ....... ....... ....... ...... ...... ....... ....... ....... ........
# Далее Конец Cдвига – четыре пробела в начале каждой строки
if q==8:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
u=" Расчет по Радиусу и длине Дуги "
print (u)
print (uu)
u=" ...... ...... ...... ...... ...... ...... ..... ...... "
print (u)
print (uu)
u=" Введите Радиус "
print (u)
print (uu)
R=0.00000000
R=input( ) # Вводим число
R=float(R) # Радиус – Принудительно в вещественное число
print (uu)
u=" Введите длину Дуги "
print (u)
print (uu)
L=0.00000000
L=input( ) # Вводим число
L=float(L) # Хорда – Принудительно в вещественное число
ygr=(2*Pii)* (L/((R+R)*Pii)) # Угол раствора хорды радиан
x=math.sin(ygr/2)
y=R*x
a=y+y # Хорда
t=((R*R)-(y*y))
z=math.sqrt(t) # Квадратный корень из " y "
b=R-z # Прогиб
yg=ygr*180/Pii # Угол раствора хорды град.
# ......... ........ ......... ......... ......... ............
# Далее Конец Cдвига – четыре пробела в начале каждой строки
# Расчет по Прогибу и длине Дуги "
if q==9:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
u=" Расчет по Прогибу и длине Дуги "
print (u)
print (uu)
u=" ...... ...... ...... ...... ...... ...... ..... ...... "
print (u)
print (uu)
u=" Введите стрелу Прогиба "
print (u)
print (uu)
b=0.00000000
b=input( ) # Вводим число
b=float(b) # Радиус – Принудительно в вещественное число
print (uu)
u=" Введите длину Дуги "
print (u)
print (uu)
L=0.00000000
L=input( ) # Вводим число
L=float(L) # Хорда – Принудительно в вещественное число
print (uu)
u=" Подождите – идет расчет "
print (u)
print (uu)
bb=0.000000 # Текущий прогиб
Rt=L/Pii # Начальный Текущий радиус
xx=b/100000 # Приращение радиуса
xb=b/1000 # Допустимая ошибка..
db=10000000*b # Начальное значение ошибки
ugr=0.0000000
# Уточнение подбором
while db >xb:
# Далее Cдвиг – восемь пробелов в начале каждой строки
Rt=Rt+xx
ygr=(2*Pii)* (L/((Rt+Rt)*Pii)) # Угол раствора хорды радиан
x=math.sin(ygr/2)
y=Rt*x
a=y+y # Хорда
t=((Rt*Rt)-(y*y))
z=math.sqrt(t) # Квадратный корень из " y "
bb=Rt-z # Прогиб
x=(b-bb)*(b-bb)
db=math.sqrt(x) # Квадратный корень из " x "
# Далее Cдвиг – четыре пробела в начале каждой строки
db=db+xb
xx=b/100000000 # Приращение радиуса
xb=b/1000000
# Уточнение подбором ( вторая ступень )
while db >xb:
# Далее Cдвига – восемь пробелов в начале каждой строки
Rt=Rt+xx
ygr=(2*Pii)* (L/((Rt+Rt)*Pii)) # Угол раствора хорды радиан
x=math.sin(ygr/2)
y=Rt*x
a=y+y # Хорда
t=((Rt*Rt)-(y*y))
z=math.sqrt(t) # Квадратный корень из " y "
bb=Rt-z # Прогиб
x=(b-bb)*(b-bb)
db=math.sqrt(x) # Квадратный корень из " x "
# Далее Cдвига – четыре пробела в начале каждой строки
# Конец подбора ........ ....... ....... ....... ....... ....... ........
R=Rt
yg=ygr*180/Pii # Угол раствора хорды град.
# Далее Конец Cдвига – четыре пробела в начале каждой строки
# ,,,,,,,,, ,,,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,,, ,,,,,,,,
# ......... ........ ......... ......... ......... ............
# Расчет по Углу раствора и Прогибу "
if q==10:
О проекте
О подписке