Mensajes [1] - Enviado el Viernes 02 de Marzo de 2007 a las 15:11hs
Tengo una La siguiente estructura:
Private Type ItemCaja
BolaRoja as boolean
BolaVerde as boolean
BolaAzul as boolean
end type
y el siguiente vector:
Cajas(1 to 3) as ItemCaja
Como puede ver, la idea es que ItemCaja pueda tomar diferentes valores booleanos!
El usuario es quien (mediante CheckBox) tilda en True cada ItemCaja, dado que que
el usuario predice: "la Caja 1 creo que va a tener una bola roja o verde... azul seguro que no".
Lo mismo hace con las otras cajas, va prediciendo que Bola puede guardar la Caja...
Ejemplo:
Caja 1, puede tener BolaRoja ? BolaVerde
Cajas(1).BolaRoja = True
Cajas(1).BolaVerde = True
Cajas(1).BolaAzul = False
Caja 2, cree que solo va a tener BolaRoja
Cajas(2).BolaRoja = True
Cajas(2).BolaVerde = False
Cajas(2).BolaAzul = False
Caja 3, cree que solo va a tener BolaAzul o BolaVerde
Cajas(2).BolaRoja = False
Cajas(2).BolaVerde = True
Cajas(2).BolaAzul = True
El programa deber?a mostrar en un textbox o en un archivo, todas
las posibles combinaciones que se pueden dar.
Siguiendo el Ejemplo:
Caja1 = Roja Caja2 = Roja Caja3 = Verde
Caja1 = Roja Caja2 = Roja Caja3 = Azul
Caja1 = Verde Caja2 = Roja Caja3 = Verde
Caja1 = Verde Caja2 = Roja Caja3 = Azul
El GRAN problema =) por lo cual estoy aqu?... es que no se trata de 3 Cajas! Fue solo un ejemplo =(
Seguramente el sistema tenga 20 Cajas!
No se si hacer ciclos anidados o bien funciones recursivas.
Alguien tiene alguna idea y me puede ayudar?
Gracias,
Mensajes [1] - Enviado el Viernes 23 de Marzo de 2007 a las 17:36hs
Hola!
Yo usaria un algoritmo recursivo, por ejemplo :
Private Type ItemCaja
BolaRoja As Boolean
BolaVerde As Boolean
BolaAzul As Boolean
End Type
Const MaxLevel =?20
Const vRed = "1"
Const vGreen = "2"
Const vBlue = "3"
Dim Caja(1 To 20) As ItemCaja
Private Sub Recorrer(levelNow As Integer, strCombinacion As String)
If levelNow <> MaxLevel Then
If Caja(levelNow).BolaAzul = True Then
Recorrer levelNow + 1, strCombinacion & vBlue
End If
If Caja(levelNow).BolaVerde = True Then
Recorrer levelNow + 1, strCombinacion & vGreen
End If
If Caja(levelNow).BolaRoja = True Then
Recorrer levelNow + 1, strCombinacion & vRed
End If
Else
If Caja(levelNow).BolaAzul = True Then
AppendFile strCombinacion & vBlue
End If
If Caja(levelNow).BolaVerde = True Then
AppendFile strCombinacion & vGreen
End If
If Caja(levelNow).BolaRoja = True Then
AppendFile strCombinacion & vRed
End If
End If
End Sub
AppendFile es una funcion que guardaria en un archivo la combinacion que se le pasa como parametro, por ejemplo para? "Caja1 = Roja Caja2 = Roja Caja3 = Verde " strcombinacion tendria el valor "112", la funcion append file transformaria 112 a "Caja1 = Roja Caja2 = Roja Caja3 = Verde " y guardaria esta en un archivo.
?Se entendio? porque no soy muy bueno explicando :p.
Espero que te sirva.
?
?
?