Realizar las operaciones de conjunto (Unión y Intersección) utilizando arreglos en C


El presente programa esta hecho con la programación orientado a objeto:
  • El numero de datos de cada conjunto son ingresados por teclado 

#include <iostream>
using namespace std;
#define MAX 10
class conjuntos
{
 private:
  int A[MAX],B[MAX],inter[MAX];
  int ntA,ntB;
 public:
  conjuntos();
  void establecerTerminos(int ,int);
  void leer();
  void presentarArreglos();
  void Union();
  void Intercepcion();
};
conjuntos::conjuntos()
{
 ntA=0;
 ntB=0;
}
void conjuntos::establecerTerminos(int x , int y)
{
 if(x<10&&x>0 && y<10 && y >0)
  ntA=x;
  ntB=y;
}
void conjuntos::leer()
{
 for(int i=0;i<ntA;i++)
 {
     cout<<"  A";
  cout<<" Elemento [ " <<i+1<< " ] ";
  cin>>A[i];
 }
 cout<<" ___________________________________\n";
  for(int i=0;i<ntB;i++)
 {
     cout<<"  B";
  cout<<" Elemento [ " <<i+1<< " ] ";
  cin>>B[i];
 }
}

void conjuntos::presentarArreglos()
{
 cout<<"\n A \n";
 for(int i=0;i<ntA;i++)
        cout<<A[i]<<" ";
 cout<<"\n B \n";
 for(int i=0;i<ntB;i++)
   cout<<B[i]<<" ";
 cout<<"\n ";
}
void conjuntos::Union()
{
     cout<<"Union\n";
     int cont=0 ;
 for(int i=0;i<ntA;i++){
   cout<<A[i]<<"  ";
 }
  for(int i=0;i<ntB;i++)
    {
     cont=0;
  for(int j=0;j<ntA;j++){
   if(B[i]==A[j])
   {
    cont++;
   }
  }
  if(cont==0)
  cout<<B[i]<<"  ";
    }
}
void conjuntos::Intercepcion()
{
  cout<<"\nIntercepcion\n";
 for(int i=0;i<ntA;i++)
    {
  for(int j=0;j<ntB;j++){
   if(A[i]==B[j])
   {
    cout<<A[i]<<"  ";
   }
  }
    }
 }


int main(void)
{
 int num1,num2;
 conjuntos ob;
 cout<<"Ingrese el numero de terminos de A ";
 cin>>num1;
 cout<<"Ingrese el numero de terminos de B ";
 cin>>num2;
 ob.establecerTerminos(num1,num2);
 ob.leer();
 //ob.presentarArreglos();
 ob.Union();
 ob.Intercepcion();
}


Related Posts

0 Comments: