Ver Mensaje Individual
  #14 (permalink)  
Antiguo 18/02/2011, 15:09
PeaceFrogg
 
Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: explicacion logica recursividad??

Creo que el problema esta en entender como funciona el registro de activación (RA) y el paso de parametros reales a parametros formales.
En este caso concreto, suponiendo que le demos a la base el valor 2 y exponente 3. Cuando tu das los parametros (reales) en el main ( ) estos quedan almacenados en el registro de activacion del main durante todo el proceso como b==2 y e==3 . En canvio en la función potencia ocurre otra cosa:


1- El if no se ejecuta ya que e!=1 por lo que se la salta y se ejecutan las instrucciones del else con los
parametros reales que se le pasan desde el main ( ) b==2 y e== 3.
La funcion potencia crea su propio RA en el que b ==2*2 y e==2.

2- Como sigue sin cumplirse el if se vuelve a ejecutar el else pero esta vez los parmetros reales que se
le pasan a potencia son b=2*2 e==2 y despues se destruye el RA de la función.
Ahora el nuevo RA de potencia valdra b=2*2*2 y e==1.
3- Ahora el if se cumple y el preprocesador le devuelve el control al main ( ) con el valor b==6.


Si no me equivoco el tema funciona así. Espero que te sirva de ayuda.