Показать сообщение отдельно
иксуй!
Аватар для иксуй!
Сообщения: 9,556
Регистрация: 23.11.2007
Старый пост, нажмите что бы добавить к себе блог 19 января 2010, 17:09
  #326 (ПС)
-Цитата от 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.
но работать не хочет

offline
Ответить с цитированием