MENCARI AKAR-AKAR DARI PERSAMAAN MENGGUNAKAN ALGORITMA BAGI DUA
program metode_bagi_dua;
uses wincrt ;
var A,B,T,X,eps :real;
I,N:integer;
function F(x:real):real;
begin
F:=x*x-2 ;
end;
begin
clrscr;
gotoxy(30,2);
writeln('metode bagi dua');writeln;
writeln('persamaaannya adalah y=x*x-2');writeln;
write('beberapa nilai A ?'); readln(A);
write('beberapa nilai B ?'); readln(B);
write('beberapa nilai epsilon ?'); readln(eps);
F(A);
F(B);
if F(A)*F(B)>0 then write ('maaf, akarnya tidak terdapat selang a= ',A:2:2,' dan b= ',B:2:2) else
begin
gotoxy(1,6);
writeln(' Tabel hasil penghitungan metode bagi dua');
writeln('=================================================================');
writeln('I':3,'X0','X1':11,'T/X2':11,'F(X0)':11,'F(X1)':11,'F(x2)':11,'Ket':0);
writeln('=================================================================');
I:=0 ;
while ABS ((B-A)/B)>eps do
begin
T:=(A+B)/2;
F(T);
IF(F(A)*F(T)) > 0 then
begin
writeln(I:3,A:11,B:10:6,T:10:6,F(A):11:6,F(B):11:6,F(T):11:6);
writeln (' X2-->X0');
A:=T;
end
else
begin
write(I:3,A:11,B:10:6,T:10:6,F(A):11:6,F(B):11:6,F(T):11:6);
writeln (' X2-->X1');
B:=T;
End ; I:=I+1;
end;
writeln ('-------------------------------------------------------------');
writeln ('jadi akarnya adalah ',T:2:6);
end;
end.