Hallo zusammen,
Ich habe folgendes Problem, ich habe vor mit, als Vorbereitung aufs Studium selbstständig das programmieren beizubringen (oder zumindest schon einmal anzulernen) und habe mir im Zuge dessen ein kleines Programm geschrieben, welches die Nullstellen einer quadratischen Funktion bestimmen soll.
Das Programm an sich läuft auch, nur stürzt es ab, wenn eine der eingegebenen Werte ein Buchstabe ist, da dieser Fall nicht definiert ist. Ich habe auch bereits google gefragt, aber die Lösungen funktionieren in meinem Code nicht, da sie meistens davon ausgehen, dass man die Variable als String behandelt, ich behandele sie allerdings als int.
Hier mal mein Code zum besseren Verständnis (bin auch für Verbesserungsvorschläge jederzeit offen)
Ich habe folgendes Problem, ich habe vor mit, als Vorbereitung aufs Studium selbstständig das programmieren beizubringen (oder zumindest schon einmal anzulernen) und habe mir im Zuge dessen ein kleines Programm geschrieben, welches die Nullstellen einer quadratischen Funktion bestimmen soll.
Das Programm an sich läuft auch, nur stürzt es ab, wenn eine der eingegebenen Werte ein Buchstabe ist, da dieser Fall nicht definiert ist. Ich habe auch bereits google gefragt, aber die Lösungen funktionieren in meinem Code nicht, da sie meistens davon ausgehen, dass man die Variable als String behandelt, ich behandele sie allerdings als int.
Hier mal mein Code zum besseren Verständnis (bin auch für Verbesserungsvorschläge jederzeit offen)
Java:
Import java.util.Scanner;
public class BerechnungMitExternerEingabe {
public static void main(String[] args) {
Scanner scan1 = new Scanner(System.in);
int a;
int b;
int c;
System.out.println("Sofern ihre quadratische Funktion die Form : ax^2+bx+c hat, folgen sie den Anweisungen");
System.out.println("Bitte geben sie a ein");
a = scan1.nextInt();
System.out.println(a + " wurde eingegeben!");
System.out.println("Bitte geben sie b ein");
b = scan1.nextInt();
System.out.println(b + " wurde eingegeben");
System.out.println("Bitte geben sie c ein");
c = scan1.nextInt();
System.out.println(c + " wurde eingegeben");
scan1.close();
int b2 = b*b; // b^2
int root = b2 - 4* a * c; //Unter der Wurzel
double root2 = Math.sqrt(root); //Die gesamte Wurzel
double nullstelle1 = (-b + root2) / 2 * a;
double nullstelle2 = (-b - root2) / 2 * a;
double nullstelle3 = (-b/2*a);
if (root < 0) {
System.out.println("Die Funktion besitzt keine Nullstellen!");
}
else if (root == 0) {
System.out.println("Die Funktion besitzt nur eine Nullstelle und diese ist");
System.out.println(nullstelle3);
}
else {
System.out.println("Die errechneten Nullstellen sind:");
System.out.println(nullstelle1);
System.out.println(nullstelle2);
}
}
}
Zuletzt bearbeitet: