Ваша небрежность при записи задания привела к необходимости составить решение для двух выражений.
Соответственно, были найдены два корня.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 function f1(x:real):=sin(x*x)+cos(x*x)-10*x;
function f2(x:real):=1-10*x;
function Root(a,b,eps:real; f:real->real):real; begin var x,fx:real; var fa:=f(a); if abs(fa)<=eps then Result:=a else begin var fb:=f(b); if abs(fb)<=eps then Result:=b else if fa*fb>0 then Result:=0/0 else repeat x:=(a+b)/2; fx:=f(x); if abs(fx)<=eps then Result:=x else if fa*fx>0 then a:=x else b:=x; until abs(fx)<=eps end end;
begin var eps:=ReadReal('Введите точность решения:'); Writeln('r1=',Root(0,1,eps,f1)); Writeln('r2=',Root(0,1,eps,f2)) end.
Тестовое решение Введите точность решения: 1e-7 r1=0.10101518034935 r2=0.0999999940395355
Соответственно, были найдены два корня.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
function f1(x:real):=sin(x*x)+cos(x*x)-10*x;
function f2(x:real):=1-10*x;
function Root(a,b,eps:real; f:real->real):real;
begin
var x,fx:real;
var fa:=f(a);
if abs(fa)<=eps then Result:=a
else begin
var fb:=f(b);
if abs(fb)<=eps then Result:=b
else
if fa*fb>0 then Result:=0/0
else
repeat
x:=(a+b)/2;
fx:=f(x);
if abs(fx)<=eps then Result:=x
else
if fa*fx>0 then a:=x else b:=x;
until abs(fx)<=eps
end
end;
begin
var eps:=ReadReal('Введите точность решения:');
Writeln('r1=',Root(0,1,eps,f1));
Writeln('r2=',Root(0,1,eps,f2))
end.
Тестовое решение
Введите точность решения: 1e-7
r1=0.10101518034935
r2=0.0999999940395355