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

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

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

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

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

textual
Листинг программы
  1. { быстрое возведение a в целую степень n }
  2. function iPwr(a: Real; n: Integer): Real;
  3. var r: Real;
  4. begin
  5.   if a=0 then iPwr:=0
  6.   else if n<0 then iPwr:=1/iPwr(a,-n)
  7.   else if n=0 then iPwr:=1
  8.   else begin
  9.     r:=1;
  10.     while n>0 do begin
  11.       if Odd(n) then r:=r*a;
  12.       n:=n div 2; a:=Sqr(a);
  13.     end;
  14.     iPwr:=r;
  15.   end;
  16. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы