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


import math

def solve_quadratic(a, b, c):
    """Решает квадратное уравнение ax^2 + bx + c = 0.
       Возвращает кортеж с корнями (два числа или комплексные).
    """
    if a == 0:
        raise ValueError("Коэффициент a не может быть равен нулю (это не квадратное уравнение).")
    
    D = b**2 - 4*a*c
    if D > 0:
        sqrt_D = math.sqrt(D)
        x1 = (-b + sqrt_D) / (2*a)
        x2 = (-b - sqrt_D) / (2*a)
        return (x1, x2)
    elif D == 0:
        x = -b / (2*a)
        return (x,)
    else:
        # Комплексные корни
        real = -b / (2*a)
        imag = math.sqrt(-D) / (2*a)
        return (complex(real, imag), complex(real, -imag))

def main():
    print("Решение квадратного уравнения ax^2 + bx + c = 0")
    while True:
        try:
            a = float(input("Введите a: "))
            b = float(input("Введите b: "))
            c = float(input("Введите c: "))
            
            roots = solve_quadratic(a, b, c)
            
            if len(roots) == 1:
                print(f"Уравнение имеет один корень (дискриминант = 0): x = {roots[0]:.4f}")
            else:
                print(f"Корни уравнения:\nx1 = {roots[0]:.4f}\nx2 = {roots[1]:.4f}")
            break
        except ValueError as e:
            print(f"Ошибка: {e}")
        except Exception as e:
            print(f"Некорректный ввод. Попробуйте снова. ({e})")

if __name__ == "__main__":
    main()