import math
def calculate_formulas():
# Заданные по условию значения
x = 5
y = 6
z = 7
# 1. Вычисление переменной b
# Формула: b = ln(x^2 + e^(-3y^2) / sin^2(y))
b = math.log(x**2 + math.exp(-3 * y**2) / (math.sin(y)**2))
print(f"b = {b}")
# 2. Вычисление переменной a
# Формула: a = tg((x+y)^2 - sqrt(cos^2(z) / tg(z^2)))
try:
under_root = (math.cos(z)**2) / math.tan(z**2)
a = math.tan((x + y)**2 - math.sqrt(under_root))
print(f"a = {a}")
except ValueError:
print("a = [Ошибка вычисления] Подкоренное выражение отрицательно, так как tg(7^2) < 0.")
# Альтернативный расчет для tg^2(z) на случай опечатки в методичке
under_root_alt = (math.cos(z)**2) / (math.tan(z)**2)
a_alt = math.tan((x + y)**2 - math.sqrt(under_root_alt))
print(f"a (альтернативный расчет с tg^2(z) вместо tg(z^2)) = {a_alt}")
def process_triangle(p1, p2, p3):
"""
Проверяет, являются ли три точки вершинами равностороннего треугольника.
Вычисляет площадь и высоту, если условие выполняется.
"""
def distance(p_a, p_b):
return math.hypot(p_a[0] - p_b[0], p_a[1] - p_b[1])
d1 = distance(p1, p2)
d2 = distance(p2, p3)
d3 = distance(p1, p3)
# Проверка равенства сторон (с допуском на погрешность вычислений с плавающей точкой)
if math.isclose(d1, d2, rel_tol=1e-5) and math.isclose(d2, d3, rel_tol=1e-5):
side = d1
area = (math.sqrt(3) / 4) * (side ** 2)
height = (math.sqrt(3) / 2) * side
print("Точки образуют равносторонний треугольник.")
print(f"Площадь (S): {area:.4f}")
print(f"Длина высоты (h): {height:.4f}")
else:
print("Точки НЕ могут быть вершинами равностороннего треугольника.")
print(f"Длины сторон: {d1:.4f}, {d2:.4f}, {d3:.4f}")
if __name__ == "__main__":
print("--- Часть 1: Вычисление формул ---")
calculate_formulas()
print("\n--- Часть 2: Геометрическая задача ---")
# Тест 1: Координаты, образующие равносторонний треугольник
point1 = (0, 0)
point2 = (2, 0)
point3 = (1, math.sqrt(3))
print(f"Проверка координат: {point1}, {point2}, {point3}")
process_triangle(point1, point2, point3)
print("-" * 30)
# Тест 2: Произвольные координаты
point4 = (0, 0)
point5 = (0, 3)
point6 = (4, 0)
print(f"Проверка координат: {point4}, {point5}, {point6}")
process_triangle(point4, point5, point6)