Foro de elhacker.net

Programación => Java => Mensaje iniciado por: robertoht en 12 Julio 2015, 18:43 pm



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

Código
  1. import java.util.Scanner;
  2.  
  3. public class arreglo {
  4.  
  5.    public void arreglo1() {
  6.        Scanner in = new Scanner(System.in);
  7.        double x[], mayor, menor;
  8.        int n, i;
  9.  
  10.        do {
  11.            System.out.print("Cantidad de elementos del arreglo : ");
  12.  
  13.            n = in.nextInt();
  14.        } while (n <= 0 || n > 15);
  15.  
  16.        x = new double[n];
  17.  
  18.        for (i = 0; i < n; i++) {
  19.            System.out.print("x[" + i + "]: ");
  20.            x[i] = in.nextDouble();
  21.        }
  22.  
  23.  
  24.        System.out.println("Elementos del arreglo");
  25.        for (i = 0; i < n; i++) {
  26.            System.out.println("x[" + i + "]: " + x[i]);
  27.        }
  28.  
  29.        // Calculo del mayor y menor
  30.        mayor = menor = x[0];
  31.        for (i = 1; i < n; i++) {
  32.            if (x[i] > mayor) {
  33.                mayor = x[i];
  34.            } else if (x[i] < menor) {
  35.                menor = x[i];
  36.            }
  37.        }
  38.  
  39.  
  40.        System.out.println("El mayor es " + mayor);
  41.        System.out.println("El menor es:" + menor);
  42.  
  43.    }
  44. }
  45.  

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í:

Código
  1. public class ArrayGenerator {
  2.    private double[] numbers;
  3.    private double minor;
  4.    private double major;
  5.    final static Scanner READER;
  6.    final static Random GENERATOR;
  7.  
  8.    public ArrayGenerator() {
  9. READER = new Scanner(System.in);
  10. GENERATOR = new Random();
  11.    }
  12.    public ArrayGenerator fillArray() throws ArrayOutOfBoundsException {
  13. System.out.println("¿Cuántos números desea generar?");
  14. byte quantity = READER.nextByte();
  15.  
  16.        if(quantity > 15) {
  17.    throw new ArrayOutOfBoundsException("El arreglo debe tener máximo 15 elementos");
  18. }
  19. numbers = new Double[quantity];
  20. for(byte i=0; i<quantity; i++) {
  21.    numbers[i] = GENERATOR.nextDouble();
  22. }
  23. return this;
  24.    }
  25.    public ArrayGenerator major() {
  26. major = numbers[0]; // asume 1er elemento como mayor
  27. for(double number : numbers) {
  28.    major = (number > major) ? number : major;
  29.        }
  30. return this;
  31.    }
  32.    public ArrayGenerator minor() {
  33. minor = numbers[0]; // asume 1er elemento como menor
  34. for(double number : numbers) {
  35.    minor = (number < minor) ? number : minor;
  36.        }
  37. return this;
  38.    }
  39.    public double getMajor() {
  40. return major;
  41.    }
  42.    public double getMinor() {
  43. return minor;
  44.    }
  45. }

En la clase donde se instanciará ArrayGenerator:

Código
  1. try {
  2.    ArrayGenerator arrayGenerator =
  3. new ArrayGenerator()
  4. .fillArray()
  5. .major()
  6. .minor();
  7.  
  8. System.out.println("El número mayor es: " + arrayGenerator.getMajor());
  9. System.out.println("El número menor es: " + arrayGenerator.getMinor());
  10. } catch(ArrayOutOfBoundsException ex) {
  11.    // el mensaje es el que le pasamos por parámetro al constructor de la excepción
  12.    // cuando lo lanzamos si es que se elige ingresar más de 15 números. El mensaje
  13.    // es: 'El arreglo debe tener máximo 15 elementos'
  14.    System.err.println(ex.getMessage());
  15. }