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


import math

def analyze_points():
    print("Введите координаты трёх точек (x, y):")
    try:
        x1, y1 = float(input("x1: ")), float(input("y1: "))
        x2, y2 = float(input("x2: ")), float(input("y2: "))
        x3, y3 = float(input("x3: ")), float(input("y3: "))
    except ValueError:
        print("Ошибка: координаты должны быть числами.")
        return

    # 1. Находим длины отрезков (сторон)
    a = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
    b = math.sqrt((x3 - x2)**2 + (y3 - y2)**2)
    c = math.sqrt((x1 - x3)**2 + (y1 - y3)**2)

    print("\n--- Результаты ---")
    print("Длины отрезков:")
    print(f"a (между 1 и 2) = {a:.4f}")
    print(f"b (между 2 и 3) = {b:.4f}")
    print(f"c (между 3 и 1) = {c:.4f}")

    # 2. Выясняем, представляют ли они треугольник
    # Используем round(), чтобы избежать специфических ошибок округления типа float 
    # (например, когда 5.000000000000001 оценивается как больше 5.0)
    if (round(a + b, 6) > round(c, 6) and 
        round(a + c, 6) > round(b, 6) and 
        round(b + c, 6) > round(a, 6)):
        
        print("\nВывод: Точки образуют треугольник.")

        # 3. Находим площадь по формуле Герона
        p = (a + b + c) / 2.0
        # abs() используется для страховки от микро-отрицательных значений под корнем из-за float
        s = math.sqrt(abs(p * (p - a) * (p - b) * (p - c))) 
        print(f"Площадь треугольника: S = {s:.4f}")
    else:
        print("\nВывод: Точки НЕ образуют треугольник (лежат на одной прямой или совпадают).")

if __name__ == "__main__":
    analyze_points()