Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/09/2013, 20:23
Avatar de ninga
ninga
 
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Pregunta [Duda y Ayuda]Clase conjunto interseccion

Hola amigos, tengo una duda y un problema, en mi clase de ICC, nos dejaron modelar una clase conjunto que realizara la intersección y la unión, la he creado y todo "bien" al parecer, por ejemplo si doy A={1,2,3} y B={1,2,5} me da como unión {1,2}, pero cuando doy A={1,1,1} y B={1,2,4}, me da como unión {1,1,1}, pero no se si este bien o hay algún error, porque solo me debe de dar {1} no?, pero que me puedan ayudar, les anexo mi código clase y un código de prueba de la clase, gracias.

Código clase:

Código Java:
Ver original
  1. import java.util.*;
  2.  
  3. /**
  4.  * CConjuntos.java
  5.  * Esta clase define unos conjuntos y sus opreaciones(union,interseccion)
  6.  * @version Septiembre 2013
  7.  */
  8.  
  9. public class CConjuntos{
  10.     //Atributos
  11.     private int n,m;
  12.     private Scanner teclado;
  13.     private String[] ConjuntoA;
  14.     private String[] ConjuntoB;
  15.     private String[] resultado;
  16.    
  17.     //Constructor
  18.     public CConjuntos(int n, int m){
  19.         ConjuntoA = new String[n];
  20.         ConjuntoB = new String[m];
  21.         }
  22.    
  23.     //Metodos
  24.     public void cargarA(){
  25.         teclado = new Scanner(System.in);
  26.     for(int i = 0;i < ConjuntoA.length;i++){
  27.         System.out.print("\nDame un elemento de A: ");
  28.         ConjuntoA[i] = teclado.next();
  29.         }
  30.     }
  31.     public void cargarB(){
  32.         teclado = new Scanner(System.in);
  33.     for(int j = 0;j < ConjuntoB.length;j++){
  34.         System.out.print("\nDame un elemnto de B: ");
  35.         ConjuntoB[j] = teclado.next();
  36.         }
  37.     }
  38.  
  39.     public void union(){
  40.         resultado = new String[(ConjuntoA.length + ConjuntoB.length)];
  41.         System.out.print("\nLa union del conjunto A y B\n");
  42.             for(int i=0; i<(ConjuntoA.length + ConjuntoB.length); i++){
  43.                 if(i<ConjuntoA.length)
  44.                 resultado[i] = ConjuntoA[i];
  45.             else
  46.                 resultado[i] = ConjuntoB[(i-ConjuntoA.length)];
  47.             }
  48.             Arrays.sort(resultado);
  49.             for(int i=0; i<(ConjuntoA.length + ConjuntoB.length); i++){
  50.             for(int j=0; j<(ConjuntoA.length + ConjuntoB.length);j++){
  51.                 if((resultado[i].equals(resultado[j]))&&(i<j))
  52.                 resultado[j]="";
  53.                 }
  54.             }
  55.         System.out.print("{ ");
  56.             for(int i=0; i<(ConjuntoA.length + ConjuntoB.length); i++){
  57.                 if(resultado[i]!="")
  58.                 System.out.print(resultado[i]+", ");
  59.             }
  60.         System.out.println("}");
  61.  
  62.     }
  63.  
  64.     public void interseccion(){
  65.         System.out.print("\nLa interseccion del conjunto A y B\n{ ");
  66.         for(int i = 0;i < ConjuntoA.length;i++){
  67.             for(int j = 0;j < ConjuntoB.length;j++){
  68.                 if(ConjuntoA[i].equals(ConjuntoB[j]))
  69.                 System.out.print(ConjuntoA[i] + ", ");
  70.                 }
  71.         }
  72.         System.out.println(" }");
  73.     }
  74.    
  75.  
  76. }

Código prueba:

Código Java:
Ver original
  1. import java.util.*;
  2.  
  3. public class TestConjunto {
  4.    
  5.     public static void main (String[] args) {
  6.         int n,m;
  7.         Scanner lector = new Scanner(System.in);
  8.    
  9.         System.out.print("Ingrese la cardinalidad del conjunto A: ");
  10.         n = lector.nextInt();
  11.  
  12.         System.out.print("Ingrese la cardinalidad del conjunto B: ");
  13.         m = lector.nextInt();
  14.  
  15.         CConjuntos conjunto = new CConjuntos();
  16.         CConjuntos conjunto2 = new CConjuntos(n,m);
  17.    
  18.             conjunto2.cargarA();
  19.             conjunto2.cargarB();
  20.             conjunto2.union();
  21.             conjunto2.interseccion();
  22.        
  23.     }
  24. }

Espero que me puedan ayudar se los agradeceré mucho.