Huhu,
hab vor kurzem mein Informatik Studium begonnen und im Fach Objektorientierte Programmierung bekam ich jetzt
die Aufgabe, ein Programm zu schreiben, das mir die Mitternachtsformel berrechnet.
So weit so gut, ich denke ich habe es geschafft, einige Zahlen habe ich bereits getestet, allerdings habe ich ein
Problem:
Er unterscheidet nicht wirklich die Fälle die ich am Ende des Programms unterschieden habe.
Also wenn a = 0 ist, dann gibt er mir zwar aus, dass es nur eine Nullstelle gibt geht im
Programm aber dann noch weiter und gibt x1 nochmal und dazu x2 mit dem wert Infinity aus.
Ebenso bezieht er die Option nicht richtig ein, dass die Diskriminante 0 sein könnte, er gibt
"Keine Nullstellen!" garnicht aus sondern nur wieder x1 und x2 mit den werten NaN.
hab vor kurzem mein Informatik Studium begonnen und im Fach Objektorientierte Programmierung bekam ich jetzt
die Aufgabe, ein Programm zu schreiben, das mir die Mitternachtsformel berrechnet.
So weit so gut, ich denke ich habe es geschafft, einige Zahlen habe ich bereits getestet, allerdings habe ich ein
Problem:
Er unterscheidet nicht wirklich die Fälle die ich am Ende des Programms unterschieden habe.
Also wenn a = 0 ist, dann gibt er mir zwar aus, dass es nur eine Nullstelle gibt geht im
Programm aber dann noch weiter und gibt x1 nochmal und dazu x2 mit dem wert Infinity aus.
Ebenso bezieht er die Option nicht richtig ein, dass die Diskriminante 0 sein könnte, er gibt
"Keine Nullstellen!" garnicht aus sondern nur wieder x1 und x2 mit den werten NaN.
Java:
import java.util.Scanner;
public class Aufgabe1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double a, b, c;
double x1, x2;
System.out.println("Bitte Werte eingeben: ");
System.out.print("a: ");
a = input.nextInt();
System.out.print("b: ");
b = input.nextInt();
System.out.print("c: ");
c = input.nextInt();
x1 = -c/b;
if (a == 0.0)
System.out.println("Eine Nullstelle bei: " +x1);
else if (Math.sqrt(b*b+4.0*a*c) < 0.0)
System.out.println("Keine Nullstellen!");
else
x1 = (-b+Math.sqrt(b*b+4.0*a*c))/(2.0*a);
x2 = (-b-Math.sqrt(b*b+4.0*a*c))/(2.0*a);
System.out.println("X1 = " +x1);
System.out.println("X2 = " +x2);
}
}