TEACHING

(FORTRAN)


Midterm

There are some ways of solving this problem. One of the ways is as follows:


	read*, i
	ncount = 1
	n      = 1
	result = 0
1	if(mod(i,10**ncount).eq.i) then
  	  n_digit = ncount
	else
	  ncount = ncount + 1
  	  goto 1
	endif
2	if(n.eq.n_digit+1) then
          print*, result
        else
          nth_digit = mod(i,10**n) / 10**(n-1)
          result = result + nth_digit*(10**(n_digit-n)-10**(n-1))
          n = n + 1
          goto 2
        endif
        stop
        end



	read*, a,b,c
	read*, x1, x2
	iteration = 0
1	f_x1 = a*x1**2 + b*x1 + c
	f_x2 = a*x2**2 + b*x2 + c
	x3   = ( x1 + x2 ) / 2.
	f_x3 = a*x3**2 + b*x3 + c
	iteration = iteration + 1
	if(iteration.ge.20.or.abs(f_x3).lt.0.001) then
	  write(*,2) x3
2	  format(F10.5)
	  stop
	else
	  if(f_x3.gt.0) then
	    if(f_x1.gt.0) x1 = x3
            if(f_x2.gt.0) x2 = x3
	    goto 1
	  elseif(f_x3.lt.0) then
	    if(f_x1.gt.0) x2 = x3
            if(f_x2.gt.0) x1 = x3
	    goto 1
	  endif
	endif
	stop
	end