Показать сообщение отдельно
Старый 30.03.2013, 21:14   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Niko23 Посмотреть сообщение
0.9 умножить на 10 в степени 0.9 и умножить на икс в квадрате
Тогда так:
Код:
Const
 X:Array[1..11] of Real=(0.01,0.02,-0.5,2.31,0,1,0,-1.25,-1,-0.77,0);
 v=2.1;
 w=0.5;

Var
 Y,R2,R3:Array[1..11] of Real;
 G0,A3,G3,Min:Real;
 i,NA3,NR2,NR3:Byte;

Function F(z:real):real;
begin
 If exp(sin(z))>1.5 then
  F:=(z*z*cos(z)-700*exp(sin(z)))/(1.6+0.9*exp(0.9*ln(10))*z*z)
 else
  begin
   if abs(z)>0 then
    F:=0.00567*exp(1/3*ln(abs(z)))+2.14*exp(sin(z))
   else
    F:=2.14*exp(sin(z));
  end;
end;

Begin
 For i:=1 to 11 do
  begin
   Y[i]:=F(X[i]);
   Writeln('X= ',X[i]:8:3,'     Y= ',Y[i]:8:3);
  end;
 Writeln;
 NR2:=0;
 NR3:=0;
 Min:=Abs(Y[1]);
 G0:=1;
 A3:=0;
 G3:=1;
 For i:=1 to 11 do
  begin
   G0:=G0*Y[i];
   if Y[i]>v then
    begin
     Inc(NA3);
     A3:=A3+Y[i];
     G3:=G3*Y[i];
    end;
   if Abs(Y[i])<Min then Min:=Abs(Y[i]);
   if Y[i]>=w then
    begin
     Inc(NR2);
     R2[NR2]:=Y[i];
    end;
   if Y[i]<0 then
    begin
     Inc(NR3);
     R3[NR3]:=Y[i];
    end;
  end;
 Write('G0: ');
 If G0>0 then writeln(exp((1/11)*ln(G0)):10:5) else writeln('Incorrect value!');
 Write('A3: ');
 If NA3>0 then writeln(A3/NA3:10:5) else writeln('Incorrect value!');
 Write('G3: ');
 If (NA3>0) and (G3>0) then writeln(exp((1/NA3)*ln(G3)):10:5) else writeln('Incorrect value!');
 Writeln('Min:',Min:10:5);
 Write('R2: ');
 If NR2>0 then for i:=1 to NR2 do write(R2[i]:8:3) else write('No such elements!');
 Writeln;
 Write('R3: ');
 If NR3>0 then for i:=1 to NR3 do write(R3[i]:15:5) else write('No such elements!');
 Readln
End.
Дополнительное ветвление функции связано с тем, что при нулевом аргументе множитель exp(1/3*ln(abs(x))) создает ошибку из-за логарифма. Пришлось поставить обход.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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