// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!
Вариант №1 - с условными операторами
begin
var x:=ReadReal('x =');
var f:real;
if x<0 then f:=5-Sin(x)<br> else
if x>0 then f:=x*x+Abs(x)-1
else f:=6;
Writeln('f(x) = ',f)
end.
Вариант №2 - с тернарными операторами в стиле языков С/С++/С#
begin
var x:=ReadReal('x =');
var f:=x<0 ? 5-Sin(x) : x>0 ? x*x+Abs(x)-1 : 6.0;
Writeln('f(x) = ',f)
end.
Вариант №3 - с функцией
function f(x:real):real;
begin
if x<0 then Result:=5-Sin(x)<br> else
if x>0 then Result:=x*x+Abs(x)-1
else Result:=6.0
end;
begin
var x:=ReadReal('x =');
Writeln('f(x) = ',f(x))
end.
Вариант №4 - с функцией и тернарным оператором
function f(x:real):=x<0 ? 5-Sin(x) : x>0 ? x*x+Abs(x)-1 : 6.0;
begin
var x:=ReadReal('x =');
Writeln('f(x) = ',f(x))
end.
Вариант №5 - с лямбда-функцией
begin
var x:=ReadReal('x =');
var f:real->real:=t->x<0 ? 5-Sin(x) : x>0 ? x*x+Abs(x)-1 : 6.0;
Writeln('f(x) = ',f(x))
end.
Вариант №6 - в стиле программ на TurboPascal/Free Pascal
var
x,f:real;
begin
Write('x = '); Read(x);
if x<0 then f:=5-Sin(x)<br> else
if x>0 then f:=x*x+Abs(x)-1
else f:=6;
Writeln('f(x) = ',f);
Readln
end.