Знак возведения в степень - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Возведение числа в степень в Basicax выполняется с помощью знака возведения в степень (^). Например: N = a ^ 7. А в Паскале такого знака нет; получается, что надо 7 раз перемножить a * a * a * a * a * a * a . А по другому как-нибудь можно?

Решение задачи: «Знак возведения в степень»

textual
Листинг программы
{ быстрое возведение a в целую степень n }
function iPwr(a: Real; n: Integer): Real;
var r: Real;
begin
  if a=0 then iPwr:=0
  else if n<0 then iPwr:=1/iPwr(a,-n)
  else if n=0 then iPwr:=1
  else begin
    r:=1;
    while n>0 do begin
      if Odd(n) then r:=r*a;
      n:=n div 2; a:=Sqr(a);
    end;
    iPwr:=r;
  end;
end;

Объяснение кода листинга программы

  1. Функция iPwr принимает два аргумента: a (коэффициент, возводимый в степень) и n (степень, в которую возводится a).
  2. Если a равно нулю, то функция возвращает ноль.
  3. Если n меньше нуля, функция возвращает 1/iPwr(a,-n). Это означает, что мы делим результат возведения a в степень -n на iPwr(a,-n).
  4. Если n равно нулю, функция возвращает 1. Это означает, что мы возводим a в степень 1.
  5. Если n больше нуля, то мы инициализируем переменную r единицей.
  6. Затем мы выполняем цикл while n > 0.
  7. Внутри цикла мы проверяем, является ли n четным числом. Если да, то умножаем r на a.
  8. Затем делим n на 2 и возводим a в квадрат.
  9. После этого iPwr(a) будет содержать результат возведения a в степень n.
  10. Наконец, мы устанавливаем значение iPwr равным r.
  11. Конец функции.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы