Написать рекурсивную функцию, которая определяет степень числа - Pascal
Формулировка задачи:
Написать рекурсивную функцию, которая определяет степень числа
f(x,n)
x^n
n-будет натуральным.
Решение задачи: «Написать рекурсивную функцию, которая определяет степень числа»
textual
Листинг программы
function Step(x:real;n:integer):real;
begin
if n=0 then Step:=1
else Step:=Step(x,n-1)*x
end;
var a:real;
b:integer;
begin
write('Введите основание, действительное число a=');
readln(a);
repeat
write('Введите степень, натуральное число b=');
readln(b);
until b>=0;
write('a^b=',Step(a,b):0:2);
end.
Объяснение кода листинга программы
- Объявляется функция с именем
Stepи параметрамиx(действительное число) иn(целое число). - Внутри функции проверяется условие: если
nравно нулю, тогда функция возвращает 1. - В противном случае, функция возвращает результат умножения
Step(x, n-1)наx, что является рекурсивным вызовом функцииStep. - Объявляются переменные
a(действительное число) иb(целое число). - Пользователю предлагается ввести значение
aс помощью сообщенияВведите основание, действительное число a=. - Значение
aвводится с клавиатуры. - Пользователю предлагается ввести значение
bс помощью сообщенияВведите степень, натуральное число b=. - Значение
bвводится с клавиатуры и проверяется на условиеuntil b>=0, в случае если оно выполняется, то программа переходит к следующему шагу. - Вычисляется значение выражения
a^bс помощью вызова функцииStep(a,b)и выводится на экран с двумя знаками после запятой.