zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Das vollständige Programm steht unten.

Vollständiges Quadratwurzel-Program

In dem vervollständigten Programm kann die Rolle von "alteSchaetzung" und von "neueSchaetzung" von der Variablen schaetzung übernommen werden.

class  Quadratwurzel
{

  public static void main( String[] args )
  {
    final double FASTNULL = 1.0E-14 ;
    double n     = 3.0 ;
    double schaetzung = 1.0 ;

    while ( Math.abs( n/(schaetzung*schaetzung) - 1.0 ) > FASTNULL )
    {
       // einen neuen Wert für schaetzung berechnen
       schaetzung =  n/(2*schaetzung) + schaetzung/2 ;

    }

    System.out.println("Die Quadratwurzel von " + n + " ist " + schaetzung ) ;
  }

}

Hier ist der Output des Programms:

C:\daten\JavaNotes\chap19>java Quadratwurzel

Die Quadratwurzel von 3.0 ist 1.7320508075688772

Die letzten Ziffern dieses Outputs sind wahrscheinlich falsch, da das Programm das Ergebnis nur mit einer Genauigkeit von 14 Dezimalstellen berechnet.

FRAGE 15:

Was könnte passieren, wenn wir eine größere Genauigkeit verlangen als Variable mit doppelter Genauigkeit besitzen? Zum Beispiel, angenommen FASTNULL wäre 1.0E-21?