Visual Basic - Necesito ayuda con listas aleatoria

Life is soft - evento anual de software empresarial
 
Vista:

Necesito ayuda con listas aleatoria

Publicado por Mikel rodrigo (1 intervención) el 29/08/2002 13:57:46
Quiero generar una lista de 16 elementos con 8 numeros aleatorios entre 1 y 8 . Cada numero se tiene que repetir solo una vez. Es decir, en la lista tiene que haber 16 numeros comprendidos entre el 1 y el 8 y cada uno tiene que estar repetido solo 1 vez. Este es el codigo que he escrito pero no funciona. Si alguien me pudiera ayudar se lo agradeceria mucho.
Private Sub Form_Load()
X = 0
Randomize
While lstOrden.ListCount < 16
MiValor = Int((8 * Rnd) + 1)
For i = 0 To lstOrden.ListCount - 1
If lstOrden.List(i) = MiValor Then
X = 1 + X
Else: X = 0

If X = 2 Then
i = lstOrden.ListCount - 1
End If
End If
Next i
If X = 0 Then
lstOrden.AddItem MiValor
End If
If X = 1 Then
lstOrden.AddItem MiValor
End If
Wend
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE: Necesito ayuda con listas aleatoria

Publicado por Mauro (67 intervenciones) el 30/08/2002 07:00:33
Te enviaré un ejemplo por email.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Necesito ayuda con listas aleatoria

Publicado por Mauro (67 intervenciones) el 30/08/2002 08:24:17
Intenté enviarme un mensaje pero tienes el correo lleno. Aqui tienes el codigo. Necesitas un control label(label1), un control CommandButton(Command1) y un control ListBox(Lstorden):

Private Sub Command1_Click()
lstOrden.Clear
Call Aleatoriedad(8, 2)
Label1.Caption = "Cantidad: " & lstOrden.ListCount
End Sub

Private Sub Form_Load()
Randomize
End Sub

Private Sub Aleatoriedad(Numero As Integer, Cantidad As Integer)
Dim Valor As Integer, i As Integer
Dim x As Integer, Limite As Integer
Limite = Numero * Cantidad
Do While lstOrden.ListCount < Limite
Again:
Valor = Int((Numero * Rnd) + 1)
For i = 0 To lstOrden.ListCount - 1
If Valor = lstOrden.List(i) Then
x = x + 1
If x = Cantidad Then
x = 0
GoTo Again
Exit For
End If
End If
Next i
lstOrden.AddItem Valor
Loop
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar