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

Вычислить корни квадратного уравнения,
коэффициенты a, b, c которого вводятся с клавиатуры.

Решение задачи на языке программирования Python

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

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

Если , то квадратное уравнение имеет два корня:

 ,   

Если , то корень один:

И если , то делают вывод, что корней нет.

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

Функция 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




Все разделы сайта