18/02/2011, 15:09
|
| | Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 11 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. |