Witam!
Zacząłem naukę Javy i napisałem prosty programik konsolowy rozwiązujący równanie kwadratowe. Program działa, ale chciałbym się dowiedzieć w jaki sposób mógł bym przerobić owy kod by rozwiązanie pojawiało się po suatwieniu wartości a, b i c każdego odjektu tablicy, bo póki co najpierw muszę uzupełnić te dane dla wszystkich elementów po czym wyświetlane są wyniki dla wszystkich objektów.
Kodzik
import java.util.Scanner;
public class RównanieKwadratowe {
private int a, b, c;
private double delta;
public int id;
private static int nextId;
private RównanieKwadratowe() {
System.out.println("Jakie a? " );
Scanner skaner = new Scanner(System.in);
a = skaner.nextInt();
System.out.println("Jakie b? " );
b = skaner.nextInt();
System.out.println("Jakie c? " );
c = skaner.nextInt();
delta = b*b - 4*a*c;
}
public int getId(){
return id;
}
public RównanieKwadratowe(int a, int b, int c){
this.a = a;
this.b = b;
this.c = c;
}
public String rozwiąż(){
id = nextId;
nextId++;
String rozwiązanie;
if (delta > 0){
delta = Math.sqrt(delta);
double x1 = (-b-delta) /2*a;
double x2 = (-b+delta) /2*a;
rozwiązanie = "Numer obiektu to: " + getId() + "\n Pierwiastek x1 to: " + x1 + " a pierwiastek x2 to: " + x2;
}
else if (delta == 0){
double x0 = -b / (2*a);
rozwiązanie = "Numer obiektu to: " + getId() + "\n Pierwiastek x0 wynosi: " + x0;
}
else{
rozwiązanie = "Numer obiektu to: " + getId() + " \n Delta ujemna nie posiada pierwiastków";
}
return rozwiązanie;
}
public static void main(String[] args){
RównanieKwadratowe[] równanie = new RównanieKwadratowe[3];
równanie[0] = new RównanieKwadratowe();
równanie[1] = new RównanieKwadratowe();
równanie[2] = new RównanieKwadratowe();
for (RównanieKwadratowe x:równanie){
System.out.println(x.rozwiąż());
}
}
static{
nextId = 1;
}
}