Показать сообщение отдельно
  #3  
Старый 25.11.2009, 23:21
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Рекурсия и быстрое возведение в степень - это, конечно, хорошо. Но, по-моему, здесь нужно поступить так:
Код:
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.
Ответить с цитированием