If you asked for more accuracy than is possible in double precision variables, what might happen? For example, say that you asked for 21 accurate figures.

A good answer might be:

The loop ends when it has achieved the goal. If the goal cannot be achieved, the loop might go on forever.

Improvement to the Program

Here is the familiar program fragment that asks the user to enter a floating point value:

    // get the number from the user
    String NChars;
    BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in) );
    System.out.println("Enter the number:"); 
    NChars = stdin.readLine(); 
    N      = ( Double.valueOf( NChars ) ).doubleValue();

Here is the previous version of the program:

class  squareRoot
{

  public static void main( String[] args ) 
  {
    final double smallValue = 1.0E-14 ;
    double N     = 3.00 ;
    double guess = 1.00 ;

    while ( Math.abs( N/(guess*guess) - 1.0 ) > smallValue )
    {      
       guess =  N/(2*guess) + guess/2 ; // calculate a new value for the guess
    }

    System.out.println("The square root of " + N + " is " + guess ) ;
  }

}

It would be nice if the user could enter number for which the square root will be computed.

QUESTION 16:

(Mentally) combine the program fragment and the program so that the user can enter N.