import math
import cmath
def solve_task_1():
print("--- Задание 1: Вычисление выражений ---")
# Исходные данные
x = 6
y = 7
z = 8
# Вычисление 'a'
# Используем cmath.acos, так как arccos(49) даст комплексный результат
a_part1 = math.exp(2 * x**2 - y)
a_part2 = (3 * cmath.acos(y**2)) / ((z**2 + x * y)**2)
a = a_part1 + a_part2
# Вычисление 'b'
# Примечание: в знаменателе написано Z, предполагаем, что это тот же z = 8
b_numerator = abs(x - y)**2
b_denominator = 3 * z + math.cos(x**2)
b = math.tan(b_numerator / b_denominator)
print(f"Значение a = {a}")
print(f"Значение b = {b}")
def calculate_right_triangle_area(x1, y1, x2, y2, x3, y3):
"""
Проверяет, образуют ли точки прямоугольный треугольник,
и возвращает его площадь.
"""
# Вычисляем квадраты длин сторон
d1_sq = (x2 - x1)**2 + (y2 - y1)**2
d2_sq = (x3 - x2)**2 + (y3 - y2)**2
d3_sq = (x1 - x3)**2 + (y1 - y3)**2
# Сортируем квадраты сторон по возрастанию
# (наибольшая сторона - потенциальная гипотенуза, находится в конце списка)
sides_sq = sorted([d1_sq, d2_sq, d3_sq])
# Проверяем выполнение теоремы Пифагора (катет^2 + катет^2 == гипотенуза^2)
# Используем isclose для избежания ошибок точности при работе с float
if math.isclose(sides_sq[0] + sides_sq[1], sides_sq[2], rel_tol=1e-9):
# Площадь прямоугольного треугольника: S = 1/2 * a * b
area = 0.5 * math.sqrt(sides_sq[0]) * math.sqrt(sides_sq[1])
return area
else:
return "Точки не могут быть вершинами прямоугольного треугольника."
def solve_task_2():
print("\n--- Задание 2: Прямоугольный треугольник ---")
# Пример 1: Координаты образуют прямоугольный треугольник (Египетский треугольник 3-4-5)
points_valid = (0, 0, 0, 3, 4, 0)
print(f"Координаты точек: {points_valid}")
result_valid = calculate_right_triangle_area(*points_valid)
print(f"Результат: Площадь = {result_valid}")
# Пример 2: Координаты НЕ образуют прямоугольный треугольник
points_invalid = (1, 1, 2, 5, 8, 3)
print(f"\nКоординаты точек: {points_invalid}")
result_invalid = calculate_right_triangle_area(*points_invalid)
print(f"Результат: {result_invalid}")
# Запуск решений
if __name__ == "__main__":
solve_task_1()
solve_task_2()