Написать функцию возведения действительного числа в целую степень - Turbo Pascal
Формулировка задачи:
Описать функцию Power2(A, N) вещественного типа, находящую величину AN (A — вещественный, N — целый параметр) по следующим формулам:
A0 = 1;
AN = A·A·…·A (N сомножителей), если N > 0;
AN = 1/(A·A·…·A) (|N| сомножителей), если N < 0.
С помощью этой функции найти AK, AL, AM, если даны числа A, K, L, M.
Напишите пожалуйста всю задачу!!!
Решение задачи: «Написать функцию возведения действительного числа в целую степень»
textual
Листинг программы
function Power2(a: Real; n: Integer): Real; var r: Real; begin r:=1; if n<0 then r:=1/Power2(a,-n) else while n>0 do begin if Odd(n) then r:=r*a; a:=Sqr(a); n:=n shr 1; {n:=n div 2} end; Power2:=r; end; var a: Real; k, l, m: Integer; begin Write('Введите число и 3 целых показателя степени: '); ReadLn(a,k,l,m); WriteLn(Power2(a,k),' ',Power2(a,l),' ',Power2(a,m)); end.
Объяснение кода листинга программы
- Функция
Power2
принимает два аргумента:a
(действительное число), которое возводится в степень, иn
(целое число), на которое возводится степень. - Переменная
r
инициализируется единицей. Это будет результат функции. - Если
n
меньше нуля, тоr
устанавливается равным обратному значению функцииPower2
для отрицательногоn
. То есть,r
будет равно 1/Power2(a,-n). - Иначе, если
n
больше нуля, то выполняется цикл:- Если
n
является нечетным числом, тоr
умножается наa
. a
возводится в квадрат (a := Sqr(a)
).n
уменьшается на 1 (n := n shr 1;
илиn := n div 2
).- Цикл повторяется до тех пор, пока
n
больше нуля.
- Если
- Значение
Power2
сохраняется в переменнойr
. - Пользователю предлагается ввести число и три целых показателя степени.
- Вызывается функция
Power2
с аргументамиa
,k
,l
,m
. - Выводятся результаты вычислений функции
Power2
:Power2(a,k)
,Power2(a,l)
,Power2(a,m)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д