program metode_bagi_dua;
uses crt;
function f(n:real):real;
begin
f := exp(-n) - n;
end;
var a,b,c,epsilon,i,akar : real;
begin
clrscr;
writeln('Menentukan akar dari persamaan y = exp(-x) - x dengan Metode Bagi Dua');
writeln;
write('Inputkan nilai a : ');readln(a);
write('Inputkan nilai b : ');readln(b);
if f(a)*f(b) < 0 then
begin
epsilon := 0.000001;
i := abs(b-a);
while i > epsilon do
begin
c := (a+b)/2;
if f(a)*f(c) > 0 then a := c
else b := c;
i := abs(b-a)
end;
akar := c;
writeln;
writeln('Maka didapat akar dari persamaan diatas = ',akar:8:6)
end
else writeln('Nilai akar tidak terletak pada interval [',a:2:2,',',b:2:2,']');
readln;
end.