# Mitternachtsformel



## Pataraca (8. Nov 2015)

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 

```
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);
		}
	}
}
```


----------



## strußi (8. Nov 2015)

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.


Spoiler: Code





```
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);
        }
    }
}
```






Spoiler: ergebnis



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 (8. Nov 2015)

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.

```
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)
```


----------



## strußi (8. Nov 2015)

der scanner nimmt kommas nicht punkte für die dezimalwerte
InputMismatch


----------



## Pataraca (8. Nov 2015)

Dann vielen Dank für diese einfache Lösung >.<
und vielen Tipps


----------

