Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

aleatorios no repetidos

Estas en el tema de aleatorios no repetidos en el foro de Visual Basic clásico en Foros del Web. el programa siguiente saca numeros 144 numeros aleatorios, los escribe en un fichero de texto, lo que no he conseguido es que no me salgan ...
  #1 (permalink)  
Antiguo 21/12/2010, 03:19
 
Fecha de Ingreso: diciembre-2010
Mensajes: 9
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta aleatorios no repetidos

el programa siguiente saca numeros 144 numeros aleatorios, los escribe en un fichero de texto, lo que no he conseguido es que no me salgan repetidos. He provado con un vector e ir comprovando, pero no me sale el vector bien, me da errores, alguien me puede decir como hacerlo???

Codigo (es solo una parte, pero teneis suficiente ;)):

Private Sub Command1_Click()
Randomize
aleatorio:
Do
Numero = Int((644 * Rnd) + 1)
If Numero > 144 Then GoTo aleatorio
Exit Do
Loop
aleatorio.Text = Numero
End Sub



Private Sub Command3_Click()

Open "C:\...\...\...\...\numeros.txt" For Output As 1

Rem ............ primer
Colr = &H0&
numeroveces = Int(144 * Val(Text3.Text) / 100)
For x = 1 To numeroveces



Command1_Click
Write #1, aleatorio.Text, Colr

Next x
Close #1
  #2 (permalink)  
Antiguo 21/12/2010, 03:33
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: aleatorios no repetidos

Hola, como en muchas ocasiones Recursos VB nos saca de dudas, te dejo el enlace con la función que genera Números Aleatorios no repetidos que espero te sirva.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 21/12/2010, 03:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 9
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: aleatorios no repetidos

jeje, de ahí es de donde lo he estado mirando, jeje, pero no me sale el vector, no se si es que no lo pongo donde toca, pero me falla. gracias por la rapidez de tu respuesta. seguiré intentadolo a ver....
  #4 (permalink)  
Antiguo 21/12/2010, 05:49
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: aleatorios no repetidos

Vamos a ver si consigo alegrarte las fiestas con este arreglo. Ojo que puedo haberme equivocado con las prisas.

Private Sub Command1_Click()
Dim Matriz() As Single, Indice As Integer
Matriz = ArrayAleatorio(10, 100, 200)
For Indice = 1 To 10
Print Matriz(Indice)
Next
End Sub

Código vb:
Ver original
  1. Function ArrayAleatorio(Numero As Long, Desde As Long, Hasta As Long) As Single()
  2.   ' Devuelve un Array desde 1 hasta Número de valores azar
  3.  ReDim tmpArray(Numero) As Single
  4.   Dim Indice As Long, Cuantos As Long, NumeroRnd As Single
  5.   Randomize Timer
  6.   Do While Cuantos < Numero
  7.     NumeroRnd = Int((Hasta - Desde + 1) * Rnd + Desde)
  8.     For Indice = 1 To Cuantos
  9.       If tmpArray(Indice) = NumeroRnd Then GoTo LoTengo
  10.     Next
  11.     Cuantos = Cuantos + 1
  12.     tmpArray(Cuantos) = NumeroRnd
  13. LoTengo:
  14.   Loop
  15.   ArrayAleatorio = tmpArray
  16. End Function
Pruebalo y comenta.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: repetidos, aleatoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:38.