Visual Basic - Ciclo do ... loop until? en que estoy fallando

Life is soft - evento anual de software empresarial
 
Vista:

Ciclo do ... loop until? en que estoy fallando

Publicado por Antonio (1 intervención) el 01/02/2007 18:21:16
Buenas Tardes, mi problema es que necesito seleccionar 4 numeros distintos de un conjunto de 8 posibles. Tengo otro programa el cual lo hace con 2 numeros solamente pero no se que puedo estar haciendo mal. los numeros se me repiten en algunas.

Creo q estoy fallando en el Loop Until

For i3 = 0 To 10
Do
Randomize
p1 = Int(Rnd * 8) + 1
p2 = Int(Rnd * 8) + 1
p3 = Int(Rnd * 8) + 1
p4 = Int(Rnd * 8) + 1
Loop Until (p1 <> p2 <> p3 <> p4)

List1.AddItem i3
List2.AddItem p1
List3.AddItem p2
List4.AddItem p3
List5.AddItem p4

next i

Les agradezco su ayudita si pueden.
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:Ciclo do ... loop until? en que estoy fallando

Publicado por ivan (1039 intervenciones) el 01/02/2007 18:57:38
Prueba poniendo RANDOMIZE arriba del For para que no se esté ejecutando varias veces

suerte
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:Ciclo do ... loop until? en que estoy fallando

Publicado por Javier (1 intervención) el 01/02/2007 18:58:56
Siguiendo tu estilo quedaria asi:

Do
Randomize
p1 = Int(Rnd * 8) + 1 '1
p2 = Int(Rnd * 8) + 1 '2
p3 = Int(Rnd * 8) + 1 '3
p4 = Int(Rnd * 8) + 1 '4
Loop Until (p1 <> p2 And p1 <> p3 And p1 <> p4 And p2 <> p3 And p2 <> p4 And p3 <> p4)
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:Ciclo do ... loop until? en que estoy fallando

Publicado por lolo (67 intervenciones) el 01/02/2007 19:56:48
mira te pongo una forma sencilla de generar 10 numeros aleatorios sin repeticion

Dim a(9) As Integer ' el subíndice de la matriz es cero
Dim i As Integer, j As Integer, x As Integer
Randomize
For i = 0 To 9
inicio:
' generamos un número aleatorio entre 8 y 20
x = Int((20 - 8 + 1) * Rnd + 8)
For j = 0 To i
' si el número ya existe en el array, lo descartamos
If x = a(j) Then GoTo inicio
Next j
' no existe, lo incluimos en la matriz
a(i) = x
' y lo añadimos al ListBox
List1.AddItem a(i)
Next i
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:Ciclo do ... loop until? en que estoy fallando

Publicado por Antonio (1 intervención) el 01/02/2007 21:10:56
Muchas gracias. me salio bien con el codigo de javier, pero lo de lolo me solucion otro problema que tenia en otra parte jeje. gracias a todos
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