Написать функцию возведения действительного числа в целую степень - 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)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д