Загрузка данных


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()