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

Программа, позволяющая находить корни квадратного уравнения, – это один из примеров простых программ, которые можно написать на Python 3. Она хорошо подойдет для начинающих изучать этот язык программирования.

Постановка задачи

Уравнение, которое будем решать, выглядит следующим образом: a·x²+b·x+c=0. Пользователю предлагается ввести значения a, b и с в терминале. После этого программа посчитает дискриминант. На его основе найдем решения уравнения – значения x, для которых будет выполняться равенство.

Вот пример работы программы, которая будет написана.

Программа

Для решения квадратных уравнений на Python 3 напишем код, приведенный ниже. Разберем некоторые моменты, которые мы использовали в этой простой программе:

  • print – эта функция выводит на экран информацию.
  • input – выводит информацию и предлагает пользователю ввести данные.
  • b**2 – это возведение в степень, в данном случае переменная b возводится в квадрат.
  • str – эта функция приводит данные к строковому виду.
  • if-elif-else – это условные операторы в языке Python. Исходя из значения discriminant мы определяем количество корней квадратного уравнения.
  • discriminant ** 0.5 – с помощью такого способа извлекаем квадратный корень. В Python есть несколько способов извлечения корней, например, с помощью функции sqrt из библиотеки math. Про способы извлечения корней в Python описано в отдельной статье.
print('Решаем уравнение a•x²+b•x+c=0')
a = input('Введите значение a: ')
b = input('Введите значение b: ')
c = input('Введите значение c: ')
a = float(a)
b = float(b)
c = float(c)
discriminant = b**2 - 4*a*c
print('Дискриминант = ' + str(discriminant))
if discriminant < 0:
    print('Корней нет')
elif discriminant == 0:
    x = -b / (2 * a)
    print('x = ' + str(x))
else:
    x1 = (-b + discriminant ** 0.5) / (2 * a)
    x2 = (-b - discriminant ** 0.5) / (2 * a)
    print('x₁ = ' + str(x1))
    print('x₂ = ' + str(x2))

Запустим программу и введём нужные коэффициенты.

Решаем уравнение a•x²+b•x+c=0
Введите значение a: -4
Введите значение b: -231
Введите значение c: 34
Дискриминант = 53905.0
x₁ = -57.89681291718352
x₂ = 0.1468129171835173

Все посчитано, найдены два корня, которые будут являться решением квадратного уравнения.

Дополнительно

Хотелось бы уделить внимание ещё одному моменту. Если дискриминант отрицательный, то действительных корней нет. Но будут комплексные корни. Если мы хотим их обрабатывать, то следует изменить конструкцию условных операторов следующим образом:

if discriminant == 0:
    x = -b / (2 * a)
    print('x = ' + str(x))
else:
    x1 = (-b + discriminant ** 0.5) / (2 * a)
    x2 = (-b - discriminant ** 0.5) / (2 * a)
    print('x₁ = ' + str(x1))
    print('x₂ = ' + str(x2))

Тогда пример решения уравнения будет выглядеть следующим образом:

Решаем уравнение a•x²+b•x+c=0
Введите значение a: 4
Введите значение b: 1
Введите значение c: 2
Дискриминант = -31.0
x₁ = (-0.12499999999999996+0.6959705453537527j)
x₂ = (-0.12500000000000006-0.6959705453537527j)

Как видим, получили два комплексных корня.

Этот простой код написанный на Python 3 можно для обучения программированию немного усложнить:

  • Предлагать запрос в конце программы «Решить ещё одно уравнение (y/n): ». И если пользователь введет «y», то заново запросить коэффициенты. Это нужно делать в цикле. Подробнее о циклах в Python можно прочитать здесь.
  • Сделать проверку корректности ввода. Ведь пользователь вместо числа может ввести какую-нибудь строку, которая не будет корректно обработана. Про проверку на число описано в отдельной статье.