Hallo, ich habe obere Aufgabe gegeben.
Die Aufgabe ist für C gestellt, würde sie aber gerne in Java lösen.
Ich hätte das Ganze jetzt mittels einer Klasse gelößt.
Das würde dann ja eher Teilaufgabe 2 entsprechen.
(Verbesserung: getter und setter anstelle der public Members, aber sei mal dahingestellt)
Wie würdet Ihr Teilaufgabe 1 in Java lösen?
Kann ich irgendwie die Referenz der Ergebnisse xr_1 und xr_2 übergeben, oder gibt es in Java nur die Möglichkeit über eine Klasse zu gehen?
Code:
package Feb_2014_A2;
public class MainClass {
public static void main (String[] args){
Root_coordinates calculationA = new Root_coordinates(1,1,1);
System.out.println(calculationA);
}
}
Code:
package Feb_2014_A2;
public class Root_coordinates {
//Objekteigenschaften
private int a;
private int b;
private int c;
private int partValue;
public float xr_1;
public float xr_2;
public int numberResults;
//Konstruktor
public Root_coordinates(int a_, int b_, int c_) {
a = a_;
b = b_;
c = c_;
calcRoots();
}
//Methode
private void calcRoots() {
partValue = b * b - 4 * a * c;
if (partValue > 0) {
xr_1 = (float) (-b + Math.sqrt(Math.pow(b, 2) - 4 * a * c)) / (2 * a);
xr_2 = (float) (-b - Math.sqrt(Math.pow(b, 2) - 4 * a * c)) / (2 * a);
numberResults = 2;
}
if (partValue < 0) {
numberResults = 1;
}
if (partValue == 0) {
xr_1 = (float) (-b + Math.sqrt(Math.pow(b, 2) - 4 * a * c)) / (2 * a);
numberResults = 1;
}
}
@Override public String toString() {
//calcRoots();
if (numberResults == 2) {
return "Zwei Lösungen:" + xr_1 + "\t" + xr_2;
}
if (numberResults == 1) {
return "Eine Lösung:" + xr_1;
} else {
return "Keine Lösung";
}
}
}