Sv Community El Salvador
Soporte y Tecnología => Programación => Java => Topic started 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.
-
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
if(c1.Conjunto==c2.Conjunto[j])
break;
}
Porque comparas un Arreglo con un valor entero???? o estoy entendiendo algo mal?
-
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.
-
La linea que te puse, no puedes comparar un entero con un arreglo. revisa ahi.
-
Ya amigo, ya lo repare y nada no me imprime los conjuntos
-
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!!!
-
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.
-
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.
-
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.
-
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?