Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: bautistasbr en 11 Julio 2006, 09:37 am



Título: Problema con generador de numeros
Publicado por: bautistasbr en 11 Julio 2006, 09:37 am
Estoy haciendo un generador de numeros y letras para q salgan al hazar.Las a puesto un timer para q se generen solos,pero el problema es q siempre genera los mismos.Mi codigo es este

Private Sub Command1_Click()
With Text1
.Text = "": .Tag = 1
While .Tag <= 14
.Text = .Text & Int((9 * Rnd) + 1) ' Genera un valor aleatorioentre el 1 y el 9
.Tag = .Tag + 1
Wend
End With

End Sub

Private Sub Timer1_Timer()
Call Command1_Click     'interval 20'
End Sub

Private Sub Timer2_Timer()
Timer1.Enabled = False
Timer2.Enabled = False  'interval 5000'
End Sub

como puedo hacer para q no me genere siempre los mismos numeros?? Como puedo añadirle letras?

Gracias


Título: Re: Problema con generador de numeros
Publicado por: BenRu en 11 Julio 2006, 10:03 am
El de los numeros es muy simple...para hacer el de letras puedes hacer dos cosas:
1. Hacer un case incluyendo todas las letras que quieras
2. Pasar el ejemplo que te voy a poner, en vez de salirte el numero, que te salga como ascii "equivalencia"

Te pondre la primera...si te interesa la segunda, me lo dices y te lo  codeo.

Código:
'Numeros y letras aleatorias by BenRu


Private Sub Command1_Click()
    Dim Num As Byte
    Num = Int(255 - 1) * Rnd + 0
    Text1.Text = Num
End Sub

Private Sub Command2_Click()
Dim AlgorritmoLetra As Integer
Dim AlgorritmoLetra2 As String

    AlgorritmoLetra = Int((4 * Rnd) + 1) 'Cambia el 4 por el numero de Case que vallas a poner
   
    Select Case AlgorritmoLetra
        Case 1
            AlgorritmoLetra2 = "a"
        Case 2
            AlgorritmoLetra2 = "b"
        Case 3
            AlgorritmoLetra2 = "c"
        Case 4
            AlgorritmoLetra2 = "d"
        End Select
Text2.Text = AlgorritmoLetra2
End Sub

Private Sub Form_Load()
Randomize
End Sub



Título: Re: Problema con generador de numeros
Publicado por: bautistasbr en 11 Julio 2006, 10:39 am
me gusta el code,pero no hay una forma de unir los numeros con las letras en  el mismo textbox??

otra cosa.Hay alguna posibilidad de q se repitan las cadenas generadas?
porq no quiero q se repitan


Título: Re: Problema con generador de numeros
Publicado por: BenRu en 11 Julio 2006, 10:54 am
me gusta el code,pero no hay una forma de unir los numeros con las letras en  el mismo textbox??

Donde estan los Case tambien puedes meter numeros, signos o lo que quieras.

Citar
otra cosa.Hay alguna posibilidad de q se repitan las cadenas generadas?

Si, simplemente son numeros aleatorios


Título: Re: Problema con generador de numeros
Publicado por: bautistasbr en 11 Julio 2006, 11:19 am
no hay alguna forma para q salgan todas a la vez pero tambien con orden aleatorio?


Título: Re: Problema con generador de numeros
Publicado por: soplo en 11 Julio 2006, 20:14 pm
Hola
Como tú entenderás para obtener números aleatorios no se hace "magia". Hay un algoritmo que calcula los números.

Ese algoritmo calcula los números basándose en algo. Si parte de la misma base obtiene los mismos números. Por eso debes decir que para hacer el algoritmo parta de algo diferente cada vez.

La base numérica que se utiliza para partir el algoritmo se cambia con la orden randomize.
Código:
randomize (numero)

Si cambias de número cambias de valores. Con el mismo número siempre los mismos valores.

Por eso la costumbre suele ser partir del número de serie de la fecha o cualquier cosa semejante
Código:
randomize now
por ejemplo para que parta con el número correspondiente a la fecha/hora actual.

 ;D


Título: Re: Problema con generador de numeros
Publicado por: bautistasbr en 11 Julio 2006, 22:41 pm
os doy las gracias a todos por vuestros consejos.Me sirven de gran ayuda

Gracias