11.8 Quadratische Gleichung
 
Struktogramm zur Lösung einer quadr. Gleichung Wir suchen einen Algorithmus, der nach der Eingabe der Koeffizienten einer quadratischen Gleichung, deren Lösungsmenge ermittelt. Es soll darauf geachtet werden, dass das Programm immer "vernünftig reagiert", egal, welche Fließkommazahlen wir als Koeffizienten der quadratischen Gleichung eingeben. Wie das Problem des Schaltjahres, erkennt man, dass wir, wenn wir ein Struktogramm verwenden, schneller und sicherer ans Ziel kommen.

Das Programm Zur Erstellung des Programms übertragen wir die Klammerstruktur, zunächst noch ohne weiteren 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.9 Übungen
zur Startseite www.pohlig.de (C) MPohlig 2004