Tutorial VB6 (RND)



  • **Hola muchachos.
    En este tuto, les voy a enseñar a usar la función RND (random), en un textbox.

    Primero, en un ejecutable, deben poner los siguites items: Textbox y un commandbutton. Desde luego pueden usar un Picture, o label. Por supuesto, deben cambiarle la función del label, para que ejecute la acción al clickearlo.

    En esta foto utilizo un Picture

    Luego, doble click en el item (command button, label o picture), y ponen el siguiente código:

    Private Sub Image1_Click()
    sel = Int(Rnd * 6)
    Select Case sel
    Case 1
    Text1.Text = 1
    Case 2
    Text1.Text = 2
    Case 3
    Text1.Text = 3
    Case 4
    Text1.Text = 4
    Case 5
    Text1.Text = 5
    Case 6
    Text1.Text = 6
    End Select
    End Sub
    
    

    Cuando lo ejecutan, verán que cambian los números aleatoriamente.

    Espero que les guste.
    Nos vemos, y sigan posteando.**



  • **Claro pero ahí estas poniendo un ejemplo de la aparición en un Textbox con respecto a lo que da el random, yo creo que lo mejor sería armar una función en un módulo y de ahí en más usarla en todas las partes del proyecto.
    Quedaría así:

    Function NumAleatorio (Menor as Long, Mayor as Long) as Long

    Randomize
    NumAleatorio = Int((Mayor + 1 - Menor) * Rnd + Menor)

    End Function

    Entonces a la hora de usarlo sería más o menos así. Declaramos una variable y le queremos dar un valor aleatorio entre 1 y 9.

    Dim Variable as Byte
    Variable = NumAleatorio(1, 9)

    Y para probarlo en tiempo de ejecucion con play lo ponemos en un timer y le agregamos:

    Debug.Print Variable

    Saludos.**



  • @Juanpa:

    **Claro pero ahí estas poniendo un ejemplo de la aparición en un Textbox con respecto a lo que da el random, yo creo que lo mejor sería armar una función en un módulo y de ahí en más usarla en todas las partes del proyecto.
    Quedaría así:

    Entonces a la hora de usarlo sería más o menos así. Declaramos una variable y le queremos dar un valor aleatorio entre 1 y 9.

    Y para probarlo en tiempo de ejecucion con play lo ponemos en un timer y le agregamos:

    Saludos.**

    Gracias. Con esto ayudás a mejorar.
    No muchos pasan por esta sección.
    Saludos.



  • Hola Hashashins (alguna manera mas cortita de llamarte? me da paja escribir xD)

    Buen tutorial y muy interesante, pero aprovecho para corregirte una cosita como para pulir nomas y aclarar un poco.
    De la manera que usas el random, devuelve tambien el valor "0" (que no lo pusiste en tu Select Case, ni tampoco usaste el Case Else) y el "6" no lo devuelve nunca, asi que sobraria en tu select case.

    Aclaraciones

    • El RND es una funcion que devuelve numeros aleatorios entre 0 y 1 (ejemplo: 0.494768), al multiplicar eso por 6 (usando tu ejemplo) los resultados posibles estarian entre el ( 0.000001 * 6 ) y el (0.999999 * 6) es decir que si utilizamos el INT(RND * 6) daria valores entre 0 y 5.
      Para que el uso de tu Case este correcto, deberias sumarle 1 al final. " Int ( rnd * 6 ) + 1 "

    • Siempre que se trabaja con Rnd hay que llamar (preferentemente en el Load) a la funcion Randomize, porque sino el programa seguiria siempre el mismo orden de randoms, ya que esta basado en un algoritmo fijo que usa como partida inicial una "semilla", al usar el Randomize estamos cambiandole esa partida inicial.

    Creo que con eso ya estaria bien, si queres corregite el primer post asi queda mas completito.

    Saludos 😃



  • @KennY®:

    Hola Hashashins (alguna manera mas cortita de llamarte? me da paja escribir xD)

    Buen tutorial y muy interesante, pero aprovecho para corregirte una cosita como para pulir nomas y aclarar un poco.
    De la manera que usas el random, devuelve tambien el valor "0" (que no lo pusiste en tu Select Case, ni tampoco usaste el Case Else) y el "6" no lo devuelve nunca, asi que sobraria en tu select case.

    Aclaraciones

    • El RND es una funcion que devuelve numeros aleatorios entre 0 y 1 (ejemplo: 0.494768), al multiplicar eso por 6 (usando tu ejemplo) los resultados posibles estarian entre el ( 0.000001 * 6 ) y el (0.999999 * 6) es decir que si utilizamos el INT(RND * 6) daria valores entre 0 y 5.
      Para que el uso de tu Case este correcto, deberias sumarle 1 al final. " Int ( rnd * 6 ) + 1 "

    • Siempre que se trabaja con Rnd hay que llamar (preferentemente en el Load) a la funcion Randomize, porque sino el programa seguiria siempre el mismo orden de randoms, ya que esta basado en un algoritmo fijo que usa como partida inicial una "semilla", al usar el Randomize estamos cambiandole esa partida inicial.

    Creo que con eso ya estaria bien, si queres corregite el primer post asi queda mas completito.

    Saludos 😃

    Dale, gracias.
    Cuando pueda, lo corrijo.
    Gracias por volver a la sección.
    Saludos.



  • No pasa nada, no creo "volver" pero si cada tanto voy a pasar a ver como andan las cosas 😃



  • Upaso. 🙂 desappiar


Log in to reply