fork download
  1. PROGRAM ex5_7_2
  2. IMPLICIT NONE
  3. REAL :: a = 0.0E0, x, d = 1.0E-5, b, r
  4.  
  5. DO
  6. PRINT *, 'Input a positive real number: '
  7. READ *, b
  8. IF (b > 0.0E0) EXIT
  9. END DO
  10.  
  11. x = (a + b) / 2.0E0
  12. r = b
  13.  
  14. DO WHILE (ABS(x**2 - r) / r > d)
  15. IF (x**2 > r) THEN
  16. b = x
  17. ELSE
  18. a = x
  19. END IF
  20.  
  21. x = (a + b) / 2.0E0
  22. PRINT '(1X, E12.5)', x
  23. END DO
  24.  
  25. END PROGRAM ex5_7_2
Success #stdin #stdout 0s 5324KB
stdin
36
stdout
 Input a positive real number: 
  0.90000E+01
  0.45000E+01
  0.67500E+01
  0.56250E+01
  0.61875E+01
  0.59062E+01
  0.60469E+01
  0.59766E+01
  0.60117E+01
  0.59941E+01
  0.60029E+01
  0.59985E+01
  0.60007E+01
  0.59996E+01
  0.60002E+01
  0.59999E+01
  0.60000E+01
  0.60000E+01