programa de conjuntos

Iniciado por kenrigls, 10 Abril 2014, 11:01 AM

0 Miembros y 1 Visitante están viendo este tema.

kenrigls

como haria para que
un programa me resuelva la diferencia entre dos conjuntos
dado que el conjunto A es una cadena (text1) en donde estan todos los elementos separados por comas al igual que B (text2)

A={a,b,c,d,e,f}

B={a,c,d}

la diferencia A-B son todos los elementos que estan A pero que no esten B
y el resultado lo devuelva en otra cadena(text3) separados por comas

A-B={b,e,f}

y si no es molestia tambien la interseccion
como lo haria? :huh: mucho mejor si me contestan a la brevedad que mañana tengo una prueba!!! :-(

gracias por sus respuestas

Mad Antrax

Cita de: kenrigls en 10 Abril 2014, 11:01 AM
como haria para que
un programa me resuelva la diferencia entre dos conjuntos
dado que el conjunto A es una cadena (text1) en donde estan todos los elementos separados por comas al igual que B (text2)

A={a,b,c,d,e,f}

B={a,c,d}

la diferencia A-B son todos los elementos que estan A pero que no esten B
y el resultado lo devuelva en otra cadena(text3) separados por comas

A-B={b,e,f}

y si no es molestia tambien la interseccion
como lo haria? :huh: mucho mejor si me contestan a la brevedad que mañana tengo una prueba!!! :-(

gracias por sus respuestas

Aquí lo tienes. Se utiliza la función FILTER(), devuelve un array filtrando otro array existente:

Código (vb) [Seleccionar]
A=Array("a","b","c","d","e","f")
B=Array("a","c","d")


For i = 0 to Ubound(B)

A = Filter(A,B(i),False,1)

Next

For i = 0 to Ubound(A)

MsgBox A(i)

Next


El de inserción es más sencillo, así que te lo dejo para que lo pienses un poco.

Un saludo

REF: http://ss64.com/vb/filter.html
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

BlackZeroX

Algo similar a lo que Mad Antrax dice pero implementado en una función...

Código (vb) [Seleccionar]

Option Explicit

Private Sub Form_Load()
    MsgBox "-->" & DiferenciaArray(" a,  b,  c ,d, e, f  ", "  a, b, c ") & "<--"
End Sub

Function DiferenciaArray(ByRef s1 As String, ByRef s2 As String, Optional ByVal separador As String = ",") As Variant
Dim A_Split As Variant
Dim B_Split As Variant
Dim i       As Long

    A_Split = Split(Replace(s1, " ", ""), separador)
    B_Split = Split(Replace(s2, " ", ""), separador)
   
    For i = LBound(B_Split) To UBound(B_Split)
        A_Split = Filter(A_Split, B_Split(i), False, vbTextCompare)
    Next
   
    DiferenciaArray = Join(A_Split, separador)
End Function


Dulces Lunas!¡.
The Dark Shadow is my passion.