В этой статье мы рассмотрим алгоритм решения квадратного уравнение на Java.
Что такое квадратное уравнение
Квадратно уравнение – это уравнение вида:
(1)
Для вычисления значения x мы сначала вычислим дискриминант по формуле:
(2)
Далее, если значение дискриминанта больше нуля, вычислим корни уравнения по формулам:
(3)
Иначе, если дискриминант равен нулю, единственное значение x вычислим по формуле:
(4)
Иначе, если дискриминант меньше нуля, данное уравнение не имеет решения.
Реализация алгоритма решения квадратного уравнения
Вначале вычитаем исходные данные a, b и c:
Scanner scanner = new Scanner(System.in); System.out.print("Введите значение a: "); double a = scanner.nextDouble(); System.out.print("Введите значение b: "); double b = scanner.nextDouble(); System.out.print("Введите значение c: "); double c = scanner.nextDouble();
Затем вычислим дискриминант:
double d = b * b - 4 * a * c;
На основании значения дискриминанта вычислим корни уравнения, если таковые имеются:
if (d > 0) { double x1 = (-b - Math.sqrt(d)) / (2 * a); double x2 = (-b + Math.sqrt(d)) / (2 * a); System.out.println("Корни уравнения: x1 = " + x1 + ", x2 = " + x2); } else if (d == 0) { double x; x = -b / (2 * a); System.out.println("Уравнение имеет единственный корень: x = " + x); } else { System.out.println("Уравнение не имеет действительных корней"); }
Проверка
Теперь проверим программу в действии. Для следующих входных данных программа должна выдать такой результат:
(5)
Результат работы программы:

Исходный код
Полный исходный код программы:
import java.util.Scanner; public class QuadraticEquation { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Введите значение a: "); double a = scanner.nextDouble(); System.out.print("Введите значение b: "); double b = scanner.nextDouble(); System.out.print("Введите значение c: "); double c = scanner.nextDouble(); double d = b * b - 4 * a * c; if (d > 0) { double x1 = (-b - Math.sqrt(d)) / (2 * a); double x2 = (-b + Math.sqrt(d)) / (2 * a); System.out.println("Корни уравнения: x1 = " + x1 + ", x2 = " + x2); } else if (d == 0) { double x; x = -b / (2 * a); System.out.println("Уравнение имеет единственный корень: x = " + x); } else { System.out.println("Уравнение не имеет действительных корней"); } } }
Заключение
Мы реализовали программу для решения квадратного уравнения. Вводные данные считываются с помощью Scanner.