Sv Community El Salvador

Soporte y Tecnología => Programación => Java => Topic started by: tk2b on February 18, 2012, 05:43:37 pm

Title: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: tk2b on February 18, 2012, 05:43:37 pm
Estoy haciendo una clase de sobre conjuntos que haga las siguientes operaciones, lea los conjuntos primeramente.
Haga la union de conjuntos ( sin que se repita)
Haga la interaccion de conjuntos( solo los que se repitan)
Los reste
Conjunto vacio.

Vaya les pongo mi clase espero me pueda ayudar que yo ya quede out con esto se nota facil pero ya no se que hacer o que e hecho mal.


import java.io.*;

public class Conjuntos{
   private int Conjunto[]=new int [5];
    private int Conjuntotal[]=new int [10];
   private int i;
   private int j;
   private int n,CONT;
   private int aux;
   public Conjuntos(){
   }

// SE CREA EL OBJETO CONJUNTO
 public void LeerDatosConjunto()
    throws java.io.IOException
    {
       for(i=0;i<5;i++)
          {
          CONT++;
          System.out.println("DIGITE EL VALOR "+(i+1)+" DEL CONJUNTO");
          Conjunto=inout.readInt();
          }

    }


//UNION DE LOS CONJUNTOS
public void Union(Conjuntos c1,Conjuntos c2)
    throws java.io.IOException
    {
for(i=0;i<5;i++)
          {
          for(j=0;j<5;j++){

            if(c1.Conjunto==c2.Conjunto[j])
               break;
            }

            if(j==10)
               c2.Conjunto[aux++]=c1.Conjunto;

          }

          for(i=0;i<5;i++){
             Conjuntotal=c1.Conjunto;
          for(j=0;j<5;j++){

            Conjuntotal[c1.Conjunto.length+i]=c2.Conjunto[j];
            }
          }

          System.out.println("== conjunto union=="+Conjuntotal[10]);

          }

// INTERACCION DE LOS CONJUNTOS.
public void Interaccion(Conjuntos c1,Conjuntos c2)
    throws java.io.IOException
    {

       for (i=0;i<c1.Conjunto.length;i++){
          for (j=0;j<c2.Conjunto.length;j++){

             if ( c1.Conjunto==c2.Conjunto[j])

                Conjuntotal=c1.Conjunto;

          }
       }

       System.out.println("==LA INTERACCION DE LOS CONJUNTOS: "+Conjuntotal);

    }

//RESTA DE LOS CONJUNTOS

public void Resta(Conjuntos c1,Conjuntos c2)
    throws java.io.IOException
    {

       for (i=0;i<5;i++){
          for (j=0;j<5;j++){

             if ( c1.Conjunto==c2.Conjunto[j])

                if(c1.Conjunto==c2.Conjunto[j])

                Conjuntotal=c1.Conjunto-c2.Conjunto[j];

          }
       }

       System.out.println("==LA RESTA  DE LOS CONJUNTOS"+Conjuntotal);

    }

////CONJUNTO VACIO


public void  Vacio(Conjuntos c1,Conjuntos c2)
throws java.io.IOException{

if (CONT==0)
System.out.println("EL CONJUNTO ES VACIO");



}




Espero me pueda ayudar.
Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: hkadejo on February 18, 2012, 06:04:23 pm
1) Te da errores de compilacion?

2) Son errores en las operaciones???

3) Algunos datos de ejemplo para probar y que ya sepas la respuesta correcta??

4) Solo asi dandole una vista rapido

Code: [Select]
   if(c1.Conjunto==c2.Conjunto[j])
               break;
            }

Porque comparas un Arreglo con un valor entero???? o estoy entendiendo algo mal?
Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: tk2b on February 18, 2012, 06:29:14 pm
Compila sin ningun problema la clase.

En el programa cuando quiero hacer que muestre la union de conjuntos. Muestra 0, al igual que las demas operaciones. No se realmente si estoy haciendo algo mal.


Al tratar de imprimir siempre me imprime 0 no me imprime nada.
Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: hkadejo on February 18, 2012, 07:23:03 pm
La linea que te puse, no puedes comparar un entero con un arreglo. revisa ahi.
Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: tk2b on February 18, 2012, 08:37:02 pm
Ya amigo, ya lo repare y nada no me imprime los conjuntos

Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: E-minero on February 18, 2012, 09:25:24 pm
Hey man en tu codigo veo esto: for(i=0.....) , bueno cambia esto por for(int i=0...), declara dentro la varible como entera porque es regla en java hacerlo asi, otra cosa la variable CONT, solo la has declarado, inicializal con cero CONT=0, para evitar cualquier problema, toy instalando el netbeans para probar tu codigo, para haber si te hago barra!!!
Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: E-minero on February 18, 2012, 09:57:32 pm
Vaya man ya lo probe voy partes:
1) No se como te compila si tiene varios errores.
2) el objeto inout me tira error, creo que lo estas escribiendo mal o te faltan palabras, o vos has creado una clase para capturar los datos???
3)Aqui:
for(i=0;i<5;i++)
          {
          for(j=0;j<5;j++){

            if(c1.Conjunto==c2.Conjunto[j])
               break;
            }

            if(j==10)
               c2.Conjunto[aux++]=c1.Conjunto;

          }
Creo que tratas de trabajar con las posiciones, pero por ejemplo: if(j==10) Esto nunca va a suceder tu le has puesto que j va de 0 a 4 nunca tendras el valor j=10,  if(c1.Conjunto==c2.Conjunto[j]) aqui lo que ya te dijo hkadejo, aqui: c2.Conjunto[aux++]=c1.Conjunto; estas asignando todo un conjunto a una posicion especifica del otro conjunto eso no se puede. Y arregla lo otro que te puse en el post anterior.
Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: tk2b on February 18, 2012, 11:41:01 pm
Vaya amigo hasta ahorita me a salido lo demas pero no lo siguiente que es lo que realmente me esta haciendo doler un poco la cabeza.
Quiero la union de dos conjunto( vectores) en el cual los numeros que se repiten no se impriman dos veces

Mi logica es ir quitando los valores que se repiten en A y B quitandoselo al B asi solo quedaria unir ambos conjuntos(vectores) en un solo vector.

Ese codigo es para hacer una clase que contiene.

leida de datos= Sirve
Union de conjuntos= es lo que no me funciona
Resta= funciona
Interaccion=probando aun.
Vacio= eso lo controlo con un contador ya que si el contador es =0 entonces es un conjunto vacio.

Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: JaiMe on February 19, 2012, 12:03:29 am
Vaya amigo hasta ahorita me a salido lo demas pero no lo siguiente que es lo que realmente me esta haciendo doler un poco la cabeza.
Quiero la union de dos conjunto( vectores) en el cual los numeros que se repiten no se impriman dos veces
Mi logica es ir quitando los valores que se repiten en A y B quitandoselo al B asi solo quedaria unir ambos conjuntos(vectores) en un solo vector.


Si queres valores únicos evalúa si ya existen al a momento de inserción

Mira las respuestas de este topic http://www.svcommunity.org/forum/java/ayuda-a-los-programadores-pro-xd-con-este-noob-cuestion/ (http://www.svcommunity.org/forum/java/ayuda-a-los-programadores-pro-xd-con-este-noob-cuestion/), me imagino que te resultaran familiares.
Title: Re: JAVA AYUDA A LOS QUE SABEN xD y no se la pican.
Post by: radamanthys360 on March 31, 2012, 10:12:31 am
hola no he visto bien tu codigo pero tengo una pregunta es necesario que estes usando los vectores primitivos, en java tenemos Colletion Framework el cual tiene muchas estructuras las cuales no te permiten datos repetido como los set y tambien hay una clase vector mucho mas facil que estar usando los primitivos pero noce si te lo han impuesto hacer asi?