program bisekcija implicit none real :: a,b,c,f write(*,*) 'vnesi levo krajisce intervala na katerem je nicla, a=?' read(*,*)a write(*,*) 'vnesi desno krajisce intervala na katerem je nicla, b=?' read(*,*)b if (f(a)*f(b)>0) then write(*,*) 'funkcija v a in b ni razlicno predznacena, ne bom nadaljeval' else do while (abs(a-b)>1e-5) !1e-5 je natancnost na katero bomo dolocili nicle c=(a+b)/2. write(*,'(3f10.6,3f10.2,f10.6)')a,b,c,f(a),f(b),f(c),abs(a-b) if (f(a)*f(c)<0) then b=c else a=c endif enddo write(*,'(3f10.6,3f10.2,f10.6)')a,b,c,f(a),f(b),f(c),abs(a-b) write(*,*)'nicla je=',c endif end program bisekcija function f(x) implicit none real::x,f ! tu napisemo funkcijo, katere niclo hocemo poiskati f=0.2*x**5 - 4.02*x**4 - 2.009*x**3 - 4.099*x**2 - 19.0023*x + 50 end function f