Pytanie jak w komentarzu, wydaje mi się, że powinno być, bo inaczej program wykonał by dziwne obliczenia i wyświetlił złe informację. A może to ma być w następny bloku try ? Jakie powinno być prawidłowe podejście ?
package quadraticequation;
import java.util.Scanner;
public class QuadraticEquation {
public static void main(String[] args) {
// TODO code application logic here
double a, b, c;
QE qe = new QE(1, -4, -5);
qe.Calculate();
qe.showSolution();
Scanner scanner = new Scanner(System.in);
try{
System.out.print("Podaj a: ");
a = scanner.nextDouble();
System.out.print("Podaj b: ");
b = scanner.nextDouble();
System.out.print("Podaj c: ");
c = scanner.nextDouble();
QE qe2 = new QE(a, b, c); //czy to i to poniżej powinno być jeszcze w tym bloku try ?
qe2.Calculate();
qe2.showSolution();
}
catch(Exception ex){
System.out.println("\nNieprawidłowe dane wejściowe. ");
}
}
}
//ax^2 + bx + c
package quadraticequation;
public class QE {
private double a;
private double b;
private double c;
private double delta;
private double x1;
private double x2;
public QE(double a, double b, double c){
this.a = a;
this.b = b;
this.c = c;
}
public QE(){
}
//settery
public void setA(double a){
this.a = a;
}
public void setB(double b){
this.b = b;
}
public void setC(double c){
this.c = c;
}
public void Calculate(){
delta = b * b - 4 * a * c;
if(delta < 0){
System.out.println("\nRównanie nie ma rozwiązania w zbiorze liczb rzeczywistych.");
}
else if(delta == 0){
x1 = -b / 2 * a;
x2 = x1;
}
else{
x1 = (-b - Math.sqrt(delta))/2 * a;
x2 = (-b + Math.sqrt(delta))/2 * a;
}
}
public void showSolution(){
System.out.println("Delta: " + delta);
System.out.println("x1: " + x1);
System.out.println("x2: " + x2);
}
}