program Askisi_2
implicit none
real :: a,b,c,F,Ftonos,xk,xkplinena
integer :: i
!Input
write(*,*)'Eisagete A,B kai akriveia'
read(*,*)a,b,c
!Checking if root exists
if ((F(a) * F(b)) < 0) then
!initialising
xkplinena = (a + b) / 2
xk = xkplinena - F(xkplinena) / Ftonos(xkplinena)
i = 1
!Methodos newton raphson
do while (abs(xk - xkplinena) > c)
xkplinena = xk
xk = xkplinena - F(xkplinena) / Ftonos(xkplinena)
i = i + 1 !counting loops
enddo
!printing results
write(*,*)'Riza : ',xk
write(*,*)'Found after:',i, ' loops'
write(*,*)c
else !no root in space [a,b]
write(*,*)'Den yparxei riza'
end if
end program
!------------------------------------------
real function F(x)
real :: x
F = exp(x)-2*x-1
end function
real function Ftonos(x)
real :: x
Ftonos = exp(x)-2
end function