10/7/2010

Interseccion de Dos Conjuntos [ Codigo en C++ ]



Se define la intersección de dos conjuntos A y B al conjunto de elementos que son comunes a A y B. Se denota por A B, que se lee: A intersección B. La intersección de A y B también se puede definir:

A . B = { x / x E A y x E B } y mediante un diagrama de Venn-Euler:



#include<iostream>
using namespace std;

int contador = 0;

int *Ingresar( int *A , int N)
{
 A = new int [100];
 
 for( int i = 0 ; i < N ; i++ )
     {
      cout<<"\n\t\t\t - ["<<i+1<<"] : ";
      cin>>A[i];
     }
 
 return A;
      
}


int *Interseccion( int *A , int *B , int *C , int N ,int M )
{
 
 C = new int [100];
  
 for( int i = 0 ; i < N ; i++ )
     for( int j = 0 ; j < M ; j++ )
         if ( A[i] == B[j])
             {
              C[contador++] = A[i];
            } 
            
  if ( contador == 0)          
       return 0;
  else          
       return C;
}



void Mostrar( int *A , int N)
{
 
 cout<<" "<<A[0];
 
 for( int i = 1 ; i < N ; i++ )
      cout<<" , "<<A[i];
      
}


int main()
{
 system("color f0");
 
 int N, M;
 
 int *A = NULL;
 int *B = NULL;
 int *C = NULL;
 
 cout<<"\n\n\t  Primer Conjunto  : ";
 cin>>N;
 
 A = Ingresar(A , N);
 cout<<"\n\n\t\t  A = { ";
 Mostrar(A,N);
 cout<<" } \n\n";
 
 
 cout<<"\n\n\t  Segundo Conjunto : ";
 cin>>M;
 
 B = Ingresar(B , M);
 cout<<"\n\n\t\t  B = { ";
 Mostrar(B,M);
 cout<<" } \n\n";
 
 
 C = Interseccion( A , B , C , N , M );
 cout<<"\n\n\t\t  C = { ";
 Mostrar(C,contador);
 cout<<" } \n\n";
 
 cout<<endl<<endl;
 system("pause");
}

6 comentarios:

este programa esta trabajando con nodos?

esos programas tienen mas de 100000000000000 errores.

esos programas tienen mas de 1000000000000000000 errores!!!!!!!!!!!!!!!!!!!!!!!!!!!!

HOla. estoy estudiando programacion y me dejaron este mismo ejercicio pero todavia no entre a los que tu has avanzado, solo puedo usar el for y vectores, me podrias ayudar? veo que tu ejercicio esta bien y que corre en el dev c++ pero el mio noooo. pOr favor me ayudas???
/*Diseñar Programa tal que dado dos vectores (a y b) que
representan sendos conjuntos de números reales. determinar la interseccion con un vector
*/
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
float A[50],B[50],U[100],In[50];
int i, nA, nB, j=0, k=0;
cout<<" PROGRAMA QUE DETERMINA LA UNION Y LA INTERSECCION DE DOS CONJUNTOS"<>nA;
cout<<" Ingrese los elementos del conjunto (vector) A: "<>nB;
cout<<" Ingrese los elementos del conjunto (vector) B: "<<endl;
//Ingreso de los elementos del vector B:
for(i=1; i<=nB; i++)
{
cout<<" B["<<i<<"]= ";cin>>B[i];
}
//Hallando la Intersección:
for(i=1;i<=nA; i++)
{
for(j=1; i<=nB; j++)
{
if(A[i] == B[j])
{
k=k+1;
In[k]=A[i];

}//fin del if
}//fin del for j=1
} //fin del for i=1

//Impresion de la Interseccion...
cout<<"\n Imprimiendo la interseccion de los elementos:"<<endl;

cout<<" A ^ B = {";
for(i=1; i<=k; i++)
{
cout<<In[i]<<";";
}
system("PAUSE");
return EXIT_SUCCESS;
}

Publicar un comentario en la entrada

Agrega Un Cometario en —(•·÷[ Programando ]÷·•)—

Twitter Delicious Facebook Digg Stumbleupon Favorites More