[ Foro de Java ]
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) {
}
}
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.
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;
}
}
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;
}
}
Gracias tio, me funciona a la perfección
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.)