Код:
function SIN_Rad: real ; //имя функции и тип данных выхода
var_input
X: real ; //входная переменная
end_var
var //объявление локальных переменных
Zn : real ;
Pi : real:=3.1415927 ;
a,b: real ;
end_var
Zn:=pow(-1,bool_to_real(EXTRACT(real_to_udint((abs(X))/Pi),0) XOR not (X>0)));
a:=(abs(X)/Pi - udint_to_real(real_to_udint(abs(X)/Pi)))*Pi ;
b:=(Pi-a) * (bool_to_real(a>1.5707964))+a* bool_to_real(not(a>=1.5707964)) ; // 1,5707964
if x=1.5707964 or x=7.853982 then
SIN_Rad:=1.0;
elsif x=-1.5707964 or x=4.712389 then
SIN_Rad:=-1.0;
else
SIN_Rad:=((pow(b,9)/362880 + (((b-(pow(b,3)/6)) +pow(b,5)/120)- pow(b,7)/5040))-pow(b,11)/39916800)*Zn ;
end_if
end_function