+10
2 месяца назад
Информатика
Студенческий
Відповідь:
import math
#Функція для перевірки введення даних
def enter(string:str)->float:
while True:
try:
number = float(input(string))
return number
except ValueError:
print("Неправильне введення. Спробуйте ще раз.")
#Знаходимо третю сторону за двома сторонами та кутом між ними
#за допомогою теореми косинусів
def third_side(a:float,b:float,alpha:float)->float:
return math.sqrt(a**2+b**2-2*a*b*math.cos(math.radians(alpha)))
#Периметр трикутника
def perimeter(a:float,b:float,c:float)->float:
return a+b+c
#Площа трикутника через формулу Герона
def area(a:float,b:float,c:float,half_perimeter:float)->float:
return (half_perimeter*(half_perimeter-a)*(half_perimeter-b)*(half_perimeter-c))**0.5
#Радіус вписаного кола через півпериметр та площу
def radius_of_inner_circle(area:float,half_perimeter:float)->float:
return area/half_perimeter
#Радіус описаного кола через площу та сторони
def radius_of_outer_circle(area:float,a:float,b:float,c:float)->float:
return (a*b*c)/(4*area)
a = enter("Введіть значення для a:")
b = enter("Введіть значення для b:")
alpha = enter("Введіть значення кута між ними:")
third_side_of_triangle = third_side(a,b,alpha)
perimeter_of_triangle = perimeter(a,b,third_side_of_triangle)
area_of_triangle = area(a,b,third_side_of_triangle,perimeter_of_triangle/2.0)
print(f"У трикутника зі сторонами, що дорівнюють {a} та {b} і кутом {alpha} градусів, будуть такі результатиn"+
f"Третя сторона дорівнює {third_side_of_triangle}n"+
f"Периметр дорівнює {perimeter_of_triangle}n"+
f"Площа дорівнює {area_of_triangle}n"+
f"Радіус вписаного кола дорівнює {radius_of_inner_circle(area_of_triangle,perimeter_of_triangle/2)}n"+
f"Радіус описаного кола дорівнює {radius_of_outer_circle(area_of_triangle,a,b,third_side_of_triangle)}")
Пояснення:
Код не є ООП, проте виконує всі задані завдання з деякою точністю. Додані необхідні функції та перевірка введення.
Відповідь:
import math
#Функція для перевірки введення даних
def enter(string:str)->float:
while True:
try:
number = float(input(string))
return number
except ValueError:
print("Неправильне введення. Спробуйте ще раз.")
#Знаходимо третю сторону за двома сторонами та кутом між ними
#за допомогою теореми косинусів
def third_side(a:float,b:float,alpha:float)->float:
return math.sqrt(a**2+b**2-2*a*b*math.cos(math.radians(alpha)))
#Периметр трикутника
def perimeter(a:float,b:float,c:float)->float:
return a+b+c
#Площа трикутника через формулу Герона
def area(a:float,b:float,c:float,half_perimeter:float)->float:
return (half_perimeter*(half_perimeter-a)*(half_perimeter-b)*(half_perimeter-c))**0.5
#Радіус вписаного кола через півпериметр та площу
def radius_of_inner_circle(area:float,half_perimeter:float)->float:
return area/half_perimeter
#Радіус описаного кола через площу та сторони
def radius_of_outer_circle(area:float,a:float,b:float,c:float)->float:
return (a*b*c)/(4*area)
a = enter("Введіть значення для a:")
b = enter("Введіть значення для b:")
alpha = enter("Введіть значення кута між ними:")
third_side_of_triangle = third_side(a,b,alpha)
perimeter_of_triangle = perimeter(a,b,third_side_of_triangle)
area_of_triangle = area(a,b,third_side_of_triangle,perimeter_of_triangle/2.0)
print(f"У трикутника зі сторонами, що дорівнюють {a} та {b} і кутом {alpha} градусів, будуть такі результатиn"+
f"Третя сторона дорівнює {third_side_of_triangle}n"+
f"Периметр дорівнює {perimeter_of_triangle}n"+
f"Площа дорівнює {area_of_triangle}n"+
f"Радіус вписаного кола дорівнює {radius_of_inner_circle(area_of_triangle,perimeter_of_triangle/2)}n"+
f"Радіус описаного кола дорівнює {radius_of_outer_circle(area_of_triangle,a,b,third_side_of_triangle)}")
Пояснення:
Код не є ООП, проте виконує всі задані завдання з деякою точністю. Додані необхідні функції та перевірка введення.