Эта книга для начинающих программистов, желающих начать программировать на языке Python 3. Книга будет полезна для студентов механиков. Набор программ создан для цеховых конструкторов механиков. Предлагаемые в книге расчеты экономят рабочее время и уменьшает ошибки.. Данная книга — сборник листингов рабочих программ. Все программы, в разное время, разработаны самим автором, при возникновении необходимости данных расчетов. Все программы проверены и постоянно используются в работе конструктора — механика . Листинги программ снабжены пояснениями.
Приведённый ознакомительный фрагмент книги «Полезные программы Python-3. Книга третья» предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других
Листинги программ
:
Линейная интерполяция
Линейную интерполяцию применяем для определения значения коэффициента находящегося между двемя табличными значениями.
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математич модуль
# Эти первые две строки листинга определяют таблицу кодировки символов
# и подключают библиотеку для математических расчетов.
# Эти две строки, точно без изменения, применяют во всех листингах программ.
uu=” “ # Далее идет вывод на экран заголовка программы.
print (uu)
print (uu)
u="Расчет линейной интерполяции"
print (u)
print (uu)
# Далее вводим в программу исходные данные для расчета.
print (uu)
u="Введите X1"
print (u)
print (uu)
x1=0.00000000
x1=input( ) # Вводим число
x1=float(x1) # Принудительно в вещественное число
print (uu)
u="Введите X2"
print (u)
print (uu)
x2=0.00000000
x2=input( ) # Вводим число
x2=float(x2) # Принудительно в вещественное число
print (uu)
u="Введите Xx"
print (u)
print (uu)
xx=0.00000000
xx=input( ) # Вводим число
xx=float(xx) # Принудительно в вещественное число
print (uu)
u="………………………………………………………………"
print (u)
print (uu)
u="Введите Y1"
print (u)
print (uu)
y1=0.00000000
y1=input( ) # Вводим число
y1=float(y1) # Принудительно в вещественное число
print (uu)
u="Введите Y2"
print (u)
print (uu)
y2=0.00000000
y2=input( ) # Вводим число
y2=float(y2) # Принудительно в вещественное число
# Далее идет расчет по формуле..
yx=(((y2-y1)*(xx-x1))/(x2-x1))+y1
# Далее выводится на экран результат расчета
u="………………………………………………………………"
print (u)
print (u)
print (uu)
print (uu)
u="X1 =", x1,"Y1 =",y1,""
print (u)
print (uu)
u="X2 =", x2,"Y2 =",y2,""
print (u)
print (uu)
u="Xx =", xx,"Yx =",yx,""
print (u)
print (uu)
u="…..…..…..…..…..…………"
print (u)
print (u)
print (uu)
print (uu)
input( ) # Ожидание нажима Ентер
# Далее делаем еще один расчет на тех же исходных данных и выводим результаты.
Pii=math.pi # Вытащили число"Пи"и поместили в переменную Pii…
cc=((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))
c=math.sqrt(cc) # Квадратный корень из"cc"
cs=str(c) # Преобразуем число в строку
u="Длина линии x1;y1 — x2;y2 ="+cs
print (uu)
print (u)
a=(y2-y1)/(x2-x1)
aur=math.atan(a) # Угол aur в радианах через арс тангенс
au=aur*180/Pii # Угол au в градусах ( переводим ).
aus=str(au) # Преобразуем число в строку
u="Угол линии x1;y1 — x2;y2 с осью Х ="+aus+"градус"
print (uu) # Выводим пустую строку
print (u) # Выводим результат — угол в градусах
print (uu)
print (uu)
input( ) # Ожидание нажима Ентер что бы можно было прочитать результаты.
#…..…..….. Конец листинга программы…..….
Координаты точек на радиусной кривой
Программа бывает необходима при построении сегмента с радиусом
большой величины — который построить непосредственной разметкой
сложно или невозможно из за мешающих препятствий.
Результаты расчета записываются в файл 'Rezult.txt'.
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
import sys # Подключили основные библиотеки
#…….…….…….……………….…….……
Pii=math.pi # Вытащили число"Пи"
f = open('Rezult.txt', 'w') # Открыли файл для записи результатов
# Записываем числа в текстовом виде
uu=""
u=uu+"\n"# Добавим код перевода строки
f.write(u)
u1="Расчет координат точек на радиусной кривой"
u=u1+"\n"
f.write(u)
uu=""+"\n"
f.write(uu)
uuu=",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"+"\n"
f.write(uuu)
f.write(uu)
print (uu)
u="Построение большого радиуса методом подьема"
print (u)
print (uu)
u="Размер по горизонтали отсчитывается от центра хорды"
print (u)
u="от точки Х2 на хорде проводим перпендикуляр Нм расчитанной величины."
print (u)
u="При вводе размера по горизонту = нулю — выход из программы"
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
a=0.00000000
y=0.00000000
ug=0.00000000
ugg=0.00000000
R=0.00000000
hm=0.00000000
ht= 0.0000000
u="Введите радиус"
print (u)
print (uu)
R=input( ) # Вводим число
R=float(R) # Принудительно в вещественное число
u="Радиус заданной кривой ="
ss=str(R) # Преобразуем число в строку
Rad=u+ss
u=Rad+"\n"
f.write(u)
u="Введите Хорду L"
print (u)
print (uu)
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u="Хорда максимальная заданная L ="
ss=str(a) # Преобразуем число в строку
Xord=u+ss
u=Xord+"\n"
f.write(u)
# Находим значения максимального прогиба при X2 = 0….
x=((R*R)-(a*a/4))
b=R-(math.sqrt(x)) # Квадратный корень из"x"
# b — максимальный прогиб…
u="Подъем максимальный в центре хорды ="
ss=str(b) # Преобразуем число в строку
Progi=u+ss
u=Progi+"\n"
f.write(u)
x=(a/2)/R
y=math.asin(x)
v=math.cos(y)
aur=2*y
au=aur*180/Pii # Угол А в градусах
Lx= 0.0000001 # <Начальное значение>
while Lx>0: # Далее идет циклический расчет
# Далее Cдвиг — четыре пробела в начале каждой строки
print (uu)
u="Введите растояние от центра хорды до перпендикуляра X2"
print (u)
print (uu)
Lx=input( ) # Вводим число
Lx=float(Lx)
u="От центра хорды до точки X2 по оси Х-Х ="
ss=str(Lx) # Преобразуем число в строку
Xord=u+ss
u=Xord+"\n"
f.write(uu)
f.write(u)
x=(R*R)-(Lx*Lx)
z=math.sqrt(x)
y=R-z # Прогиб при хорде = Lx*2
ht=b-y # Расчитали величину подьема
Gsf = 461030/2725231222..
u="На растоянии от центра ="
ss=str(Lx) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Величина подьема ( перпендикуляра ) Hm ="
ss=str(ht) # Преобразуем число в строку
u=u+ss
print (u)
f.write(u)
f.write(uu)
print (uu)
u="==================================="
print (u)
f.write(u)
print (uu)
input( ) # Ожидание нажима Ентер
# Далее Конец Cдвига — четыре пробела в начале каждой строки
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
#…….…….…….……………….…….……
f.write(uu)
f.write(uuu)
f.close() # закрыли файл
#…….…….…….……………….…….…….……..……..……..
u="……………… Конец программы………………"
print (u)
print (uu)
input( ) # Ожидание нажима Ентер —
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…....
Хорда — Прогиб — Радиус
В этом разделе объединены двенадцать небольших программ. Производится расчет при разном наборе исходных данных.
Расчет по Хорде — Радиусу
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=” ”
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 # Угол А в градусах
#
Вывод по Хорде Прогиб Радиус
# Этот вывод без изменений будет во всех программах
# « Хорда прогиб радиус » — поэтому в дальнейшем мы повторяться
# не будем — ограничимся только заголовком.
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)
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…....
Расчет по Хорде и углу раствора
Угол раствора это угол между двумя радиусами идущими к концам хорды.
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
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 # Нашли прогиб
#………….…….…….…….……..…….
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…....
Расчет по Хорде и длине Дуги
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
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 # Площадь горбушки
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…....
#……………….…………
Расчет по Хорде — Прогибу
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
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
#…….…….…….
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…....
#……………….…………
Расчет по Радиусу и Прогибу
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
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
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…....
#……………….…………
Расчет по Прогибу и длине Дуги
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
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двига — нет…
# Конец подбора……..
# Gsf = 461030/2725231222…
R=Rt
yg=ygr*180/Pii # Угол раствора хорды град.
# Далее Cдвига — нет….
x=a/(R+R)
k=math.asin(x)
au=(k+k)*180/Pii # Угол на хорду в градусах
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…..
#……………….…………
Расчет по Прогибу и Углу раствора
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
print (uu)
print (uu)
u="Расчет по Прогибу и Углу раствора"
print (u)
print (uu)
u="……………………"
print (u)
print (uu)
u="Введите Угол раствора в градусах"
print (u)
print (uu)
au=0.00000000
au=input( ) # Вводим число
au=float(au) # Принудительно в вещественное число
aur=au*Pii/180
u="Введите стрелу Прогиба"
print (u)
print (uu)
b=0.00000000
b=input( ) # Вводим число
b=float(b) # Принудительно в вещественное число
z=math.cos(aur/2)
R=b/(1-z)
x=0.00000000
y=0.00000000
v=0.00000000
Sk=0.0000000
St=0.00000000
S=0.000000000
Ex=1.000000
x= math.cos(aur/2)
y=R*x
x=(R*R)-(y*y)
c=math.sqrt(x) # Квадратный корень из"x"
a=c+c
D=R+R
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…..
#……………….…………
Расчет по Углу раствора и длине Дуги
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
print (uu)
u="Расчет по Углу раствора и длине Дуги"
print (u)
print (uu)
u="……………………"
print (u)
print (uu)
u="Введите Угол раствора в градусах"
print (u)
print (uu)
yg=0.00000000
yg=input( ) # Вводим число
yg=float(yg) # Принудительно в вещественное число
print (uu)
u="Введите длину Дуги"
print (u)
print (uu)
L=0.00000000
L=input( ) # Вводим число
L=float(L) # Принудительно в вещественное число
C=L*360/yg
D=C/Pii
R=D/2
x=0.00000000
y=0.00000000
v=0.00000000
Sk=0.0000000
St=0.00000000
S=0.000000000
Ex=1.000000
yr=yg*Pii/180
x= math.cos(yr/2)
y=R*x
b=R-y
z=(R*R)-(y*y)
c=math.sqrt(z) # Квадратный корень из"x"
a=c+c
au=yg
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…..
#……………….…………
Расчет Правильного многогранника
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математический модуль
Pii=math.pi # Вытащили число"Пи"
uu=""
print (uu)
print (uu)
u="Расчет Правильного многогранника"
print (u)
print (uu)
u="……………………"
print (u)
print (uu)
u="Введите Описанный диаметр"
print (u)
u="при вводе нуля — переход на вписанный диаметр"
print (u)
print (uu)
D=0.00000000
D=input( ) # Вводим число
D=float(D) # — Принудительно в вещественное число
x=0.00000000
y=0.00000000
v=0.00000000
Sk=0.0000000
St=0.00000000
S=0.000000000
Ex=10000000
vv=0 # Флаг расчета при заданном Описанном диаметре
vv=float(vv)
if D==0:
# Далее Cдвиг — четыре пробела в начале каждой строки
u="……………………"
print (u)
print (uu)
u="Введите Вписанный диаметр"
# Вписанный диаметр, при четном числе граней,
# является размером под ключ.
print (u)
print (uu)
Sv=0.00000000
Sv=input( ) # Вводим число
Sv=float(Sv) # — Принудительно в вещественное число
u="Введите число Граней"
print (uu)
print (u)
print (uu)
n=0.00000000
n=input( ) # Вводим число
n=float(n) # Принудительно в вещественное число
sur=2*Pii/n # Угол А в радианах
su=360/n # Угол А в градусах
au=su
yg=au
yr=sur
x=math.cos(sur/2) # Cos Угла А
y=Sv/2
R=y/x
D=R+R
vv=1 # Флаг расчета при заданном Вписанном диаметре
# Далее Cдвига нет…
if vv==0:
# Далее Cдвиг — четыре пробела в начале каждой строки
u="Введите число Граней"
print (uu)
print (u)
print (uu)
n=0.00000000
n=input( ) # Вводим число
n=float(n) # Принудительно в вещественное число
R=D/2
sur=2*Pii/n # Угол А в радианах
su=360/n # Угол А в градусах
au=su
yg=au
yr=sur
x=math.cos(sur/2) # Cos Угла А
y=R*x
# Далее Cдвига нет….
Sh=y
Sv=y+y
b=R-y
x=(R*R)-(y*y)
c=math.sqrt(x) # Квадратный корень из"x"
a=c+c
Sm=(a*(R-b)/2)*n # Площадь многогранника
nn=0
# Вывод по Многограннику
u="Описанный диаметр ="
ss=str(D) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Число граней ="
ss=str(n) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Высота: Грань — Центр ="
ss=str(Sh) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Вписанный диаметр ="
ss=str(Sv) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Ширина грани ="
ss=str(a) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Площадь Многогранника ="
ss=str(Sm) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
# Позволяет рассмотреть результаты расчета
#….. Конец листинга программы…..
#……………….…………
Овал ( коробовая кривая )
На схеме показано построение коробовой кривой ( овала ).
Отрезок АО — половина большей оси овала. Отрезок ВО — половина меньшей оси овала.
Rb — Большой радиус овала. Rм — Малый радиус овала. Остальное понятно из чертежа.
Построенная коробовая кривая отличается от овала — но для большенства расчетов различие
является несущественным. Данный расчет применяется к определению формы резинового кольца при сжатии в осевом направлении.
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математич модуль
# Проверено и геометрически тоже 15-12-2015 г..
ug=0.000000
uu=""
Uu=""
u="Расчет параметров овала ( коробовой кривой )"
print (uu)
print (uu)
print (u)
u1=u
print (uu)
u=",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
print (uu)
print (u)
print (uu)
u="Вводим больший габаритный размер овала"
print (u)
print (uu)
x1=0.00000000
x1=input( ) # Вводим число
x1=float(x1) # Принудительно в вещественное число
u="Вводим меньший габаритный размер овала"
print (u)
print (uu)
y1=0.00000000
y1=input( ) # Вводим число
y1=float(y1) # Принудительно в вещественное число
#………………………………………………………………………
Pii=math.pi # Вытащили число"Пи"
oa=x1/2 # Большая полуось овала
ob=y1/2 # Малая полуось овала
pb=oa-ob
tb=pb
x=(oa*oa)+(ob*ob)
ab=math.sqrt(x) # Квадратный корень из"x"
at=ab-tb
xt=at/2
ao1=(xt*ab)/oa # Малый радиус
bk=(ab*(xt+pb))/ob # Большой радиус
x=ob/oa
ua=math.atan(x) # АрксТангенс от Х
# ua — Угол четвертинки сектора большого круга
ub=(Pii/2)-ua # Угол четвертинки сектора малого круга
Sb=Pii*bk*bk # Площадь круга с Большим радиусом
Sm=Pii*ao1*ao1 # Площадь круга с Малым радиусом
Sbs=Sb*2*ua/Pii # Площадь секторов с Большим радиусом
Sms=Sm*2*ub/Pii # Площадь секторов с Малым радиусом
ko=bk-ob
oo1=oa-ao1
Str=2*ko*oo1 # Площадь четырех вычитаемых треугольников
So=(Sms+Sbs)-Str
xu=ua*360/Pii # Угол раствора Б. радиусов
x=4*So/Pii
Ds=math.sqrt(x) # Диаметр равного по площади — круга
x=xu/2
Pp=((ao1*(90-x))+(bk*x))*Pii/45 # Периметр овала.
#………………………………………………………………………
u=",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
print (uu)
print (u)
u2=u
print (uu)
u="Большая ось овала ="
ss=str(x1) # Преобразуем число в строку
u=u+ss
print (u)
u3=u
print (uu)
u="Меньшая ось овала ="
ss=str(y1) # Преобразуем число в строку
u=u+ss
print (u)
u4=u
print (uu)
u="Больший радиус ="
ss=str(bk) # Преобразуем число в строку
u=u+ss
print (u)
u5=u
print (uu)
u="От оси до центра Б. радиуса ="
ss=str(ko) # Преобразуем число в строку
u=u+ss
print (u)
u6=u
print (uu)
u="Меньший радиус ="
ss=str(ao1) # Преобразуем число в строку
u=u+ss
print (u)
u7=u
print (uu)
u="От оси до центра M. радиуса ="
ss=str(oo1) # Преобразуем число в строку
u=u+ss
print (u)
u8=u
print (uu)
u="Угол раствора Б. радиусов ="
ss=str(xu) # Преобразуем число в строку
u=u+ss
print (u)
u9=u
print (uu)
u="Периметр овала ="
ss=str(Pp) # Преобразуем число в строку
u=u+ss
print (u)
u10=u
print (uu)
u="Площадь овала ="
ss=str(So) # Преобразуем число в строку
u=u+ss
print (u)
u11=u
print (uu)
u="Диаметр равного по площади — круга ="
ss=str(Ds) # Преобразуем число в строку
u=u+ss
print (u)
u12=u
print (uu)
print (uu)
#…..…..…..…..….
f = open('Rezult.txt', 'w') # Открыли файл для записи
# Записываем числа в текстовом виде
u=uu+"\n"# Добавим код перевода строки
f.write(u)
u=u1+"\n"
f.write(u)
uu=""+"\n"
f.write(uu)
u=u2+"\n"
f.write(u)
f.write(uu)
u=u3+"\n"
f.write(u)
u=u4+"\n"
f.write(u)
f.write(uu)
u=u5+"\n"
f.write(u)
u=u6+"\n"
f.write(u)
u=u7+"\n"
f.write(u)
u=u8+"\n"
f.write(u)
u=u9+"\n"
f.write(u)
u=u10+"\n"
f.write(u)
u=u11+"\n"
f.write(u)
u=u12+"\n"
f.write(u)
f.write(uu)
f.close() # закрыли файл
#…..…..…..…..….
input( ) # Ожидание нажима Ентер
u="…… Конец программы……"
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
#.….. Конец листинга программы…..
Треугольни
к
Центр описанной окружности на пересечении перпендикуляров проведенных от середин сторон треугольника. Центр вписанной окружности на пересечении медиан углов треугольника. Центр тяжести треугольника лежит на линии Х-Х параллельной основанию и расположенной на 1/3 высоты — в точке пересечения медиан углов треугольника. Медиана делит противолежащую сторону пополам.
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математич модуль.
uu=""
u="Расчет элементов треугольника"
print (uu)
print (uu)
print (u)
print (uu)
u="Напротив сторон треугольника лежат одноименные углы"
print (u)
print (uu)
u="…………………………………..……"
print (u)
print (uu)
Pii=0.000000
Pii=math.pi # Вытащили число"Пи"
#
Известны три стороны
print (uu)
print (uu)
u="Известны три стороны"
print (u)
print (uu)
u="Введите сторону А"
print (u)
print (uu)
a=0.00000000
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u="Введите сторону B"
print (u)
print (uu)
b=0.00000000
b=input( ) # Вводим число
b=float(b) # Принудительно в вещественное число
u="Введите сторону C"
print (u)
print (uu)
c=0.00000000
c=input( ) # Вводим число
c=float(c) # Принудительно в вещественное число
print (uu)
print (uu)
u="….…..….…..…..…..….…..….."
print (u)
print (uu)
x=0.00000000
x=((b*b)+(c*c)-(a*a))/(2*b*c)
aur=0.0000000
aur=math.acos(x) # Угол А в радианах
au=aur*180/Pii # Угол А в градусах
x=((a*a)+(c*c)-(b*b))/(2*a*c)
bur=0.0000000
bur=math.acos(x) # Угол В в радианах
bu=bur*180/Pii # Угол В в градусах
cur=Pii-(aur+bur)
cu=cur*180/Pii # Угол С в градусах
#…….……
# Это « добавочный расчет » во все
# подпрограммы Треугольника
# И вывод результатов расчета
x=0.00000000
z=0.00000000
R=0.00000000
ha=0.00000000
hb=0.00000000
hc=0.00000000
z=math.sin(aur) # Sin угла A
R=a/(2*z) # R Описанной окружности
hc=b*z # Высота из угла С
z=math.sin(cur) # Sin угла С
hb=a*z # Высота из угла B
z=math.sin(bur) # Sin угла B
ha=c*z # Высота из угла A
S=a*ha/2 # Площадь треугольника
Pe=a+b+c # Периметр
rv=(S+S)/Pe # Радиус вписанной окружности
u=",,,,,,,,,,,,,,,,,"
print (uu)
print (u)
print (uu)
print (uu)
u="Сторона A ="
ss=str(a) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Сторона B ="
ss=str(b) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Сторона C ="
ss=str(c) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Угол А ="
ss=str(au) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Угол B ="
ss=str(bu) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Угол C ="
ss=str(cu) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="….…..….…..…..…..….…..….."
print (u)
print (uu)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
u="Площадь ="
ss=str(S) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Радиус описанной окружности. ="
ss=str(R) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Радиус вписанной окружности ="
ss=str(rv) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Высота из угла A ="
ss=str(ha) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Высота из угла B ="
ss=str(hb) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Высота из угла C ="
ss=str(hc) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Центр тяжести на одной трети высоты"
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
u="…… Конец программы……"
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
#…. Конец листинга программы…..….
Две известные стороны и угол между ними
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математич модуль.
uu=""
u="Расчет элементов треугольника"
print (uu)
print (uu)
print (u)
print (uu)
u="Напротив сторон треугольника лежат одноименные углы"
print (u)
print (uu)
u="…………………………………..……"
print (u)
print (uu)
Pii=0.000000
Pii=math.pi # Вытащили число"Пи"
print (uu)
print (uu)
u="Известны две стороны и угол меж ними"
print (u)
print (uu)
u="Введите сторону А"
print (u)
print (uu)
a=0.00000000
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u="Введите сторону B"
print (u)
print (uu)
b=0.00000000
b=input( ) # Вводим число
b=float(b) # Принудительно в вещественное число
u="Введите угол C в градусах"
print (u)
print (uu)
cu=0.00000000
cu=input( ) # Вводим число
cu=float(cu) # Принудительно в вещественное число
print (uu)
print (uu)
u="….…..….….."
print (u)
print (uu)
# Значит имеем две известные стороны А и В
# и угол между ними С
x=0.00000000
y=0.00000000
cur=cu*Pii/180 # Угол C в радианах
y=math.cos(cur) # COS угла С
x=((a*a)+(b*b))-(2*a*b*y)
c=math.sqrt(x) # Квадратный корень из"x"
x=((b*b)+(c*c)-(a*a))/(2*b*c)
aur=0.0000000
aur=math.acos(x) # Угол А в радианах
au=aur*180/Pii # Угол А в градусах
x=((a*a)+(c*c)-(b*b))/(2*a*c)
bur=0.0000000
bur=math.acos(x) # Угол В в радианах
bu=bur*180/Pii # Угол В в градусах
Gsf = 461030/2725231222…
# Далее вставляем блок добавочных расчетов
# И вывода результатов ( смотри выше ).
#…. Конец листинга программы…..
Одна сторона — А и два угла В и С
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математич модуль.
uu=""
u="Расчет элементов треугольника"
print (uu)
print (uu)
print (u)
print (uu)
u="Напротив сторон треугольника лежат одноименные углы"
print (u)
print (uu)
u="…………………………………..……"
print (u)
print (uu)
Pii=0.000000
Pii=math.pi # Вытащили число"Пи"
print (uu)
print (uu)
print (uu)
u="Известны два угла при одной стороне"
print (u)
print (uu)
u="Введите сторону А"
print (u)
print (uu)
a=0.00000000
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u="Введите угол B в градусах"
print (u)
print (uu)
bu=0.00000000
bu=input( ) # Вводим число
bu=float(bu) # Принудительно в вещественное число
u="Введите угол C в градусах"
print (u)
print (uu)
cu=0.00000000
cu=input( ) # Вводим число
cu=float(cu) # Принудительно в вещественное число
print (uu)
print (uu)
u="….…..….…..….."
print (u)
print (uu)
# Известны два угла В и С при одной стороне А
x=0.00000000
y=0.00000000
z=0.00000000
bur=bu*Pii/180 # Угол B в радианах
cur=cu*Pii/180 # Угол C в радианах
aur=Pii-(bur+cur)
au=aur*180/Pii
z=math.sin(aur) # Sin угла A
x=math.sin(bur) # Sin угла B
y=math.sin(cur) # Sin угла C
b=(a*x)/z # Сторона В
c=(b*y)/x # Сторона С
# Далее вставляем блок добавочных расчетов
# И вывода результатов ( смотри выше ).
#…. Конец листинга программы…..
Имеем три угла А, В и С
Листинг программы.
# — * — coding: cp1251 — *-
import math # Подключили математич модуль.
uu=""
u="Расчет элементов треугольника"
print (uu)
print (uu)
print (u)
print (uu)
u="Напротив сторон треугольника лежат одноименные углы"
print (u)
print (uu)
u="…………………………………..……"
print (u)
print (uu)
Pii=0.000000
Pii=math.pi # Вытащили число"Пи"
print (uu)
print (uu)
print (uu)
u="Известны три угла ( определяем пропорции сторон )"
print (u)
print (uu)
u="Введите угол А в градусах"
print (u)
print (uu)
au=0.00000000
au=input( ) # Вводим число
au=float(au) # Принудительно в вещественное число
u="Введите угол B в градусах"
print (u)
print (uu)
bu=0.00000000
bu=input( ) # Вводим число
bu=float(bu) # Принудительно в вещественное число
cu=180-(au+bu)
cu=float(cu) # Принудительно в вещественное число
print (uu)
print (uu)
u="….…..….….."
print (u)
print (uu)
aur=au*Pii/180 # Угол C в радианах
bur=bu*Pii/180 # Угол C в радианах
cur=cu*Pii/180 # Угол C в радианах
a=1000*(math.sin(aur))
b=1000*(math.sin(bur))
c=1000*(math.sin(cur))
#",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
# Это « добавочный расчет »
# во все подпрограммы Треугольника
x=0.00000000
z=0.00000000
R=0.00000000
ha=0.00000000
hb=0.00000000
hc=0.00000000
z=math.sin(aur) # Sin угла A
R=a/(2*z) # R Описанной окружности
hc=b*z # Высота из угла С
z=math.sin(cur) # Sin угла С
hb=a*z # Высота из угла B
z=math.sin(bur) # Sin угла B
ha=c*z # Высота из угла A
S=a*ha/2 # Площадь треугольника
Pe=a+b+c # Периметр
rv=(S+S)/Pe # Радиус вписанной окружности
u=",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
print (uu)
print (u)
print (uu)
print (uu)
u="Сторона A ="
ss=str(a) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Сторона B ="
ss=str(b) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Сторона C ="
ss=str(c) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Угол А ="
ss=str(au) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Угол B ="
ss=str(bu) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Угол C ="
ss=str(cu) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="….…..….…..…..…..….…..….."
print (u)
print (uu)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
u="Площадь ="
ss=str(S) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Радиус описанной окружности. ="
ss=str(R) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Радиус вписанной окружности ="
ss=str(rv) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Высота из угла A ="
ss=str(ha) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Высота из угла B ="
ss=str(hb) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Высота из угла C ="
ss=str(hc) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u="Центр тяжести на одной трети высоты"
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
u="……………… Конец программы………………"
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
#…..…..….. Конец листинга программы…..….
Центр масс нескольких тел
Определение координат центра масс нескольких тел производим методом последовательного добавления к уже определенной суммарной массе нескольких тел — еще одной массы. Начинаем с определения центра масс двух тел М1 и М2. Находим суммарную массу дух тел и координаты центра масс этих двух тел в точке Хх. Далее считаем, что сумма масс двух тел сосредоточена в точке центра масс с координатами Хх. Считаем что получившееся суммарное тело — это тело № М3. Затем добавляем к нему еще одно тело № М4. Снова получаем задачу по определению центра масс двух тел № М3 и № М4. Находим координаты новой точки центра масс. Программа позволяет добавлять к уже определенному суммарному телу еще одно тело столько раз — сколько необходимо.
По анологичной методике можно разработать программу по вычислению момента инерции, координат нейтральной оси и момента сопротивления тела сложной формы. Сечение тела сложной формы разбиваем на элементарные прямоугольники и расчитываем их как составное тело.
Листинг программы.
# — * — coding: cp1251 — *-
import sys # Подключили основные библиотеки
import math # Подключили математич модуль
uu=""
print (uu)
print (uu)
print (uu)
u="Расчет центра масс нескольких тел"
print (u)
u="Введите массу первого тела М1"
print (uu)
print (u)
m=0.0000
m=input( )
print (uu)
u="Введите растояние до нулевой оси отсчета Х1"
print (uu)
print (u)
r=0.0000
r=input( )
print (uu)
u="….….…..….…..…..…..…..…..….."
print (u)
u="Масса первого тела М1 ="
t=str(m) # Преобразуем число в строку
u=u+t # сложим строки
print (uu)
print (u)
u="Растояние до нулевой оси отсчета Х1 ="
t=str(r) # Преобразуем число в строку
u=u+t # сложим строки
print (uu)
print (u)
m=float(m) # Принудительно в вещественное число
r=float(r) # Принудительно в вещественное число
mm=0.00000
mm=m*r
u="Момент массы относительно нулевой оси ="
t=str(mm) # Преобразуем число в строку
u=u+t # сложим строки
print (uu)
print (u)
print (uu)
u="….….…..….…..…..…..…..…..….."
print (u)
Pii=math.pi # Вытащили число"Пи"
ms=m # Сумма масс.
mms=mm # Сумма моментов масс.
n=1 # Порядковый номер прямоугольника
n=int(n) # Переведем в целое число
#"….….…..….…..…..…..…..…..….."
x=0
x=int(x) # Переведем в целое число
y=int(r) # Переведем в целое число
while y>x:
# Далее Cдвиг — четыре пробела в начале каждой строки
u="….….…..….…..…..…..…..…..….."
print (u)
print (uu)
n=n+1
u="Ввести значение массы №"
t=str(n) # Преобразуем число в строку
u=u+t # сложим строки
print (u)
print (uu)
m=0.0000
m=input( )
print (uu)
u="Растояние до нулевой оси отсчета"
print (uu)
print (u)
r=0.000000
r=input( )
r=float(r) # Принудительно в вещественное число
m=float(m) # Принудительно в вещественное число
ms=ms+m # Сумма масс.
mm=m*r
mms=mms+mm # Сумма моментов масс.
rx=0.000000
rx=mms/ms # Растояние от нулевой оси до Ц.Т. системы
y=r
print (uu)
if y == x:
# Далее Cдвиг — восемь пробелов в начале каждой строки
break # Выход из цикла
# Далее Cдвиг — четыре пробела в начале каждой строки
u="….….…..….…..…..…..…..…..….."
print (u)
print (u)
print (uu)
u1="Добавили массу №"
u2="="
t1=str(n) # Преобразуем число в строку
t2=str(m) # Преобразуем число в строку
u=u1+t+u2+t2
print (uu)
print (u)
u1="Растояние до нулевой оси ="
t=str(r) # Преобразуем число в строку
u=u1+t # сложим строки
print (uu)
print (u)
u1="Добавленный момент ="
t=str(mm) # Преобразуем число в строку
u=u1+t # сложим строки
print (uu)
print (u)
u1="Сумма масс ="
t=str(ms) # Преобразуем число в строку
u=u1+t # сложим строки
print (uu)
print (u)
u1="Сумма моментов ="
t=str(mms) # Преобразуем число в строку
u=u1+t # сложим строки
print (uu)
print (u)
print (uu)
u="Растояние Ц.Т. от нулевой оси ="
t=str(rx) # Преобразуем число в строку
u=u+t # сложим строки
print (uu)
print (u)
print (uu)
u="….….…..….…..…..…..…..…..….."
print (u)
print (u)
print (uu)
# Далее Cдвига нет…
u="…………………. Конец работы программы……………….."
print (u)
print (uu)
u="….….…..….…..…..…..…..…..….."
print (u)
print (u)
print (uu)
#…..…..…..…..….
input( ) # Ожидание нажима Ентер
#…..…..….. Конец листинга программы…...…
Круглое трубное сечение
# Листинг программы..
# — * — coding: cp1251 — *-
import sys # Подключили основные библиотеки
import math # Подключили математич модуль
uu=""
print (uu)
print (uu)
print (uu)
u="Расчет параметров круглого трубного сечения"
print (u)
u="Введите наружный диаметр сечения,"
print (uu)
print (u)
d=0.0000
d=input( )
print (uu)
#…..…..…..…..….
u="Введите внутренний диаметр сечения,"
print (uu)
print (u)
dv=0.0000
dv=input( )
print (uu)
print (uu)
u="….….…..….…..…..…..…..…..….."
print (u)
ll=1 # Зададим длину сечения = 1 мм.
d=float(d) # Принудительно в вещественное число
ll=float(ll) # Принудительно в вещественное число
#…..…..…..…..….
u="….….…..….…..…..…..…..…..….."
u="Диаметр наружный сечения ="
t=str(d) # Преобразуем число в строку
u=u+t # сложим строки
print (uu)
print (u)
u="Диаметр внутренний сечения ="
t=str(dv) # Преобразуем число в строку
u=u+t # сложим строки
Конец ознакомительного фрагмента.
Приведённый ознакомительный фрагмент книги «Полезные программы Python-3. Книга третья» предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других