Variáveis em programação recursiva

Delphi

27/09/2003

Queridos amigos,

Estou com um caso aqui em q tenho q usar programação recursiva:

[b:502c5424c7]procedure Proc;
var
x : integer;
y : byte;

begin
if x < y then Proc; [i:502c5424c7]//se x < y chama Proc[/i:502c5424c7]
end;[/b:502c5424c7]

Gostaria de saber se toda vez que a função chamar ela mesma, declarará uma nova variável ou a variável já declarada na outra chamada será usada.

Além disso... é possível saber o nível que eu estou na recursão?

Obrigado!!!


Mathac_admin

Mathac_admin

Curtidas 0

Respostas

Delphiman

Delphiman

27/09/2003

Oi colega,
cada vez que a função for chamada ele era alocar novas variáveis, isso é meio perigoso para o programa que poderá entrar em loop, para isso não acontecer a cada chamada vc tem que modificar a variável visando que ela seja alterada, por exemplo:
function Fatorial(AintValor : integer) : integer;
begin
Result := AintValor;
if AintValor > 1 then
Result := Result * Fatorial((AintValor - 1));//chamada rec. altera valor do parametro antes de fazer uma nova chamada
end;

Quanto a saber em que nivel ela esta vc pode passar outro parametro ou colocar uma varável modular(não aconselho).

[]´s


GOSTEI 0
Mathac_admin

Mathac_admin

27/09/2003

Querido amigo,

Agradeço pela resposta. Vc me ajudou muito.


GOSTEI 0
POSTAR