Знак возведения в степень - 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;
Объяснение кода листинга программы
- Функция iPwr принимает два аргумента: a (коэффициент, возводимый в степень) и n (степень, в которую возводится a).
- Если a равно нулю, то функция возвращает ноль.
- Если n меньше нуля, функция возвращает 1/iPwr(a,-n). Это означает, что мы делим результат возведения a в степень -n на iPwr(a,-n).
- Если n равно нулю, функция возвращает 1. Это означает, что мы возводим a в степень 1.
- Если n больше нуля, то мы инициализируем переменную r единицей.
- Затем мы выполняем цикл while n > 0.
- Внутри цикла мы проверяем, является ли n четным числом. Если да, то умножаем r на a.
- Затем делим n на 2 и возводим a в квадрат.
- После этого iPwr(a) будет содержать результат возведения a в степень n.
- Наконец, мы устанавливаем значение iPwr равным r.
- Конец функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д