Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Составить программу Python

Дарья Подаренкина Ученик (139), открыт 1 неделю назад
Правильное платоново тело B B с ребром длиной L L мкм, состоящее из дигидрида кислорода при температуре 273.15 273.15 К, с помощью тончайшего молекулярного скальпеля разделили на M M одинаковых правильных платоновых тел (обусловимся, что такое разделение всегда возможно). Определите, насколько в итоге изменилась энергия льда. Диаметр молекулы воды принять за 0.28 0.28 нм, её массу принять за 2.99 ⋅ 1 0 − 23 2.99⋅10 −23 г. Удельную теплоту плавления воды принять за 330 330 Дж/г. Формат входных данных: в одну строку через пробел – B (английское название тела в нижнем регистре), L (вещественное число, в микрометрах) и M (натуральное). Названия тел единообразны. Формат выходных данных: единственное вещественное число, в наноджоулях.
1 ответ
Имя? мое что-ли? Мастер (1559) 1 неделю назад
import math

def volume(B, L):
"""Вычисляет объем правильного платонова тела."""
if B == "tetrahedron":
return (L**3) * math.sqrt(2) / 12
elif B == "cube":
return L**3
elif B == "octahedron":
return (L**3) * math.sqrt(2) / 3
elif B == "dodecahedron":
return (L**3) * (15 + 7 * math.sqrt(5)) / 4
elif B == "icosahedron":
return (L**3) * (5 * (3 + math.sqrt(5))) / 12
else:
return None # Неизвестное тело


def surface_area(B, L):
"""Вычисляет площадь поверхности правильного платонова тела."""
if B == "tetrahedron":
return L**2 * math.sqrt(3)
elif B == "cube":
return 6 * L**2
elif B == "octahedron":
return 2 * math.sqrt(3) * L**2
elif B == "dodecahedron":
return 3 * math.sqrt(25 + 10 * math.sqrt(5)) * L**2
elif B == "icosahedron":
return 5 * math.sqrt(3) * L**2
else:
return None


def solve():
B, L, M = input().split()
L = float(L)
M = int(M)

V = volume(B, L)
if V is None:
print("Неизвестное платоново тело")
return

# Объем одного маленького тела
V_small = V / M

# Масса воды в исходном теле
diameter_nm = 0.28 # диаметр молекулы воды в нм
diameter_m = diameter_nm * 1e-9 # диаметр в метрах
mass_water = 2.99e-23 # масса молекулы воды в г
volume_water_molecule = (4/3) * math.pi * (diameter_m/2)**3
num_molecules = V / volume_water_molecule
mass_initial = num_molecules * mass_water


# Масса воды в одном маленьком теле
num_molecules_small = (V_small / volume_water_molecule)
mass_small = num_molecules_small * mass_water

#Изменение энергии (удельная теплота плавления умножить на изменение массы)
delta_energy = 330 * (mass_initial - M * mass_small) #Дж

#Перевод в наноджоули
delta_energy_nj = delta_energy * 1e9

print(delta_energy_nj)


solve()
Похожие вопросы