Рекурсия и быстрое возведение в степень - это, конечно, хорошо. Но, по-моему, здесь нужно поступить так:
Код:
function F(X: Double): Double;
var
I: Integer;
A: Double;
begin
A := X;
Result := A;
I := 3;
while I <= 13 do
begin
A := A * X * X / (I - 1) / I;
if I = 3 then
Result := Result - A
else
Result := Result + A;
Inc(I, 2);
end;
end;
Ибо незачем, например, вычислять 7! с самого начала, зная 5!. Так же и со степенями X.