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

Вот... нарисовал. Громоздко, правда, несколько получилось. Но попробуйте так:
Код:
Program pr1;
Var
 a,b,x,b1:real;

Function Z(y:real):real;
begin
 If x<a then
  Z:=exp(a*x)+sqr(cos(a+x))
 else
 If x=a then
  Z:=sqrt(sin(a*b))
 else
  Z:=(3*exp((2+b)*ln(x)))+((x+b)/(a+x));
end;

Function Max(m1,m2:real):real;
begin
 If m1>m2 then Max:=m1 else Max:=m2;
end;

Function Min(m1,m2:real):real;
begin
 If m1<m2 then Min:=m1 else Min:=m2;
end;

Begin
 Repeat
  repeat
   Write('Enter a ((a>=0 and a<=Pi) or (a<0 and a>-Pi); a=100 to quit): ');
   ReadLn(a);
  until ((a>=0) and (a<=Pi)) or ((a<0) and (a>-Pi)) or (a=100);
  If a<>100 then
   begin
    If a=0 then
     repeat
      Write('Enter b (b>=-12 and b<=8): ');
      Readln(b);
     until ((b>=-12) and (b<=8))
    else
    If a>0 then
     begin
      b1:=Min(Pi/a,8.0);
      repeat
       Write('Enter b (b>0 and b<=',b1:0:3,'): ');
       Readln(b);
      until ((b>=0) and (b<=b1));
     end
    else
     begin
      b1:=Max(Pi/a,-12.0);
      repeat
       Write('Enter b (b<0 and b>=',b1:0:3,'): ');
       Readln(b);
      until ((b<0) and (b>=b1));
     end;
    Writeln('a= ',a:0:5);
    Writeln('b= ',b:0:5);
    Repeat
     Write('Next x (x>0; x<=0 to quit): ');
     Readln(x);
     If x=-a then
      Writeln('Thes value is forbidden! Try other.');
     If (x>0) and (x<>-a) then
      Writeln('Z= ',Z(x):0:5);
    Until x<=0;
   end;
 Until a=100;
End.
Извините за английские надписи - с кириллицей мне большая морока возиться.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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