fork download
  1. PROGRAM ex5_7
  2. IMPLICIT NONE
  3. REAL :: a = 0.0E0, x, d = 1.0E-5 , b, r
  4. DO
  5. PRINT *, 'Input a positive real number: '
  6. READ *, b
  7. IF ( b > 0.0E0 ) EXIT
  8. END DO
  9. x = (a+b) /2
  10. r=b
  11. DO WHILE ( ABS( x ** 2 - r ) / r > d )
  12. IF (x**2>r) THEN
  13. b=x
  14. ELSE
  15. a=x
  16. END IF
  17. x=(a+b)/2
  18. PRINT '( 1X, E12.5 )', x
  19. END DO
  20. END PROGRAM ex5_7
Success #stdin #stdout 0s 5312KB
stdin
144
stdout
 Input a positive real number: 
  0.36000E+02
  0.18000E+02
  0.90000E+01
  0.13500E+02
  0.11250E+02
  0.12375E+02
  0.11812E+02
  0.12094E+02
  0.11953E+02
  0.12023E+02
  0.11988E+02
  0.12006E+02
  0.11997E+02
  0.12001E+02
  0.11999E+02
  0.12000E+02
  0.12000E+02
  0.12000E+02
  0.12000E+02