Может кому нибудь пригодится
Оказывается нужно было делать для 2 функций, с выводом количества интераций, с выводом функции от определённого аргумента, у меня F(0.83)...
Переписывал программу на паре в Делфи, не знаю правильно или нет, но препод принял, обозначив ошибку:
"Эти переменные необходимо вводить вне процедуры"
PHP код:
type
TF1=function(r:real):real;
Function F1(x:real):real;
begin
F1:=Sqr(Sin(x)+Cos(x))/Exp(Ln(33.5)*2/3)+Sqrt(3/7)-x;
end;
Function F2(x:real):real;
begin
F2:=Sqrt(ln(7.9)+(exp(-x))-((ln(x)*2)/11))-x;
end;
Procedure EQRoot(e:real; var R:Real; var Idx:integer; f:TF1);
var
a,b,c:real;
begin
a:=0.8;
b:=1.5;
idx:=0;
Repeat
c:=(a+b)/2;
if F(a)*F(c)<0 then b:=c
else a:=c; idx:=idx+1;
Until b-a<e;
R:=c;
end;
Var
idx1,idx2:integer;
Eps:Array[1..5] of Real;
i:Integer;
Res:Real;
Begin
Eps[1]:=0.1;
for i:=2 to 5 do Eps[i]:=Eps[i-1]/10;
for i:=1 to 5 do
begin
EQRoot(Eps[i],Res, idx1,f1);
Writeln('tochnost =',eps[i]);
Writeln(' f1=',Res:0:i);
writeln('interacii 1 =',idx1);
EQRoot(Eps[i],Res, idx2,f2);
Writeln(' f2=',Res:0:i);
writeln('interacii 2 =',idx2);
Writeln;
end;
writeln(F1(0.83):0:4);
Readln;
End.
Ещё раз большое спасибо!)