/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Recursividad

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Oscar18457



Registrado: 22 Ago 2007
Mensajes: 13
Ubicación: Chile

MensajePublicado: 06/10/2007 10:12 am
Título: Recursividad

long fibonacci(long m)
{
if(m==0 || m==1)
return(1);
else
return(fibonacci(m-1)+ fibonacci(m-2));

Buenas tardes, muchs dudad he aclarado desde que participo en este foro. Gracias por aquello.

He estado estudiando recursividad, me pueden explicar como se evalua la funcion fibonaci cuando obviamente m !0 y !1. Que pasa con m, la copia se evalua en forma simultanea para ambas partes del return, o primero actua para m-1, si es asi como guarda m para realizar m-2, al usar el debug de TClite solo muestra que m, va decreciendo.
_________________
oa
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3588
Ubicación: Mexico

MensajePublicado: 06/10/2007 9:58 pm
Título: Re: Recursividad

Oscar18457 escribió:
la copia se evalua en forma simultanea para ambas partes del return

Cual de las dos expresiones "fibonacci(m - 1)" y "fibonacci(m - 2)" se evalua primero depende del compilador ya que el lenguaje C no especifica el orden de evaluacion de los operandos de una expresion.

La excepcion a esto son los operadores "&&", "||", "," y "? :".

Oscar18457 escribió:
o primero actua para m-1, si es asi como guarda m para realizar m-2

No se guarda ya que las expresiones "m - 1" y "m - 2" no afectan el valor almacenado en la variable "m".

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
Oscar18457



Registrado: 22 Ago 2007
Mensajes: 13
Ubicación: Chile

MensajePublicado: 07/10/2007 9:59 am
Título:

Gracias por la explicacion, recorde que los valores se pasan por valor, por lo tanto simpre tendremos el valor de m. sin embargo para mi sigue siendo un misterio :( , la expresión del return. no lo veo claro. Me confunden la evaluacion de m-1 y despues o no se cuando m-2. Y sin embargo se mueve (Galileo). Es decir funciona Gracias
_________________
oa
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com