@uliana00

Как возвести число в отрицательную степень, не использую функцию Power?

Вычислите сумму ряда с заданной степенью точности а: Σ(-1)^n*1/(2n+1), при а=0,0001.
Вот работающий код. Как возвести целое число в отрицательную степень,не используя power?

uses
  SysUtils, math;
var
  i,sum,eps:Real;
  n:Integer;
begin
  sum:=0;
  eps:=0.0001;
  n:=1;
  i:=0;
  while eps>i do
  begin
    i:=1/(2*n+1)*power(-1, n);
    sum:=sum+i;
    inc(n);
  end;
  Writeln(sum);
  readln;
end.
  • Вопрос задан
  • 616 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Mercury13
Программист на «си с крестами» и не только
Число в отрицательную степень или отрицательное число в степень?
Отрицательное число можно возводить только в целую степень (уже с рациональной ни фига не понятно, а как мы получили понятие «действительная степень»? — дополнили рациональную по непрерывности).
Тут вам надо возвести −1 в степень n, и проще всего
IfThen(Odd(n), -1, 1)

Для этого ряда так подходит. Но если перед нами ряд для синуса, который вычисляется рекуррентно, то
x2 := Sqr(x);
...
yNew := -yOld * x2 / ((n - 1) * n);
Ответ написан
Комментировать
@cicatrix
было бы большой ошибкой думать
Эх, вспомнил школу. По-моему, это было на первом уроке по паскалю - возведение числа а в степень b:

function MyPower(a,b:real):real;
begin
      Result := exp(b*ln(a));
end;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы