eps- это точность с которой необходимо вычислить корень уравнения
n- это дополнительная переменная задает максимальное количество шагов
цикла для расчета корня уравнение она необходимо для гарантии завершения цикла
если корень не будет найден. например можно задать n = 1000; тогда цикл будет выполняться 1000 шагов, если корень не будет найден раньше например на 5-ом шаге.
program ser;
uses crt;
var a1,b1,eps1:real;
x:double;
n1,k1:word;
function f(x1:real):double;
begin
f:=4*x1;{Zdesi liubaia functsia ot X}
end;
{-------------------}
procedure Bisect(a,b,eps:real;n:word;var x1:double;var k:word);
begin
k:=0;
if f(a)*f(b)<0 then
begin
x1:=0.5*(a+b);
while (abs(f(x1))>eps)or (k<n) do
begin
k:=k+1;
x1:=0.5*(a+b);
if f(x1)*f(a)=0 then
exit ;
if f(x1)*f(a)<0 then
b:=x1
else a:=x1;
end;
end
else
begin
writeln('Naetom promegutki kornei net ');
writeln('ili vasha funktsia ne strogo monotonna');
end;
end;
{----------------------------------}
begin
clrscr;
textcolor(12);
write('a=');readln(a1);
write('b=');readln(b1);
writeln('Tocnosti');
write('eps=');readln(eps1);
write('n=');readln(n1);
textcolor(11);
bisect(a1,b1,eps1,n1,x,k1);
if f(a1)*f(b1)<0 then
begin
textcolor(2);
writeln('Koreni uravnenia X=',x:12:8);
textcolor(3);
writeln('Kol-vo iteratsii N=',k1);
end;
readln;
end.