Не знаю как найти наименьший положительный корень, а так программа вроде бы работает. заранее спасибо.
Прога:
Код
Program Half;
Uses Crt;
Var
a,b,e,x: real;
Function f(x:real):real;
Begin
f:= (sin(a*x))/(cos(a*x))-b*x;
End;
Begin
Clrscr;
Write('BBeguTe rpaHuL|bI uHTepBa/Ia: ');
Readln(a,b);
if (f(a)*f(b)) > 0 then
Begin
Sound(220);
Delay(200);
NoSound;
Writeln('ERROR! Funkciya ne menyaet znak na intervale!');
Writeln('Press aNy key');
Readkey;
Halt;
End
else
Begin
Write('3agauTe To4HocTb: ');
Readln(e);
Writeln;
Writeln(' X F(X) A F(A) B F(B)');
Writeln('------------------------------------------------');
While (Abs(b-a)>=2*e) do
Begin
x:=(b+a)/2;
if f(x)*f(a)>0 then a:=x else b:=x;
Writeln(x:8:3,f(x):8:3,a:8:3,f(a):8:3,b:8:3,f(b):8:3);
End;
End;
Writeln;
Writeln('KopeHb ',(B + A) / 2:4:2);
Writeln('Press AnY key');
Readkey;
End.