Текст книги "Полезные программы Python-3. Книга третья"
Автор книги: Сергей Гаврилов
сообщить о нарушении
Текущая страница: 2 (всего у книги 3 страниц)
# Вывод по Хорде Прогиб Радиус
# Далее следует блок вывода результата ( смотри выше ).
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( ) # Ожидание нажима Ентер
# ..... ..... ..... Конец листинга программы ..... .…