Program bisection
implicit none
real, parameter :: eps = 1.0e-6
real :: mid, fx, fy, fm, zero = 0, x = 1.0, y = 2.0
fx = x**2 - 2.0 ; fy = y**2 - 2.0
print *, fx * fy
if(fx * fy < 0.0) then
do while (abs(x - y) > eps)
print *, abs(x - y)
if(abs(x - y) < eps) then
zero = y
else
mid = 0.5 * (x + y); fm = mid**2 - 2.0
if(fx * fm <= 0) then
y = mid; fy = fm
else
x = mid; fx = fm
end if
end if
end do
end if
print *, ' Корень ', zero
end program bisection
UHJvZ3JhbSBiaXNlY3Rpb24KaW1wbGljaXQgbm9uZSAKIHJlYWwsIHBhcmFtZXRlciA6OiBlcHMgPSAxLjBlLTYgCiByZWFsIDo6IG1pZCwgZngsIGZ5LCBmbSwgemVybyA9IDAsIHggPSAxLjAsIHkgPSAyLjAgCiAKIGZ4ID0geCoqMiAtIDIuMCA7IGZ5ID0geSoqMiAtIDIuMCAKIHByaW50ICosIGZ4ICogZnkKIGlmKGZ4ICogZnkgPCAwLjApIHRoZW4gCiBkbyB3aGlsZSAoYWJzKHggLSB5KSA+IGVwcykKIHByaW50ICosIGFicyh4IC0geSkKICBpZihhYnMoeCAtIHkpIDwgZXBzKSB0aGVuIAogICAgICAgemVybyA9IHkKICAgICAgIAogIGVsc2UgCiAgICAgICBtaWQgPSAwLjUgKiAoeCArIHkpOyBmbSA9IG1pZCoqMiAtIDIuMAogICAgICAgaWYoZnggKiBmbSA8PSAwKSB0aGVuIAogICAgICAgICAgICAgIHkgPSBtaWQ7IGZ5ID0gZm0gCiAgICAgICBlbHNlIAogICAgICAgICAgICAgIHggPSBtaWQ7IGZ4ID0gZm0gCiAgICAgICBlbmQgaWYgCiAgZW5kIGlmIAogZW5kIGRvIAogZW5kIGlmCiBwcmludCAqLCAnINCa0L7RgNC10L3RjCAgJywgemVybwogZW5kIHByb2dyYW0gIGJpc2VjdGlvbg==