Найти корни квадратного уравнения

Квадратное уравнение имеет вид

ax2 + bx + c = 0

При его решении сначала вычисляют дискриминант по формуле

D = b2 - 4ac

Если D > 0, то квадратное уравнение имеет два корня; если D = 0, то 1 корень; и если D < 0, то делают вывод, что корней нет.

Таким образом, программа для нахождения корней квадратного уравнения может иметь три ветви условного оператора.

Функция float() преобразует переданный ей аргумент в вещественное число.

import math

print("Введите коэффициенты для уравнения")
print("ax^2 + bx + c = 0:")
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))

discr = b ** 2 - 4 * a * c
print("Дискриминант D = %.2f" % discr)

if discr > 0:
    x1 = (-b + math.sqrt(discr)) / (2 * a)
    x2 = (-b - math.sqrt(discr)) / (2 * a)
    print("x1 = %.2f \nx2 = %.2f" % (x1, x2))
elif discr == 0:
    x = -b / (2 * a)
    print("x = %.2f" % x)
else:
    print("Корней нет")

Примеры выполнения кода:

Введите коэффициенты для уравнения
ax^2 + bx + c = 0:
a = 2
b = 4
c = 2
Дискриминант D = 0.00
x = -1.00
Введите коэффициенты для уравнения
ax^2 + bx + c = 0:
a = 3.2
b = -7.8
c = 1
Дискриминант D = 48.04
x1 = 2.30 
x2 = 0.14
Введите коэффициенты для уравнения
ax^2 + bx + c = 0:
a = 8
b = 4
c = 2
Дискриминант D = -48.00
Корней нет

Обратим внимание, что для данной программы коэффициент a не должен быть равен нулю. Иначе в первой ветке условного оператора будет происходить попытка деления на 0.

Если a = 0, то квадратное уравнение превращается в линейное, которое решается иным способом. Оно всегда имеет один корень.

Решение задач на Python