[ Foro de Java ]

ayuda con java Arrays

17-Oct-2013 14:32
bryan cumbajin
5 Respuestas

El método init admite tres parámetro de tipo int (n, ini, inc). Complételo para que devuelva una array de n elementos de tipo int en el que el primer elemento tenga el valor ini y cada elemento distinto del primero tenga un valor igual al que lo precede incrementado en inc. (lo he intentado mi veces pero no me sale, gracias de antemano)


public class Excercise {
 	public static int[] init(int n, int ini, int inc) {

   }
}



18-Oct-2013 00:42
Nacho Cabanes (+84)

Pon el fuente de una de esas mil veces que has intentado, para que podamos ver qué es lo que te está fallando, y que puedas aprender de tus propios errores, en vez de simplemente mirar fuentes hechos por otras personas, que es algo de lo que se aprende mucho menos.

Aun así, si te falta base, recuerda que tienes las ideas sobre el manejo de arrays en Java en el apartado 7 del curso:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=210

Ahi tienes como crear un array, como dar valor a un elemento, y como recorrerlo para acceder a los demás elementos.


18-Oct-2013 17:28
bryan cumbajin

lo que tendría que pasar es algo así:
nº elementos = 5
valor inicial = 0
incremento = 2
0 2 4 6 8
también con nº negativos


public class Excercise {
	public static int[] init(int n, int ini, int inc) {
		int[] array = new int [n];
		array[0] = ini;   // el array inicial tiene valor ini
		for (int i = 0; i < array.length; i++){  // recorrer el array entre dos posiciones
		for (int j = inc; j < array.length; j++){
		array = ini + inc;
		}
		}
		return array;
	}
}




18-Oct-2013 17:58
Nacho Cabanes (+84)

Se parece mucho a lo que debería ser:

- El array está bien creado
- El valor inicial está bien
- Sabes recorrer el array...

Pero cuando recorres el array, no estás modificando los elementos individuales (no usas []). Además, no necesitas un doble "for", sino que puedes hacerlo en una pasada: lo que haya en la primera posición lo vuelcas (incrementado) a la segunda y así sucesivamente. Podría quedar algo como:


public class Ejercicio { 
  public static int[] init(int n, int ini, int inc) { 
    int[] miArray = new int [n]; 
    miArray[0] = ini;   // la posicion inicial tiene valor ini 
    for (int i = 0; i < array.length-1; i++){  // desde el principio hasta la penultima 
      miArray[i+1] = miArray[i] + inc; // Vuelco en la siguiente el valor incrementado 
    } 
    return miArray; 
  } 
}




18-Oct-2013 18:07
bryan cumbajin

Gracias tio, me funciona a la perfección


18-Oct-2013 18:08
Nacho Cabanes (+84)

De nada, duro con ello!






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)