-Цитата от Hammer
-Цитата от иксуй!
Код:
writeln('в®зЄЁ ЇҐаҐбҐзҐЁп:');
writeln;
Из-за этих ошибок не компилировалась. В программу не вникал, т.е. указал лишь на ошибки при компиляции.
ошибки все поисправлял
компилятор молчит
Код:
program task1;
const
eps=0.0001;
p=0.333;
type TypeFunc = function (x:real):real;
var x,a,b,c,S,s1,s2,s3,xr1,xr2,xr3:real;
n0:integer;
{$F+}
{***f1***}
function f1 (x:real):real; begin f1:=3*(0.5/(x+1)+1) end;
{***f2***}
function f2 (x:real):real; begin f2:=2.5*x-9.5 end;
{***f3***}
function f3 (x:real):real; begin f3:=5/x end;
{******}
procedure root (f,g:TypeFunc; a,b:real; var x:real);
var c,Fc,Fa,Fb:real;
begin
while b-a > eps do
begin
c:=0.5*(b+a);
Fc:=f(c)-g(c);
Fa:=Fc*(f(a)-g(a));
Fb:=Fc*(f(b)-g(b));
if Fa < 0 then b:=c
else
if Fb < 0 then a:=c
else
if Fc = 0 then begin
b:=c;a:=c;
break
end;
end;
x:=(b+a)*0.5;
end;
{******}
{******FUNCTION INTEGRAL******}
{$F+}
function integral(f:TypeFunc;a,b:real):real;
var
n,i:integer;
s1,s2,h:real;
begin
n:=1;
h:=(b-a)/n;
s1:=h*0.5*(f(a)+f(a+h));
n:=2*n;
h:=(b-a)/n;
s2:=h*(0.5*f(a)+f(a+h)+0.5*f(a+n*h));
repeat
h:=(b-a)/n;
s1:=s2;
s2:=0.5*h*(f(a+n*h)+f(a+2*n*h));
for i:=n+1 to 2*n-1 do
begin
h:=(a-b)/i;
s2:=s2+f(a+i*h);
end;
n:=2*n;
until (abs(s1-s2)/p)<eps;
integral:=s2;
end;
{------------------------Ѓ‹ЋЉ-------------------------}
begin
writeln('ўўҐ¤ЁвҐ Є®®а¤Ё вл в®зҐЄ a Ё b ®бЁ x');
readln(a,b);
root(@f1,@f2,a,b,xr1);
root(@f2,@f3,a,b,xr2);
root(@f3,@f1,a,b,xr3);
writeln('в®зЄЁ ЇҐаҐбҐзҐЁп:');
writeln(' x1=',xr1,' x2=',xr2,' x3=',xr3);
s1:=integral(@f1,xr1,xr2);
s2:=integral(@f2,xr2,xr3);
s3:=integral(@f3,xr1,xr3);
S:=s1+s2+s3;
Writeln('S=',s);
readln(s)
end.
но работать не хочет
