Показать сообщение отдельно
Старый 22.12.2014, 02:28   #2 (permalink)
Timurchik
Новичок
 
Регистрация: 22.12.2014
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

И еще, я взял у одногруппника его задание, он говорил можно переделать, но я не знаю как
Код:
program Aplomba;

Type
 mas=array[1..100] of real;

Var
 A,B,XM,XN,DX,xo,G1,G2,H,EPS,I1,I2:real;
 U,N:byte;
 X,Y: mas;
 I,J,KM,K:integer;

function F(x:real):real;
begin
 F:=a*b*sqr(sin(2*3.14*x))/sqrt(x);
end;

Begin
 writeln('vvedite G1, G2, EPS, KM, A, XN, DX, N');
 readln (G1, G2, EPS, KM, A, XN, DX, N);
 writeln ('G1=', G1:5:2, 'G2=', G2:5:2, 'EPS=', EPS:5:3, 'KM=', KM:5);
 B:=xo;
 I1:=0;
 K:=4;
 for J:=1 to KM do
  begin
   xo:=xo + H; I2:=I2+F(xo); H:=(G2-G1) / K; I:=1;
   repeat
    xo:=xo+H;
    I2:=I2+F(xo);
    inc(I);
   until I>=K;
   I2:=I2*H;
   if abs (I1-I2)>EPS then
    begin
     I1:=I2;
     K:=2*K;
    end
   else
    begin
     { J:=KM;} {Переменная не известного значения. Указывает на цикл в цикле}
     writeln('integral=', I2:10:5);
     exit;
    end;

   B:=I2;
   begin
    U:=1;
    x[u]:=XN;
    FOR U:=1 TO N DO
     X[u]:=x[u-1] + DX;
   end;
    FOR U:=1 TO N DO
     begin
      writeln('B=',B:10:7);
      Y[u]:=A*B*(sqr(sin(2*3.14*x[u]))/sqrt(x[u]));
      writeln('X[',u,']=',X[u]:10:5,'Y[',u,']=', Y[u]:10:5);
     end;
   writeln('reshenie ne naideno');
  end;
End.
Timurchik вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070