Python

Напишите пж программу на Питоне

Напишите программу проверки того, что треугольник АВС может быть покрыт окружностью радиуса R.
Начальные данные - a, b, c (длины сторон), R. На выходе - "покрывает", если покрывает и 0, если не покрывает
SA
Sayavus Ali
95
import math

a = float(input("Введите длину стороны a: "))
b = float(input("Введите длину стороны b: "))
c = float(input("Введите длину стороны c: "))
R = float(input("Введите радиус окружности R: "))

p = (a + b + c) / 2
S = math.sqrt(p * (p - a) * (p - b) * (p - c))
R_op = a * b * c / (4 * S)

if R_op <= R:
print("Покрывает")
else:
print("0")


Пользователь вводит длины сторон треугольника a, b, c и радиус окружности R. Программа вычисляет площадь треугольника S, радиус описанной окружности R_оп и сравнивает его с заданным радиусом R. Если R_оп меньше или равен R, то треугольник может быть покрыт окружностью радиуса R, и программа выводит "Покрывает". В противном случае выводится 0.
Валерий Лютов
Валерий Лютов
9 174
Лучший ответ
Sayavus Ali спасибо. Правда, за это время я уже сам решил задание, но спасибо
a = float(input())
b = float(input())
c = float(input())
R = float(input())
p = (a + b + c) / 2
z = abs(p * (p - a) * (p - b) * (p - c))
from math import sqrt

if R >= (a * b * c) / (4 * sqrt(z)):
print('покрывает')
else:
print(0)
Написал, спасибо
import math

def check_triangle(a, b, c, R):
s = (a + b + c) / 2
area = math.sqrt(s * (s - a) * (s - b) * (s - c))
if a * b * c == 0 or area == 0:
return False
circum_radius = a * b * c / (4 * area)
return circum_radius <= R

a = 3
b = 4
c = 5
R = 5

if check_triangle(a, b, c, R):
print("покрывает")
else:
print(0)

В этом примере функция check_triangle вычисляет площадь треугольника, а затем радиус описанной окружности, используя формулу радиуса описанной окружности треугольника. Затем функция проверяет, меньше ли радиус описанной окружности, чем заданный радиус R. Если да, то функция возвращает True, в противном случае - False. В конце кода проверяется результат функции и выводится соответствующее сообщение на экран.
Sayavus Ali Спасибо, конечно. Но, как мне кажется, можно решить проще: (просто я уже успел сделать)
a = float(input())
b = float(input())
c = float(input())
R = float(input())
p = (a + b + c) / 2
z = abs(p * (p - a) * (p - b) * (p - c))
from math import sqrt

if R >= (a * b * c) / (4 * sqrt(z)):
print('покрывает')
else:
print(0)