Module (53%)
Section (56%)

Несколько простых функций: оценка площади треугольника

Мы также можем оценить площадь треугольника. Здесь Вам пригодится формула Герона:

s = (a + b + c) / 2

A = the square root of s(s - a)(s - b)(s - c)

Мы собираемся использовать оператор возведения в степень, чтобы найти квадратный корень - это может показаться странным, но оно работает:

The square root of x = x to the power of 1/2

Вот конечный код:

def is_a_triangle(a, b, c): return a + b > c and b + c > a and c + a > b def heron(a, b, c): p = (a + b + c) / 2 return (p * (p - a) * (p - b) * (p - c)) ** 0.5 def area_of_triangle(a, b, c): if not is_a_triangle(a, b, c): return None return heron(a, b, c) print(area_of_triangle(1., 1., 2. ** .5))

Пробуем это с прямоугольным треугольником как половиной квадрата с одной стороной, равной 1. Это означает, что его площадь должна быть равна 0,5.

Это странно - код дает следующий вывод:

0.49999999999999983

output


Это очень близко к 0,5, но это не совсем 0,5. Что это значит? Это ошибка?

Нет, это не так. Это особенности вычислений с плавающей запятой. Мы скоро расскажем об этом подробнее.


Code

def is_a_triangle(a, b, c):
return a + b > c and b + c > a and c + a > b


a = float(input('Enter the first side\'s length: '))
b = float(input('Enter the second side\'s length: '))
c = float(input('Enter the third side\'s length: '))

if is_a_triangle(a, b, c):
print('Yes, it can be a triangle.')
else:
print('No, it can\'t be a triangle.')
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×