p := sign(y + 13 * a) * power(abs(y + 13 * a), 1/3);
Объяснение:
Единственная проблема тут - как записать кубический корень. В паскале есть функция power(a, p), которая возводит a в степень p, но если p не целое, оно работает только для положительных (для p > 0 неотрицательных) a. Кубический корень же определён для всех a.
Решение такое: посчитать кубический корень для модуля , а потом поставить такой же знак, что и под корнем.
Полностью программа может выглядеть, например, так:
var p, y, a: real;
begin
read(y, a);
p := sign(y + 13 * a) * power(abs(y + 13 * a), 1/3);
write(p)
end.
pascalabc:
program f0rwardirop;
var r, x,y: real;
b: boolean;
begin
writeln('* alphaeus is *');
write('ok, введите r ='); readln(r);
write('теперь введите х ='); readln(x);
write('и, наконец, введите y ='); readln(y);
if x> =0 then
if (x*x+y*y < = r*r) then b: = true else b: =false
else
if (abs(x) < =r) and (abs(y) < =r) and (abs(x) < = abs(y)) then b: = true else b: =false;
if b then writeln('точка (',x,',',y,') принадлежит закрашенной области')
else writeln('точка (',x,',',y,') не принадлежит закрашенной области');
end.