Foros del Web » Programación para mayores de 30 ;) » Java »

Consulta ejercicio recursividad suma de arreglos

Estas en el tema de Consulta ejercicio recursividad suma de arreglos en el foro de Java en Foros del Web. hola mis estimados amigos he estado teniendo problemas al devolver un arreglo el compilador y devuelve una flecha les dejo mi codigo es para sumar ...
  #1 (permalink)  
Antiguo 26/09/2011, 20:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Consulta ejercicio recursividad suma de arreglos

hola mis estimados amigos he estado teniendo problemas al devolver un arreglo el compilador y devuelve una flecha les dejo mi codigo es para sumar dos arreglos de las mismo tamaño.

private int[] sumarArreglos(int [] arreglo1,int [] arreglo2,int pos)
{
int [] res= new int [arreglo2.length];
if(pos==arreglo1.length){
res= arreglo2;

}
else{
arreglo2[pos]=arreglo1[pos]+arreglo2[pos];
System.out.println(arreglo2);
res=sumarArreglos(arreglo1,arreglo2, pos+1);
}
return res;
}
public int[] sumarArreglos(int []arreglo1,int [] arreglo2){
return sumarArreglos(arreglo1, arreglo2, 0);
}

los conpilo en bluej.
agradeciendo su ayuda me despido atte harold
  #2 (permalink)  
Antiguo 27/09/2011, 06:17
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Consulta ejercicio recursividad suma de arreglos

A mi no me da ningún problema, pero, desde luego, utilizar la recursividad para sumar dos arrays no es muy correcto (funciona, pero como sean arrays muy grandes puede dar error).

Supongo que ese no es el código completo y el problema debe estar en otro lugar.

Si no ves el error, pon el código completo y a ver cual es el problema.

Saludos.
  #3 (permalink)  
Antiguo 27/09/2011, 14:36
Avatar de JhenerGarcia  
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consulta ejercicio recursividad suma de arreglos

Cita:
Iniciado por gto_origen Ver Mensaje
hola mis estimados amigos he estado teniendo problemas al devolver un arreglo el compilador y devuelve una flecha les dejo mi codigo es para sumar dos arreglos de las mismo tamaño.

private int[] sumarArreglos(int [] arreglo1,int [] arreglo2,int pos)
{
int [] res= new int [arreglo2.length];
if(pos==arreglo1.length){
res= arreglo2;

}
else{
arreglo2[pos]=arreglo1[pos]+arreglo2[pos];
System.out.println(arreglo2);
res=sumarArreglos(arreglo1,arreglo2, pos+1);
}
return res;
}
public int[] sumarArreglos(int []arreglo1,int [] arreglo2){
return sumarArreglos(arreglo1, arreglo2, 0);
}

los conpilo en bluej.
agradeciendo su ayuda me despido atte harold
en el primer metodo en la sentencia if, te falta una sentencia return, esto es debido a que si la condicion se cumple no devuelves ningun arreglo, pero se la condicion si se cumple, devuelve el arreglo res, como te digo, te falta la sentencia
return en caso de que la condicion sea verdadera
  #4 (permalink)  
Antiguo 27/09/2011, 17:03
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Consulta ejercicio recursividad suma de arreglos

JhenerGarcia, no le falta la sentencia return. Si te fijas bien, la hace después del if ... else devolviendo el valor de la variable res. Los métodos funcionan bien, pero como ya he explicado antes no es buena manera de realizar la suma de dos arrays.
  #5 (permalink)  
Antiguo 28/09/2011, 02:03
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 17 años, 2 meses
Puntos: 8
Respuesta: Consulta ejercicio recursividad suma de arreglos

Yo creo que si funciona, yo quitaria el new de los array de resultado porque no se usa nunca, se puede incializar a null o poner return cuando se tenga el resultado y no reservar memoria que no se va a usar.

Yo creo que excepto para el recorrido de arboles la recursividad no es buena usarla, antes que no existian bucles y se tenian que usar llamadas a funciones y poner una condicion de salida.

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 09:32.