Написать функцию возведения действительного числа в целую степень - 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).