Autor
|
Tema: Duda con función recursiva (Leído 7,719 veces)
|
DickGumshoe
|
Hola.
Tengo un ejercicio que dice:
Implemente una función recursiva (y todo lo necesario para que el programa funcione) que calcule, dado un vector de enteros y un umbral, la suma de todos los elementos del vector que son mayores que el umbral. La cabecera de la función recursiva debe ser la siguiente:
void SumaUmbral(int *v, int tam, int umbral, int *suma);
El vector debe ser creado con memoria dinámica y pedido al usuario por la consola. La variable suma se pasa por referencia. La variable tam contiene el tamaño del vector.
El problema que tengo es que yo siempre he pensado que las funciones recursivas deben devolver algo... ¿Cómo va a ser void?
Saludos, y muchas gracias.
|
|
|
En línea
|
|
|
|
kingdarnakes
Desconectado
Mensajes: 23
|
Te has respondido tu mismo: El vector debe ser creado con memoria dinámica y pedido al usuario por la consola. La variable suma se pasa por referencia. La variable tam contiene el tamaño del vector.
|
|
|
En línea
|
|
|
|
DickGumshoe
|
Me refiero a que yo las funciones recursivas las he hecho siempre así:
if(CASO BASE) return ALGO; (matriz, vector, una variable...)
else { ... ... return NombreFunciónRecursiva (parámetros); }
Gracias.
|
|
|
En línea
|
|
|
|
Saberuneko
|
Por definición, las funciones siempre deberían devolver algo, si.
Es raro.
No sabría decirte cómo va eso exactamente...
¿Estás seguro de que copiaste bien el enunciado del ejercicio?
|
|
|
En línea
|
|
|
|
DickGumshoe
|
Pues le ha caído el ejercicio a mi hermana en un examen que ha hecho hoy, y el prototipo era ese (lo ha comprobado muchas veces, y por eso lo he preguntado).
Muchas gracias por aclararme la duda.
Saludos.
|
|
|
En línea
|
|
|
|
kingdarnakes
Desconectado
Mensajes: 23
|
Por definición, las funciones siempre deberían devolver algo, si.
Es raro.
No sabría decirte cómo va eso exactamente...
¿Estás seguro de que copiaste bien el enunciado del ejercicio?
Amigo, estas equivocado que devuelve una función void?, en otros lenguajes se llaman procedimientos. No te voy hacer la función para demostrártelo, pero creo que no tienes claro que significa que una variable se pase por referencia. Revisa ese concepto. El resto sería todo igual, buscas el caso base o los casos bases y ya esta.
|
|
|
En línea
|
|
|
|
DickGumshoe
|
Pasar una variable por referencia es pasar una copia del contenido de dicha variable, ¿no?
De ser así, además de que siempre he pensado que las funciones recursivas no podían ser void, aunque lo pudiera ser, no modificaría el contenido de *suma en main()...
|
|
|
En línea
|
|
|
|
Saberuneko
|
Pasar una variable por referencia es pasar una copia del contenido de dicha variable, ¿no? No, lo que pasas es una dirección de puntero a la variable original. En resumen, estás modificando sobre la variable original, no sobre una copia. Amigo, estas equivocado que devuelve una función void?, en otros lenguajes se llaman procedimientos. Cuando se me enseñó, en los enunciados se las llamaba procedimientos directamente, no "funciones que devuelven void".
|
|
« Última modificación: 7 Junio 2012, 16:43 pm por Saberuneko »
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Al contrario, pasas una copia de una variable cuando la pasas por valor, si la pasas por referencia el valor de la variable va a permanecer alterado cuando se vaya la funcion, y aunque la funcion en si no retorne nada, si va a modificar el contenido de la variable. Saludos
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
DickGumshoe
|
Ah, sí, me he confundido y he puesto la definición del paso por valor...
Entonces, ¿se puede hacer la función recursiva que he mencionado usando void?
Muchas gracias.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Función recursiva de búsqueda.
Programación C/C++
|
APOKLIPTICO
|
1
|
2,827
|
4 Junio 2010, 21:51 pm
por [D4N93R]
|
|
|
Ayuda con función recursiva.
Programación C/C++
|
Javi.24
|
1
|
2,466
|
16 Junio 2012, 05:41 am
por GuzmanG
|
|
|
Problema función factorial recursiva
Java
|
Oblivi0n
|
1
|
2,276
|
4 Octubre 2012, 19:03 pm
por die_guito
|
|
|
Pequeña duda con funcion recursiva
Programación C/C++
|
CCross
|
9
|
4,928
|
19 Mayo 2013, 17:41 pm
por CCross
|
|
|
duda función recursiva
Programación C/C++
|
fernaEDLP
|
4
|
1,979
|
30 Mayo 2019, 20:55 pm
por fernaEDLP
|
|