Mitternachtsformel

Pataraca

Mitglied
Hallöchen,
ich habe Momentan die Aufgabe ein Programm zu erstellen, welches eine quadratische Gleichung mithilfe der Mitternachtsformel berechnet und je nach dem keine, eine oder zwei Lösungen ausgibt.

Mein Programm wäre theoretisch fertig, läuft praktisch aber nicht.
Könnt Ihr mir bei der Fehlersuche helfen?

Ich bitte um ehrliche, konstruktive Kritik, da ich ganz neu auf dem Gebiet bin, danke im Vorraus :)
Java:
import java.util.Scanner;

public class aufgabe2_4_5 {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System. in );
		
		//EingabeundDeklarationderVariablen
		System.out.println("Dies ist ein Programm zur Lösung von reellen quadratischen Gleichungen.");
		System.out.println("Bitte geben Sie die drei Koeffizienten ein. Zuerst a und mit 'Enter bestätigen': ");
		double a = scan.nextDouble();

		System.out.println("Bitte geben Sie b ein: ");
		double b = scan.nextDouble();

		System.out.println("Bitte geben Sie c ein: ");
		double c = scan.nextDouble();

		//Rechnung
		doublex1 = (-b + (Math.sqrt((b * b) - (4 * a * c)))) / (2 * a);
		doublex2 = (-b - (Math.sqrt((b * b) - (4 * a * c)))) / (2 * a);

		//if-Schleife
		if ((b * b) - (4 * a * c) < 0) {
			System.out.println("Es gibt keine Lösung!");
		} else if ((b * b) - (4 * a * c) == 0) {
			System.out.println("Es gibt eine Lösung: " + x1);
		} else if ((b * b) - (4 * a * c) > 0) {
			System.out.println("Es gibt zwei Lösungen: " + x1 + " und " + x2);
		}
	}
}
 
Zuletzt bearbeitet von einem Moderator:

strußi

Top Contributor
also
1. IF ist keine Schleife sondern eine Abfrage
2. Code in code-tags setzten zu finden zwischen der Diskette und den Film-streifen
3. Klassennamen fangen mit einem Großbuchstaben an
4. Bitte nicht so viel white-space
5. bei mir tuts hab nur noch mal deine Bedingung geschachtelt.
Java:
import java.util.Scanner;

public class Mitternachtsformel{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //EingabeundDeklarationderVariablen
        System.out.println("Dies ist ein Programm zur Lösung von reellen quadratischen Gleichungen.");
        System.out.println("Bitte geben Sie die drei Koeffizienten ein. Zuerst a und mit 'Enter bestätigen': ");
        double a = scan.nextDouble();

        System.out.println("Bitte geben Sie b ein: ");
        double b = scan.nextDouble();
  
        System.out.println("Bitte geben Sie c ein: ");
        double c = scan.nextDouble();

        //Rechnung
        double x1 = (-b + (Math.sqrt((b*b)-(4*a*c))))/(2 * a);
        double x2 = (-b - (Math.sqrt((b*b)-(4*a*c))))/(2 * a);
  
        //if-ABFRAGE
        if (((b * b) - (4 * a * c)) < 0){
            System.out.println("Es gibt keine Lösung!");
        } else if (((b * b) - (4 * a * c)) == 0){
            System.out.println("Es gibt eine Lösung: " + x1);
        } else if (((b * b) - (4 * a * c)) > 0){
            System.out.println("Es gibt zwei Lösungen: " + x1 + " und " + x2);
        }
    }
}
Dies ist ein Programm zur Lösung von reellen quadratischen Gleichungen.
Bitte geben Sie die drei Koeffizienten ein. Zuerst a und mit 'Enter bestätigen':
0,5
Bitte geben Sie b ein:
4
Bitte geben Sie c ein:
1
Es gibt zwei Lösungen: -0.25834261322605867 und -7.741657386773941
 

Pataraca

Mitglied
1-4 okay, mache ich künftig

5. wenn ich aber 2,-2 und -1.5 eingebe, wie mir unsere Aufgabenstellung angibt, so kommt ein Fehler.
Code:
Dies ist ein Programm zur Lösung von reellen quadratischen Gleichungen.
Bitte geben Sie die drei Koeffizienten ein. Zuerst a und mit 'Enter' bestätigen:
2
Bitte geben Sie b ein:
-2
Bitte geben Sie c ein:
-1.5
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at aufgabe2.aufgabe2_4_5.main(aufgabe2_4_5.java:16)
 
Zuletzt bearbeitet:
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben