Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Recursividad - arrepentimiento

Estas en el tema de Recursividad - arrepentimiento en el foro de C/C++ en Foros del Web. Hola, tengo una problema en un código mío, lo tengo localizado, pero no se me ocurre cómo arreglarlo. Supongamos que tengo una función la cual ...
  #1 (permalink)  
Antiguo 20/12/2010, 07:11
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 8 meses
Puntos: 0
Recursividad - arrepentimiento

Hola, tengo una problema en un código mío, lo tengo localizado, pero no se me ocurre cómo arreglarlo.

Supongamos que tengo una función la cual mediante un for dentro de la función, la llamo 3 veces recursivamente.

Esta función tiene una variable como parámetro, y en el momento del for esa variable está a 0, por lo tanto las 3 llamadas recursivas llevan ese 0.

Supongamos ahora que en la primera ejecución de las 3, ocurre algo que pone a 1 esa variable, y que me gustaría que ese 1 de la variable sea un 1 en el resto de ejecuciones que quedan. Pero las ejeuciones fueron lanzadas con un valor 0.

¿Cómo podría solucionar esto?
Iban a 0, pero en la primera ejeucción se decide que esté para siempre a 1, y el resto de ejeucciones lo tomen como 1 aunque llevenun 0 lanzado.

GRACIAS!!!!!
  #2 (permalink)  
Antiguo 20/12/2010, 08:06
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Recursividad - arrepentimiento

Podrias pasar como argumento el puntero de la variable y no el valor. Asi lo puedes modificar... y se modifican en todas....
  #3 (permalink)  
Antiguo 20/12/2010, 08:32
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Recursividad - arrepentimiento

Nunca he usado punteros.

¿Sería así?

Fuera de la funcion recursiva, crear la variable para poder llamar por priemra vez la función: int* variable;

llamada a la función desde el programa pricipal funcion(*variable)

Cabecera de la funcionr recursiva (int* variable);

Tocar algo de la variabeld entro de la función *variable = 1

Llamada recursiva dentro de la funcion, funcion(*variable)
  #4 (permalink)  
Antiguo 20/12/2010, 09:20
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Recursividad - arrepentimiento

La variable fuera de la llamada recursiva se crea normalmente. int variable;

Luego se pasa por referencia en el llamado
funcion (&variable)

la cabecera y como la modificas estan bien...

para llamar a otra recursion debes poner funcion(variable).

Igualmente me pregunto como vas a lograr que varias llamadas recursivas se hagan al mismo tiempo...
Por ejemplo si tenemos:
int funcionrecuursiva(int n)
{
funcionrecuursiva(n-1);
funcionrecuursiva(n-2);
funcionrecuursiva(n-3);
}

si por ejemplo hacemos eso, cada llamado recursivo debe terminar para que se ejecute el anterior.
  #5 (permalink)  
Antiguo 20/12/2010, 09:24
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Recursividad - arrepentimiento

No son al mismo tiempo, una detrás de la otra. Pero dudo donde poner los asteriscos y donde no. ;<
  #6 (permalink)  
Antiguo 20/12/2010, 10:53
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Recursividad - arrepentimiento

Pero si es una destras de otra... es facil sabes si tiene que empezar en cero o en uno....haces uqe te devuelva un valor y listo...luego ese valor lo pasas como argunto en otro.

a = funcionrecuursiva(n);
b = funcionrecuursiva(a);
funcionrecuursiva(b);

Nada de apuntadores ni esas cosas.

Etiquetas: recursividad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:29.