11.1.3 Lösen einer quadratischen Gleichung
 
Struktogramm zur Lösung einer quadr. Gleichung Wir suchen ein Programm, das nach der Eingabe der Koeffizienten einer quadratischen Gleichung, die Lösungsmenge ermittelt. Dabei soll berücksichtigt werden, dass das Programm immer "vernünftig reagiert" wenn am für die Koeffizienten beliebige Fließkommazahlen eingibt. Sehr schnell wird man merken, dass man mit einem Struktogramm schneller und sicherer ans Ziel kommt.

Das Programm Klammerstruktur ohne Programmtext
public class QuadGleichungDemo {
  public static void main(String[] args){
    //Eingabe
    if (a==0){
      if (b==0){
       if (c==0){
          //grün
        }
        else {
          //blau
        }
      }
      else{
       //violett
      }
    }
    else {
      //d initialisieren
      if (d>=0){
         if (d==0){
           //braun
         }
         else{
           //gelb
         } 
      }
      else{
         // leere Menge
      }
    }
  }
}
Der ganze Quelltext

Download:

Quad Geichung.java

import info1.*;
public class QuadGleichungDemo {
   public static void main(String[] args){
      double a,b,c,d;
      System.out.println("ax^2+bx+c=0");
      System.out.print("Geben Sie den Wert von a an: ");
      a = Console.in.readDouble();
      System.out.print("Geben Sie den Wert von b an: ");
      b = Console.in.readDouble();
      System.out.print("Geben Sie den Wert von c an: ");
      c = Console.in.readDouble();
      if (a==0){
         if (b==0){
            if (c==0){
               System.out.println("alle reellen Zahlen sind
                                   Loesungen"
);
            }
            else{
               System.out.println("Die Loesungsmenge ist
                                   leer"
);
            }
         }
         else {
            System.out.println("Die Loesung ist
                               x = "
+ (-c/b));
         }
      }
      else{
         d = b*b-4*a*c;
         if (d>=0){
            if (d==0){
               System.out.println("Die Loesung ist:
                                   x = "
+ (-b/(2*a)));
            }
            else{
               System.out.println("Die Loesungen sind:");
               System.out.println(" x1 = " +
                            ((-b+Math.sqrt(d))/(2*a)) + "und");
               System.out.println(" x2 = " +
                            ((-b-Math.sqrt(d))/(2*a)));
            }
         }
         else{
            System.out.println("Die Loesungsmenge ist leer");
         }
      }
   }
}
Bemerkung In der Klasse Math steht eine Methode zur Verfügung, die die Quadratwurzel der Zahl in der Klammer liefert.Im Laufe unseres Kurses werden wir noch mehr Methoden dieser Klasse kennen lernen.
zu 11.14  
zur Startseite www.pohlig.de (C) MPohlig 2002