fork download
  1. PROGRAM ex5_7
  2. IMPLICIT NONE
  3. REAL :: a= 0, b, x, d = 1.0E-5
  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.  
  11. DO WHILE ( ABS(x**2)> d )
  12. PRINT *, '途中のx=',x
  13. x=(x+a)/2
  14. END DO
  15. PRINT '( 1X, E12.5 )', x
  16. END PROGRAM ex5_7
Success #stdin #stdout 0.01s 5320KB
stdin
144
stdout
 Input a positive real number: 
 途中のx=   72.0000000    
 途中のx=   36.0000000    
 途中のx=   18.0000000    
 途中のx=   9.00000000    
 途中のx=   4.50000000    
 途中のx=   2.25000000    
 途中のx=   1.12500000    
 途中のx=  0.562500000    
 途中のx=  0.281250000    
 途中のx=  0.140625000    
 途中のx=   7.03125000E-02
 途中のx=   3.51562500E-02
 途中のx=   1.75781250E-02
 途中のx=   8.78906250E-03
 途中のx=   4.39453125E-03
  0.21973E-02