sábado, 22 de octubre de 2011

Deitel_Java_7.12 (Eliminación de Números Duplicados en Java)

7.12 (Eliminación de duplicados) Use un arreglo unidimensional para resolver el siguiente problema: escriba una aplicación que reciba como entrada cinco números, cada uno de los cuales debe estar entre 10 y 100. A medida que se lee cada número, muéstrelo solamente si no es un duplicado de un número que ya se haya leído. Prepárese para el "peor caso", en el que los cinco números son diferentes. Use el arreglo más pequeño que sea posible para resolver este problema. Muestre el conjunto completo de valores únicos introducidos, después de que el usuario introduzca cada nuevo valor.
El siguiente código debe guardarse con el nombre UsaDeitel_7_12.java


 public class UsaDeitel_7_12
 {  // Abre clase publica UsaDeitel_7_12
 public static void main(String args[])
 {  // Abre main
 Deitel_7_12 miObjeto = new Deitel_7_12();
 miObjeto.Recibe();
 } // Cierra main 
 }   // Cierra clase publica UsaDeitel_7_12



El siguiente código debe guardarse con el nombre Deitel_7_12.java



 /* *******************************************************************
  *                                                                   *                                                                 
  *                       DEITEL JAVA 7.12                            *
  *                     _________   _________                         *
  *                               .                                   *
  *                     _________   _________                         *
  *                                                                   *
  *    Este programa recibe 5 numeros distintos entre 10 y 100 y      *
  *    los imprime solo si no han sido repetidos.                     *
  *                                                                   *
  *    19 de octubre de 2011                                          *
  *                                                                   *
  ******************************************************************* */

 import java.util.Scanner;

 public class Deitel_7_12
 {  // Abre clase Deitel_7_12

 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
  *                                                                  *
  * Declaracion de variables globales                                *
  *                                                                  *
  ****************************************************************** */

 Scanner entrada = new Scanner(System.in);
 enum Estado {SI, NO};
 private int Tamano = 5;
 private int numero;
 private int numeros_recibidos = 0;
 Estado almacenar;
 Estado imprimir;
 int Arreglo[] = new int[Tamano];

 //////////////////////////////////////////////////////////////////////
 // Metodo Recibe
 //////////////////////////////////////////////////////////////////////

 public void Recibe()
 {  // Abre metodo Recibe

 for ( int n = 0; n <  Tamano; n++ )
 { // Abre for 

 numero = 0;
 while ( (10 > numero) || ( 100 < numero) )
 {
 System.out.println("\nPor favor introduzca un numero entre 10 y 100 inclusive\n");
 numero = entrada.nextInt();
 }

 Arreglo[n] = numero;
 numeros_recibidos++;
 Imprime();
 }   // Cierra for

 System.out.println("\n");

 }  // Cierra metodo Recibe


 /* El metodo Imprime pone en la pantalla los numeros recibidos hasta el momento */
 
 //////////////////////////////////////////////////////////////////////////////////
 // METODO IMPRIME                                                                 
 //////////////////////////////////////////////////////////////////////////////////
 
 public void Imprime()
 {     // Abre metodo Imprime
 System.out.printf("\nLos numeros recibidos: %d", numeros_recibidos);
 imprimir = Estado.SI;

 System.out.printf("\n%d", Arreglo[0]);

 for ( int j = 1; j < numeros_recibidos; j++ )
 {  // Abre for
 imprimir = Estado.SI;

 for ( int k = 0; k < j; k++)
 {
 if ( Arreglo[j] == Arreglo[k] )
 imprimir = Estado.NO;
 }

 if ( Estado.SI == imprimir )
 {
 System.out.printf("\n%d", Arreglo[j]);
 }
 }  // Cierra for
 }     // Cierra metodo Imprime

 }  // Cierra clase Deitel_7_12




6 comentarios:

  1. Solo quiero recordar que, por convención los nombres de los métodos comienzan con una letra minúscula.

    ResponderEliminar
  2. Solo veo un inconveniente y es con respecto al enunciado: "A medida que se lee cada número, muéstrelo solamente si no es un duplicado..." mientras que este código lee los 5 números y después hace la evaluación e imprime.

    ResponderEliminar
  3. El código es una buena aproximación pero no esta conforme al enunciado, pueden apoyarse en este:

    https://github.com/SSBaez/Deitel-Java-Ejercicio-7.12/blob/master/Ejercicio7.12/src/com/ssbaez/ejercicio712/EliminarDuplicado.java

    ResponderEliminar
  4. Me gustaria saber el codigo para este mismo programa pero en C++

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...