Título: Ayuda ejercicio vectores
Publicado por: robertoht en 12 Julio 2015, 18:43 pm
Buenas Tengo un problema con este código. Necesito llenar el arreglo con números aleatorios y no sé como hacerlo, en lugar de que el usuario que ingrese los números. Como hago para que me muestre un mensaje de error si el espacio es mayor a 15. Y también como hago para que me indique en que posición del arreglo está cada número aleatorio creado. Esto es lo que llevo por ahora import java.util.Scanner; public class arreglo { public void arreglo1() { Scanner in = new Scanner (System. in); double x[], mayor, menor; int n, i; do { System. out. print("Cantidad de elementos del arreglo : "); n = in.nextInt(); } while (n <= 0 || n > 15); x = new double[n]; for (i = 0; i < n; i++) { System. out. print("x[" + i + "]: "); x[i] = in.nextDouble(); } System. out. println("Elementos del arreglo"); for (i = 0; i < n; i++) { System. out. println("x[" + i + "]: " + x [i ]); } // Calculo del mayor y menor mayor = menor = x[0]; for (i = 1; i < n; i++) { if (x[i] > mayor) { mayor = x[i]; } else if (x[i] < menor) { menor = x[i]; } } System. out. println("El mayor es " + mayor ); System. out. println("El menor es:" + menor ); } }
De antemano gracias por la ayuda
Título: Re: Ayuda ejercicio vectores
Publicado por: daryo en 12 Julio 2015, 19:02 pm
estas son cosas que encuentras con una busqueda en google
http://puntocomnoesunlenguaje.blogspot.com/2013/04/llenar-un-array-con-numeros-aleatorios.html
a que te refieres con que el espacio sea mayor a 15?
Título: Re: Ayuda ejercicio vectores
Publicado por: robertoht en 12 Julio 2015, 19:58 pm
Que el espacio en el vector no sea mayor a 15
Título: Re: Ayuda ejercicio vectores
Publicado por: Usuario Invitado en 12 Julio 2015, 23:19 pm
Te pongo un ejemplo muy simple con method chaining (encadenamiento de métodos) que es útil aquí: public class ArrayGenerator { private double[] numbers; private double minor; private double major; final static Scanner READER; final static Random GENERATOR ; public ArrayGenerator() { READER = new Scanner (System. in); } public ArrayGenerator fillArray() throws ArrayOutOfBoundsException { System. out. println("¿Cuántos números desea generar?"); byte quantity = READER.nextByte(); if(quantity > 15) { throw new ArrayOutOfBoundsException("El arreglo debe tener máximo 15 elementos"); } numbers = new Double[quantity ]; for(byte i=0; i<quantity; i++) { numbers[i] = GENERATOR.nextDouble(); } return this; } public ArrayGenerator major() { major = numbers[0]; // asume 1er elemento como mayor for(double number : numbers) { major = (number > major) ? number : major; } return this; } public ArrayGenerator minor() { minor = numbers[0]; // asume 1er elemento como menor for(double number : numbers) { minor = (number < minor) ? number : minor; } return this; } public double getMajor() { return major; } public double getMinor() { return minor; } }
En la clase donde se instanciará ArrayGenerator: try { ArrayGenerator arrayGenerator = new ArrayGenerator() .fillArray() .major() .minor(); System. out. println("El número mayor es: " + arrayGenerator. getMajor()); System. out. println("El número menor es: " + arrayGenerator. getMinor()); } catch(ArrayOutOfBoundsException ex) { // el mensaje es el que le pasamos por parámetro al constructor de la excepción // cuando lo lanzamos si es que se elige ingresar más de 15 números. El mensaje // es: 'El arreglo debe tener máximo 15 elementos' System. err. println(ex. getMessage()); }
|