Advertisement
Fhernd

AppEjercicio2.java

Jul 23rd, 2012
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.00 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5.  
  6. public class AppEjercicio2
  7. {
  8.     /**
  9.      * Arreglos para operaciones de conjuntos.
  10.      */
  11.     private int[] arregloA;
  12.     private int[] arregloB;
  13.     private int[] arregloC;
  14.    
  15.     /**
  16.      * Cantidad de elementos a insertar en cada uno de los arreglos, además de la instanciación de los mismos.
  17.      */
  18.     public void numeroElementosInsertarEnABC()
  19.     {
  20.         int numeroElementos = 0;
  21.        
  22.         InputStreamReader isr = new InputStreamReader( System.in );
  23.         BufferedReader br = new BufferedReader( isr );
  24.        
  25.         try
  26.         {
  27.             while( numeroElementos <= 0 )
  28.             {
  29.                 System.out.print( "Dígite el número de elementos a insertar en A: " );
  30.                 numeroElementos = Integer.parseInt( br.readLine() );
  31.             }
  32.            
  33.             // crea el arregloA
  34.             arregloA = new int[ numeroElementos ];
  35.            
  36.             System.out.println();
  37.             numeroElementos = 0;
  38.            
  39.             while ( numeroElementos <= 0 )
  40.             {
  41.                 System.out.print("Dígite el número de elementos a insertar en B: ");
  42.                 numeroElementos = Integer.parseInt(br.readLine());
  43.             }
  44.            
  45.             // crea el arregloB
  46.             arregloB = new int[ numeroElementos ];
  47.            
  48.             // el tamaño para el arreglo C (arregloC) es la suma del tamaño de los arreglos arregloA, arregloB.
  49.             arregloC = new int[ arregloA.length + arregloB.length ];
  50.         }
  51.         catch( NumberFormatException nfe )
  52.         {
  53.             nfe.printStackTrace();
  54.         }
  55.         catch( IOException ioe )
  56.         {
  57.             ioe.printStackTrace();
  58.         }
  59.     } // fin del método numeroElementosInsertarEnABC
  60.    
  61.     /**
  62.      * Carga los arreglos de instancia con valores introducidos por el usuario.
  63.      */
  64.     public void cargarArreglos()
  65.     {
  66.         // crea el buffer para ingreso de datos desde la entrada estándar
  67.         InputStreamReader isr = new InputStreamReader( System.in );
  68.         BufferedReader br = new BufferedReader( isr );
  69.        
  70.         // carga el arreglo arregloA
  71.         int dato = 0;
  72.        
  73.         System.out.println( "\n\nInsertando elementos en A: " );
  74.        
  75.         for (int i = 0; i < arregloA.length; ++i )
  76.         {
  77.             if( i == 0 )
  78.             {
  79.                 System.out.print( "Dígite un número: " );
  80.                 try
  81.                 {
  82.                     dato = Integer.parseInt( br.readLine() );
  83.                     arregloA[ i ] = dato;
  84.                 }
  85.                 catch (NumberFormatException e)
  86.                 {
  87.                     e.printStackTrace();
  88.                 }
  89.                 catch (IOException e)
  90.                 {
  91.                     e.printStackTrace();
  92.                 }
  93.             }
  94.             else // sólo se comprueba la existencia de elementos a partir de la segunda inserción.
  95.             {
  96.                 do
  97.                 {
  98.                     System.out.print( "Dígite un número: " );
  99.                     try
  100.                     {
  101.                         dato = Integer.parseInt( br.readLine() );
  102.                         arregloA[ i ] = dato;
  103.                     }
  104.                     catch (NumberFormatException e)
  105.                     {
  106.                         e.printStackTrace();
  107.                     }
  108.                     catch (IOException e)
  109.                     {
  110.                         e.printStackTrace();
  111.                     }
  112.                 } while( existeDato( arregloA, dato, i ) ); // mientras que el dato insertado existe se repite este ciclo.
  113.             } // fin de if
  114.         } // fin de for
  115.        
  116.         // a partir de esta línea se empieza a cargar el segundo arreglo.
  117.         dato = 0;
  118.        
  119.         System.out.println( "\n\nInsertando elementos en B: " );
  120.        
  121.         for (int i = 0; i < arregloB.length; ++i )
  122.         {
  123.             if( i == 0 )
  124.             {
  125.                 System.out.print( "Dígite un número: " );
  126.                 try
  127.                 {
  128.                     dato = Integer.parseInt( br.readLine() );
  129.                     arregloB[ i ] = dato;
  130.                 }
  131.                 catch (NumberFormatException e)
  132.                 {
  133.                     e.printStackTrace();
  134.                 }
  135.                 catch (IOException e)
  136.                 {
  137.                     e.printStackTrace();
  138.                 }
  139.             }
  140.             else // sólo se comprueba la existencia de elementos a partir de la segunda inserción.
  141.             {
  142.                 do
  143.                 {
  144.                     System.out.print( "Dígite un número: " );
  145.                     try
  146.                     {
  147.                         dato = Integer.parseInt( br.readLine() );
  148.                         arregloB[ i ] = dato;
  149.                     }
  150.                     catch (NumberFormatException e)
  151.                     {
  152.                         e.printStackTrace();
  153.                     }
  154.                     catch (IOException e)
  155.                     {
  156.                         e.printStackTrace();
  157.                     }
  158.                 } while( existeDato( arregloB, dato, i ) ); // mientras que el dato insertado existe se repite este ciclo.
  159.             } // fin de if
  160.         } // fin de for
  161.     } // fin del método cargarArreglos
  162.  
  163.     /**
  164.      * Comprueba si un dato concreto ya ha sido insertado.
  165.      * @param arreglo Arreglo de datos enteros
  166.      * @param dato El dato actual a insertar
  167.      * @param longitudActual La longitud hasta donde se debe explorar el arreglo.
  168.      * @return Si el dato existe o no en el arreglo.
  169.      */
  170.     private boolean existeDato(int[]  arreglo, int dato, int longitudActual )
  171.     {
  172.         for (int i = 0; i < longitudActual; i++)
  173.         {
  174.             if( dato == arreglo[ i ] )
  175.             {
  176.                 return true;
  177.             }
  178.             else
  179.             {
  180.                 continue;
  181.             }
  182.         }
  183.        
  184.         return( false );
  185.     } // fin del método existeDato
  186.    
  187.     /**
  188.      * Crea el arreglo arregloC a partir de la unión entre los conjuntos A y B.
  189.      */
  190.     public void crearUnionConjuntoAB()
  191.     {
  192.         // copia el contenido del arreglo arregloA al arreglo arregloC.
  193.         for (int i = 0; i < arregloA.length; i++)
  194.         {
  195.             arregloC[ i ] = arregloA[ i ];
  196.         } // fin for
  197.        
  198.         for( int i = arregloA.length, j = 0; j < arregloB.length; ++i, ++j )
  199.         {
  200.             if( !existeDato( arregloC, arregloB[ j ], arregloA.length + j ) )
  201.             {
  202.                 arregloC[ i ] = arregloB[ j ];
  203.             }
  204.         } // fin for
  205.     } // fin del método crearUnionConjuntoAB
  206.    
  207.     /**
  208.      * Imprime el contenido de los arreglos.
  209.      */
  210.     public void imprimirArreglos()
  211.     {
  212.         System.out.println();
  213.         System.out.println();
  214.        
  215.         // imprime contenido de arregloA
  216.         System.out.println( "Contenido de Arreglo A: \n" );
  217.         for (int i = 0; i < arregloA.length; ++i )
  218.         {
  219.             if( i < ( arregloA.length - 1 ) )
  220.             {
  221.                 System.out.print( arregloA[ i ] + ", ");
  222.             }
  223.             else
  224.             {
  225.                 System.out.print( arregloA[ i ] );
  226.             }
  227.         }
  228.        
  229.         System.out.println();
  230.         System.out.println();
  231.        
  232.         /// imprime el contenido de arregloB
  233.         System.out.println( "Contenido de Arreglo B: \n" );
  234.         for (int i = 0; i < arregloB.length; ++i )
  235.         {
  236.             if (i < ( arregloB.length - 1 ) )
  237.             {
  238.                 System.out.print(arregloB[i] + ", ");
  239.             }
  240.             else
  241.             {
  242.                 System.out.print( arregloB[ i ] );
  243.             }
  244.         }
  245.        
  246.         System.out.println();
  247.         System.out.println();
  248.        
  249.         // imprime el contenido de arregloC
  250.         System.out.println( "Contenido de Arreglo C: \n" );
  251.         for (int i = 0; i < arregloC.length; ++i )
  252.         {
  253.             if ( i < ( arregloC.length - 1 ) )
  254.             {
  255.                 System.out.print( arregloC[i] + ", " );
  256.             }
  257.             else
  258.             {
  259.                 System.out.print( arregloC[ i ] );
  260.             }
  261.         }
  262.        
  263.         System.out.println();
  264.         System.out.println();
  265.     } // fin del método imprimirArreglos
  266.    
  267.     /**
  268.      * Punto de entrada de la aplicación.
  269.      * @param args Argumentos pasados desde la consola o la terminal.
  270.      */
  271.     public static void main( String[] args )
  272.     {
  273.         // Crea una instancia de la clase AppEjericio2
  274.         AppEjercicio2 app2 = new AppEjercicio2();
  275.  
  276.         // determina la cantidad de elementos que se deben insertar
  277.         app2.numeroElementosInsertarEnABC();
  278.        
  279.         app2.cargarArreglos();
  280.        
  281.         // muestra el contenido de los tres arreglos de instancia
  282.         app2.imprimirArreglos();
  283.        
  284.         // realiza unión (operación de teoría de conjuntos)
  285.         app2.crearUnionConjuntoAB();
  286.        
  287.         // se vuelve a imprimir los arreglos
  288.         app2.imprimirArreglos();
  289.     } // fin del método main
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement