program Bagi_Dua;
uses wincrt;
var
i, j : integer;
a, b, T, tol, er : real;
label 1, 2, 3, 4, 5;
function f(x:real):real;
begin
f:= 3*x*x - 12;
end;
begin
1:
{1. Input berupa titik awal, jarak antar titik, dan toleransi}
writeln('Masukkan interval pencarian.');
write('a = ');readln(a);
write('b = ');readln(b);
writeln('Masukkan besar toleransi.');
write('tol = ');readln(tol);
{2. Proses pencarian akar menggunakan metode bagi dua}
i:= 0;
write('iterasi:',i,', a = ',a:0:6,', b = ',b:0:6);
repeat
T:= (a+b)/2;
writeln(', T = ',T:0:6);
if f(a)*f(T) < 0 then
begin
b:= T;
end;
if f(a)*f(T) = 0 then
begin
writeln('Akarnya = ',T:0:6);
end;
if f(a)*f(T) > 0 then
begin
a:= T;
end;
i:= i+1;
write('iterasi:',i,', a = ',a:0:6,', b = ',b:0:6);
er:= abs(a-b);
until er < tol;
{3. Output berupa akar dan pada iterasi berapa ditemukan akar tersebut}
writeln;writeln;
writeln('akar = ',T:0:6,' pada iterasi ke-',i);
writeln;
3:
{Optional}
writeln('Ingin mencoba lagi? 1. Ya 2. Tidak');readln(j);
if j = 1 then
begin
clrscr;goto 1;
end
else
begin
writeln;
writeln('Terima kasih sudah menggunakan program ini.');
end;
Tidak ada komentar:
Posting Komentar