function bisa(z:real):real;
begin
bisa:=power(z,3)-2*sin(z);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,ai,bs,fa,fb,fc,tol,error:extended;
k,n:integer;
begin
a:=StrToFloat(edit2.text);
b:=StrToFloat(Edit3.text);
ai:=a;bs:=b;
tol:=StrToFloat(edit4.text);
n:=ceil(log10((b-a)/tol)/log10(2));
StringGrid1.RowCount:=n;
StringGrid1.ColCount:=6;
StringGrid1.cells[0,0]:='Iter';
StringGrid1.cells[1,0]:='x';
StringGrid1.cells[2,0]:='f(x)';
StringGrid1.cells[3,0]:='Error';
StringGrid1.cells[4,0]:='f(a)';
StringGrid1.cells[5,0]:='f(b)';
fa:=bisa(a); fb:=bisa(b);
if sign(fa)=sign(fb) then
label7.caption:='no existe solucion'
else
begin
error:=b-a;
for k:=1 to n do
begin
error:=error/2;
c:=a+error;
fa:=bisa(a);
fc:=bisa(c);
if sign(fa)<> sign(fc) then
begin
b:=c;
fb:=fc;
end
else
begin
a:=c;
fa:=fc;
end;
StringGrid1.cells[0,k]:=IntToStr(k);
StringGrid1.cells[1,k]:=FloatToStrF(c,ffFixed,15,8);
StringGrid1.cells[2,k]:=FloatToStrF(fc,ffFixed,15,8);
StringGrid1.cells[3,k]:=FloatToStrF(error,ffFixed,15,8);
StringGrid1.cells[4,k]:=FloatToStrF(fa,ffFixed,15,8);
StringGrid1.cells[5,k]:=FloatToStrF(fb,ffFixed,15,8);
end;
end;
{ label7.Caption:='los valores evaluadas en el intervalo['+FloatToStrF(ai,ffFixed,10,3)+'';
'en '+IntToStr(n)+ ' Iteracciones'; }
label5.caption:='La solucion es';
edit5.Text:=FloatToStr((a+b)/2);
label6.Caption:='La funcion evaluada es';
edit6.text:=FloatToStr(bisa(a+b)/2);
end;
end.