Modulo union, interseccion y diferencia de conjuntos
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using C = System.Console;
namespace Union_Inter_Diferencia
{
class Program
{
static void LeerArreglo(int[] A, int n)
{
for (int i = 0; i < n; i++)
{
Console.WriteLine("leer elemento {0}", i + 1);
A[i] = int.Parse(Console.ReadLine());
}
}
static void EscribirArreglo(int[] A, int n)
{
for (int i = 0; i < n; i++)
{
Console.Write("{0},", A[i]);
}
}
static bool existe(int[] A, int n, int elemento)
{
bool existeElemento;
existeElemento = false;
for (int i = 0; i < n; i++)
if (elemento == A[i])
existeElemento = true;
return existeElemento;
}
static void DUnion(int[] A, int nA, int[] B, int nB, ref int[] CUnion, ref int nUnion)
{
int[] union = new int[nA + nB];
int n = 0;
for (int i = 0; i < nA; i++)
{
union[i] = A[i];
n++;
}
for (int i = 0; i < nB; i++)
{
if (!existe(A, nA, B[i]))
{
union[n] = B[i];
n++;
}
}
CUnion = union;
nUnion = n;
}
static void DInterseccion(int[] A, int nA, int[] B, int nB, ref int[] CInterseccion, ref int nCInterseccion)
{
int[] inter = new int[50];
int n = 0;
//for (int i = 0; i < nA; i++)
//{
// inter[i] = A[i];
// n++;
//}
for (int i = 0; i < nB; i++)
{
if (existe(A, nA, B[i]))
{
inter[n] = B[i];
n++;
}
}
CInterseccion = inter;
nCInterseccion = n;
}
static void DDiferencia(int[] A, int nA, int[] B, int nB, ref int[] deferencia, ref int ndiferencia)
{
int[] Diferencia = new int[50];
int n = 0;
for (int i = 0; i < nA; i++)
{
if (!existe(B, nB, A[i]))
{
Diferencia[n] = A[i];
n++;
}
}
for (int i = 0; i < nB; i++)
{
if (!existe(A, nA, B[i]))
{
Diferencia[n] = B[i];
n++;
}
}
deferencia = Diferencia;
ndiferencia = n;
}
static void Main(string[] args)
{
int[] Union = new int[50];
int nUnion = 0;
int[] Intersec = new int[50];
int nIntesec = 0;
int[] Dif = new int[50];
int nDif = 0;
int[] A = new int[50];
int[] B = new int[50];
int nA, nB;
Console.Write(" numero de elementos del conjunto A :");
nA = int.Parse(Console.ReadLine());
Console.WriteLine("los elementos de A son : ");
LeerArreglo(A, nA);
Console.Write(" numero de elementos del conjunto B :");
nB = int.Parse(Console.ReadLine());
Console.WriteLine("los elementos de B son : ");
LeerArreglo(B, nB);
//determinando la union, interseccion y diferencia simetrica
DUnion(A, nA, B, nB, ref Union, ref nUnion);
DInterseccion(A, nA, B, nB, ref Intersec, ref nIntesec);
DDiferencia(A, nA, B, nB, ref Dif, ref nDif);
//escribir la union, interseccion y diferencia simetrica
Console.Write("la union es ");
EscribirArreglo(Union, nUnion);
Console.WriteLine();
Console.Write("la interseccion es ");
EscribirArreglo(Intersec, nIntesec);
Console.WriteLine();
Console.Write("la diferencia simetrica es :");
EscribirArreglo(Dif, nDif);
Console.ReadLine();
}
}
}