Предмет: Информатика,
автор: Malyana021296
Написать подпрограмму, вычисляющую натуральную степень
числа. паскаль
написать программу на компьютере и проверить правильность
работы Вашей процедуры/функции, в этом случае в основной программе
должны быть реализованы ввод исходных данных и вызов
процедуры/функции.
Ответы
Автор ответа:
0
Используем достаточно хорошо известный "индийский алгоритм" возведения в степень. Я не буду здесь его приводить из-за достаточно большого объема сопровождающих рассуждений; все легко находится в Интернет по фразе "индийский алгоритм возведения в степень".
function Power(x: double; n: integer): double;
var
p: double;
flag: boolean;
begin
p := 1; flag := true;
while flag do
begin
if odd(n) then p := p * x;
n := n div 2;
if n > 0 then x := x * x else flag := false
end;
power := p
end;
var
x: double;
n: integer;
begin
Writeln('Введите число и натуральную степень, в которую его надо возвести');
Readln(x, n);
Writeln('Результат: ', Power(x, n))
end.
Тестовое решение:
Введите число и натуральную степень, в которую его надо возвести
3.6 11
Результат: 1316217.03842267
Точный результат равен 1316217.03842267136.
function Power(x: double; n: integer): double;
var
p: double;
flag: boolean;
begin
p := 1; flag := true;
while flag do
begin
if odd(n) then p := p * x;
n := n div 2;
if n > 0 then x := x * x else flag := false
end;
power := p
end;
var
x: double;
n: integer;
begin
Writeln('Введите число и натуральную степень, в которую его надо возвести');
Readln(x, n);
Writeln('Результат: ', Power(x, n))
end.
Тестовое решение:
Введите число и натуральную степень, в которую его надо возвести
3.6 11
Результат: 1316217.03842267
Точный результат равен 1316217.03842267136.
Интересные вопросы
Предмет: Физика,
автор: Аноним
Предмет: Математика,
автор: khamitospanov
Предмет: Английский язык,
автор: texnoe14091828
Предмет: Математика,
автор: vsb2003