Рекурсия - 14 стр.

UptoLike

16
Недостаток этой функции состоит в том, что переменная x не меняется, но
передается в каждый рекурсивный вызов.
Чтобы устранить бесполезную передачу неизменяемого параметра в рекур-
сивный вызов, достаточно сделать переменную x глобальной по отношению к
рекурсивной функции.
Для этого следует вложить в нерекурсивную функцию Power рекурсив-
ную функцию Power0(n):
function Power(x: real; n: integer): real;
function Power0(n: integer): real;
begin
if n=0 then Result:=1
else if n<0 then
Result:=Power(x,-n)
else if odd(n) then
Result:=x*Power0(n-1)
else
Result:=sqr(Power0(n div 2))
end;
begin
Result:=Power0(n)
end;