Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] [Duda y Ayuda]Clase conjunto interseccion

Estas en el tema de [Duda y Ayuda]Clase conjunto interseccion en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/09/2013, 20:23
Avatar de ninga  
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 12 años, 4 meses
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.
  #2 (permalink)  
Antiguo 27/09/2013, 01:50
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: [Duda y Ayuda]Clase conjunto interseccion

Pues el término intersección es ambiguo, pero si estás basándote en la teoría de conjuntos no puede haber elementos repetidos en A, así que tu problema no es posible.

http://es.wikipedia.org/wiki/Conjunt...gramaci%C3%B3n)

Cita:
En informática, un conjunto es una colección (contenedor) de ciertos valores, sin ningún orden concreto ni valores repetidos
.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 27/09/2013, 10:31
Avatar de ninga  
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: [Duda y Ayuda]Clase conjunto interseccion

Cita:
Iniciado por Xerelo Ver Mensaje
Pues el término intersección es ambiguo, pero si estás basándote en la teoría de conjuntos no puede haber elementos repetidos en A, así que tu problema no es posible.

[url]http://es.wikipedia.org/wiki/Conjunto_(programaci%C3%B3n[/url])

.
No te entendi amigo

Etiquetas: arreglos, ayuda!!, clase, conjunto, dudas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:48.