program n3;
uses crt;
var x:shortint;
y:longint;
begin
write('Введите x: ');
readln(x);
if (x<0) then y:=2*x+3
else if (x>0) and (x<=100) then y:=sqr(x)*x+1
else y:=abs(x);
writeln('y= ',y);
readln;
end.
не пому почему считает не правильно когда задаешь например 99, ведь результат вроде вписывается в тип Longint?