Asignarle a un vector 100 valores de tipo entero comprendidos entre 1
y 200. Leer por teclado un número y comprobar si coincide con alguno de los
elementos del vector. Utilizar el método binarySearch.
/*
 * 15. Asignarle a un vector 100 valores de tipo entero comprendidos entre 1 y 
 * 200. 
 * Leer por teclado un número y comprobar si coincide con alguno de los elementos
 * del vector. Utilizar el método binarySearch. 
 */
package unidad3ejercicio15;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
/**
 *
 * @author Juan
 */
public class Unidad3Ejercicio15 {
 
   /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int vector [] = new int [100];
        Scanner leo = new Scanner(System.in);
        Random aleatorio = new Random();
        String cadena;
        int numero=0;
        boolean incorrecto=true;
        int indice=-1;
       
        //Asignamos valores aleatorios al array entre 1 y 200
        for (int i = 0; i < vector.length; i++) {
            vector[i] = aleatorio.nextInt(200)+1;
        }
        //Mostramos el array
        for (int i : vector) {
            System.out.println(i);
        }
       
       
        /*Leo un valor de tipo numérico comprobando errores
         * 
         */
        while (incorrecto) {
               
            try
            {
                System.out.println("Introduzca el número a buscar:");
                cadena=leo.nextLine();
                numero=Integer.parseInt(cadena);
                incorrecto=false;
            }
            catch (Exception e){
                System.out.println("los valores introducidos deben ser de tipo numérico");
               
                incorrecto=true;
            }
        }
       
        //Ordenamos el array de menor a mayor
        Arrays.sort(vector);
        //y lo muestro
        for (int i = 0; i < vector.length; i++) {
            System.out.println(i+": "+vector[i]);
           
        }
       
       
        indice=Arrays.binarySearch(vector, numero);
        if (indice<0) System.out.println("El número no está en el array");
        else System.out.println("El número "+numero +" ocupa la posición "+indice+" en el array");
       
       
    }
}
 
No hay comentarios:
Publicar un comentario