Сделать программу в Python
Известны длины сторон треугольника a, b, c.
Напишите программу, вычисляющую площадь этого треугольника. Все числовые данные брать любые, но не забывать указывать тип.
С проверкой данных:
import fractions, math
def f(x):
intx = int(x)
return intx if intx == x else x
try:
a, b, c = map(fractions.Fraction, input('a b c: ').split())
if a<=0 or b<=0 or c<=0 or a+b<=c or b+c<=a or c+a<=b:
print('Треугольника с такими сторонами не существует !')
else:
p = (a + b + c) / 2
S = p * (p - a) * (p - b) * (p - c)
print(f(math.sqrt(float(S))))
except: pass При вводе данных типа fractions.Fraction стороны можно задавать и как бы целым числом, и как 3.14, и как, например, 2/3, или ещё так 1.234e2. Существует ли треугольник с такими сторонами узнаётся абсолютно точно.
def площадь_треугольника(a, h):
"""
Вычисляет площадь треугольника по его стороне и высоте.
Args:
a: Длина стороны треугольника.
h: Высота, опущенная на сторону a.
Returns:
Площадь треугольника, если данные корректны.
Возвращает None, если данные некорректны.
"""
if a > 0 and h > 0:
return 0.5 a h
else:
print("Некорректные данные. Сторона и высота должны быть положительными.")
return None
# Ввод данных от пользователя
a = float(input("Введите длину стороны a: "))
h = float(input("Введите высоту h: "))
# Вычисление площади
площадь = площадь_треугольника(a, h)
# Вывод результата
if площадь is not None:
print("Площадь треугольника:", площадь)
a = float(input())
b = float(input())
c = float(input())
p = (a+b+c)/2
n = p*(p-a)*(p-b)*(p-c)
S = n**0.5
print(S)
для школьников
print(((lambda a,b,c: ((a + b + c) / 2 * ((a + b + c) / 2 - a) * ((a + b + c) / 2 - b) * ((a + b + c) / 2 - c))**0.5)((float(input())),(float(input())),(float(input())))))
a = float(input())
b = float(input())
c = float(input())
p = ( a + b + c) / 2
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print(s)