Заменить power, если нужно высчитывать и положительные и отрицательные числа - Pascal ABC

Формулировка задачи:

program Project1_1;
 
 
uses
crt;
var
a,x,y ,t,q,xn,xk,dx,s,p :real;
k:byte;
 
begin
a:=2.17;
xn:=-1.5;
 xk:=0.5;
  dx:=0.2;
 write(' x=');
 readln(x);
s:=0;
p:=1;
k:=0;
while x+dx<=xk do
begin
 if (x>=xn) then
 begin
t:=power(abs(a-x*x)*Ln(a+x),1/3);
q:=power(x,2/3)+power(a,1/2);
y:=t/q;
end;
 inc(k);
if (p=1) and (s=0) then Writeln('Raschet pri x=',x:4:1,' Ne Vozmogen!')
else writeln('raschet pri x=',x:4:1,' y=',y:8:3);
s:=s+y;
if y<0 then p:=p*y;
k:=k+1;
x:=x+dx;
end;
writeln('Summa = ',s:7:3);
writeln('Proizvedenie = ',p:7:2);
writeln('Kol-vo = ',k:3);
readln;
end.
q:=power(x,2/3)+power(a,1/2); - чем можно заменить power, если мне нужно что бы высчитывались и положительны и отрицательные числа

Код к задаче: «Заменить power, если нужно высчитывать и положительные и отрицательные числа - Pascal ABC»

textual
var a,xn,xk,dx,x,t1,t2,t3,t4,y,sm,po:real;
    k,ko:integer;
begin
a:=2.17;
xn:=-1.5;
xk:=0.5;
dx:=0.2;
x:=xn;
sm:=0;
po:=1;
ko:=0;
while x<xk+dx/2 do
 begin
  k:=0;
  t1:=a-x*x;
  if t1=0 then y:=0
  else
   begin
    t2:=a+x;
    if t2<=0 then k:=1
    else
     begin
      t3:=t1*t2;
      if t3>0 then t3:=exp(ln(t3)/3)
      else t3:=-exp(ln(-t3)/3);
      if(x=0)and(a=0) then k:=1
      else
       begin
        if x=0 then t4:=0
        else t4:=exp(ln(x*x)/3);
        if a>0 then t4:=t4+exp(ln(a)/5)
        else if a<0 then t4:=t4-exp(ln(-a)/5);
        y:=t3/t4;
       end;
     end;
   end;
  if k=1 then writeln('x=',x:4:1,' y не определено')
  else
   begin
    writeln('x=',x:5:1,' y=',y:6:2);
    sm:=sm+y;
    if y<0 then
     begin
      po:=po*y;
      ko:=ko+1;
     end;
   end;
  x:=x+dx;
 end;
writeln('Сумма=',sm:0:2);
write('Произведение отрицательных=');
if ko=0 then writeln(0)
else
 begin
  writeln(po:0:2);
  write('Из количество=',ko);
 end;
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

11   голосов, оценка 3.909 из 5


СДЕЛАЙТЕ РЕПОСТ