Ayuda ejercicio vectores

Iniciado por robertoht, 12 Julio 2015, 18:43 PM

0 Miembros y 1 Visitante están viendo este tema.

robertoht

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 (java) [Seleccionar]
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

daryo

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?
buenas

robertoht

Que el espacio en el vector no sea mayor a 15

Usuario Invitado

Te pongo un ejemplo muy simple con method chaining (encadenamiento de métodos) que es útil aquí:

Código (java) [Seleccionar]
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);
GENERATOR = new Random();
    }
    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:

Código (java) [Seleccionar]

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());
}
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein