Fórum Variáveis em programação recursiva #184693

27/09/2003

0

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

Responder

Posts

27/09/2003

Delphiman

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


Responder

Gostei + 0

27/09/2003

Mathac_admin

Querido amigo,

Agradeço pela resposta. Vc me ajudou muito.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar