Читать книгу Полезные программы Python-3. Книга третья - Сергей Фёдорович Гаврилов - Страница 20
Центр масс нескольких тел
ОглавлениеОпределение координат центра масс нескольких тел производим методом последовательного добавления к уже определенной суммарной массе нескольких тел – еще одной массы. Начинаем с определения центра масс двух тел М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( ) # Ожидание нажима Ентер
# ..... ..... ..... Конец листинга программы ..... .…