Desarrollar un programa que permita realizar las operaciones de unión, intersección y
diferencia entre conjuntos. Los conjuntos estarán representados por listas. El programa
deberá presentar un menú como se detalla a continuación y al ingresar el valor, se ejecutará
la opción elegida.
Ej: de presentación de menú en pantalla
1. CARGAR CONJUNTOS
2. UNION
3. INTERSECCION
4. DIFERENCIA (A-B)
5. DIFERENCIA SIMÉTRICA
6. SALIR
Ingrese el valor de la opción:
Para resolver la opción elegida se deberá invocar, por cada opción, a una función que la
resuelva:
cargarConjuntos: Función que recibe por parámetro dos listas vacías y realiza la carga de
cada una. Esta función llamará a la función cargarLista similar a la realizada en el ejercicio
anterior, “pero con la siguiente modificación”: cargarLista recibirá por parámetro la lista y no
la retornará. (aclaración: Cada lista cargada no deben tener valores repetidos).
union: Función que retorna una nueva lista con la unión de las dos listas pasada por
parámetro (aclaración: en la nueva lista no debe haber valores repetidos).
interseccion: Función que retorna una nueva lista con la intersección de las dos listas
pasada por parámetro. (aclaración: en la nueva lista no debe haber valores repetidos).
diferencia: Función que retorna una nueva lista con la diferencia de conjuntos de las dos
listas pasada por parámetro. Se realizará la diferencia eliminado sólo aquellos valores de la
primera lista que se encuentren el la segunda lista. (aclaración: en la nueva lista no debe
haber valores repetidos).
diferenciaSimetrica: Función que retorna una nueva lista con la diferencia simétrica de
conjuntos de las dos listas pasada por parámetro. Se realizará la diferencia simétrica
cargando en la nueva lista sólo aquellos elementos que no se encuentran en ambas listas
(aclaración: en la nueva lista no debe haber valores repetidos).
ejemplo de salidas:
Sean los conjuntos:
A = {1, 7, 3, 5}
B = {2, 8, 5, 9, 7}
Las operaciones deberían arrojar los siguientes resultados:
Unión = {1, 2, 3, 5, 7, 8, 9}
Intersección = {5, 7}
Diferencia (A-B) = {1, 3}
Diferencia Simétrica = {1, 2, 3, 8, 9}
CODIGO:
def validar(n):
if n>0:
return True
else:
return False
def estaEnLista(n,l):
return n in l
def cargarLista(l):
num=int(input('ingresar numeros, o 0 para terminar.\n'))
while num!=0:
if validar(num):
if not estaEnLista(num,l):
[Link](num)
else:
print('Error numero repetido.\n', end=' ')
else:
print('Error el numero debe ser positivo.\n', end=' ')
num=int(input())
def cargarConjuntos(l1,l2):
l1=cargarLista(l1)
l2=cargarLista(l2)
def union(l1,l2):
lstU=[]
for i in l1:
[Link](i)
for i in l2:
if i not in l1:
[Link](i)
return lstU
def interseccion(l1,l2):
lstI=[]
for i in range(len(l1)):
if l1[i] in l2:
[Link](l1[i])
return lstI
def diferencia(l1,l2):
lstD=[]
for i in range(len(l1)):
if l1[i] not in l2:
[Link](l1[i])
return lstD
def diferenciaSimetrica(l1,l2):
lstDS=[]
for i in range(len(l1)):
if l1[i] not in l2 and l1[i] not in lstDS:
[Link](l1[i])
for i in range(len(l2)):
if l2[i] not in l1 and l2[i] not in lstDS:
[Link](l2[i])
return lstDS
def main():
print('1. CARGAR CONJUNTOS')
print('2. UNION')
print('3. INTERSECCION')
print('4. DIFERENCIA (A-B)')
print('5. DIFERENCIA SIMÉTRICA')
print('6. SALIR')
op= int(input('Ingrese el valor de la opción:'))
lst1=[]
lst2=[]
while op!=6:
if op==1:
lst1=[]
lst2=[]
cargarConjuntos(lst1, lst2)
print('la lista 1 es: {}'.format(lst1))
print('la lista 2 es:{}'.format(lst2))
if op==2:
print(union(lst1,lst2))
elif op==3:
print(interseccion(lst1,lst2))
elif op==4:
print(diferencia(lst1,lst2))
elif op==5:
print(diferenciaSimetrica(lst1,lst2))
op= int(input('Ingrese el valor de la opción:'))
main()