Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как выполнить проверку в квадратном уравнении в java.

Артём Григоренко Ученик (100), на голосовании 1 год назад
Не понимаю каким образом выполнить проверку после решения квадратного уравнения
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (249294) 1 год назад
Посчитайте значения выражений для которых вы нашли икс:

a * x1 * x1 + b * x1 + c

a * x2 * x2 + b * x2 + c

Они оба должны быть равны нулю.
Хотя бы приблизительно - скажем, с погрешностью в одну миллионную.
Артём ГригоренкоУченик (100) 1 год назад
А как сделать так чтоб брало подставленные выражения из определенного условия???
Андрей Панарин Искусственный Интеллект (249294) Чтобы не громоздить большие выражения, лучше хранить промежуточные расчеты в переменных. Например, так:
 double y1 = a * x1 * x1 + b * x1 + c;
double y2 = a * x2 * x2 + b * x2 + c;
if (Math.abs(y1) < 0.000001 && Math.abs(y2) < 0.000001) {
    System.out.println("Всё хорошо, проверка успешна");
} else {
    System.out.println("Похоже, корни неверно рассчитаны: при проверке вышло y1 = " + y1 + ", y2 = " + y2);
} 
Татьяна Просветленный (36374) 1 год назад
Я проверила твой код на выполнения программы и он стал зависать у меня. Я подправила твой чтобы корректно стал выдавать результаты:
название файла QuadraticEquation.java
 import java.util.Scanner; 

public class QuadraticEquation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите коэффициенты a, b, c: ");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();

double discriminant = b * b - 4 * a * c;

if (discriminant > 0) {
double x1 = (-b - Math.sqrt(discriminant)) / (2 * a);
double x2 = (-b + Math.sqrt(discriminant)) / (2 * a);
System.out.println("Уравнение имеет два корня: x1 = " + x1 + ", x2 = " + x2);
} else if (discriminant == 0) {
double x = -b / (2 * a);
System.out.println("Уравнение имеет один корень: x = " + x);
} else {
System.out.println("Уравнение не имеет действительных корней!");
}
}
}
Результат выполнения программы:
Jurijus Zaksas Искусственный Интеллект (445776) 1 год назад
Проверку чего именно? Что ты собрался там еще проверять? Ты и так уже напроверялся достаточно. Бедный Ньютон, увидев сие поделие, наверняка захотел бы тебя выпороть. Он старался, доказывал, что у полинома n-ной степени всегда n корней (некоторые из которых могут быть комплексными или совпадать), а у тебя у полинома 2-ой степени то один корень, то вообще нет...
Александр Искусственный Интеллект (301631) 1 год назад
для чего Scanner если ты им не пользуешься?
Похожие вопросы