Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Programación: Generar números aleatorios random con Visual Studio .Net VB .NET
Visual Studio .NET


Tutorial donde mostramos cómo generar números aleatorios (random) desde una aplicación desarrollada con Microsoft Visual Basic .Net de Microsoft Visual Studio .Net. Mostramos cómo generar números aleatorios siempre distintos en VB.NET.



 

Cómo generar números aleatorios (random) en Visual Basic .NET

Visual Basic .Net permite el empleo de la antigua instrucción Randomize y de la función Rnd con el objeto de mantener la compatibilidad con versiones anteriores, pero los diseñadores profesionales de .NET deberán utilizar la clase System.Random. Con esta clase se podrá configurar la semilla para la generación del número aleatorio utilizando el método constructor de esta clase:

Dim numeroAleatorio As New Random()

El argumento de la función anterior, de añadirlo, debe ser un entero de 32 bits:

Dim numeroAleatorio As New Random(1234)

Si especificamos un número en el argumento se generará un solo número aleatorio con:

Dim numeroAleatorio As New Random(1234)
numeroAleatorio.Next

En cambio, si no especificamos argumento, se generá una secuencia de números aleatorios (uno cada vez que se llame a "numeroAleatorio.Next") distintos hasta completar la secuencia de números para la semilla actual:

Dim numeroAleatorio As New Random()
numeroAleatorio.Next

Con la clase anterior, un ejemplo de uso para mostrar los números aleatorios generados en un cuadro de texto en VB .Net podría ser:

    Private Sub btRandom_Click(sender As Object, e As EventArgs) Handles btRandom.Click
        Dim numAleatorio As New Random()

        txtNumero.Text = System.Convert.ToString(numAleatorio.Next)
    End Sub

Si queremos que el valor devuelto (número aleatorio) se encuentre en el rango deseado podremos usar el siguiente ejemplo que obtendrá valores aleatorios entre 100 y 1000:

Dim numAleatorio As New Random()
Dim valorAleatorio As Integer = numeroAleatorio.Next(100, 1000)

Si queremos obtener un número aleatorio en coma flotante (double) usaremos la función NextDouble:

Dim numAleatorio As New Random()
Dim valorAleatorio As Double = numeroAleatorio.NextDouble

Si queremos rellenar una matriz de Bytes con números aleatorios podremos usar el método NextBytes. Un ejemplo para obtener una matriz de 1000 valores aleatorios:

Dim numAleatorio As New Random()
Dim buffer(1000) As Byte
numAleatorio.NextBytes(buffer)

 

Cómo generar números aleatorios (random) en Visual Basic .NET siempre distintos cada vez que se ejecute la aplicación

En el caso anterior, siempre que se pase de un determinado número de semilla se obtendrá la misma secuencia de números aleatorios. Para obtener una secuencia de números aleatorios distintos cada vez que se ejecute la aplicación, se deberá hacer que la semilla dependa de la hora actual del equipo. En Visual Basic 6 se utilizaba la siguiente instrucción:

Randomize Timer

Para el caso de Visual Basic .NET se utilizará:

Dim numeroAleatorio As New Random(CInt(Date.Now.Ticks And Integer.MaxValue))

Un ejemplo de generación de números aleatorios siempre distintos en VB .NET:

  Private Sub btAleatorioDistinto_Click(sender As Object, e As EventArgs) _
            Handles btAleatorioDistinto.Click
        Dim numAleatorio As New Random(CInt(Date.Now.Ticks And Integer.MaxValue))

        txtAleatorioDistinto.Text = System.Convert.ToString(numAleatorio.Next)
    End Sub
 

AjpdSoft Números Aleatorios VB.NET

A continuación mostramos el código fuente completo de la aplicación de ejemplo para generar números aleatorios AjpdSoft Números Aleatorios VB.NET:

AjpdSoft Números Aleatorios VB.NET

Public Class formNumAleatorios

    Private Sub btAleatorioDistinto_Click(sender As Object, e As EventArgs) _
            Handles btAleatorioDistinto.Click
        Dim numAleatorio As New Random(CInt(Date.Now.Ticks And Integer.MaxValue))

        txtAleatorioDistinto.Text = System.Convert.ToString(numAleatorio.Next)
    End Sub

    Private Sub btAleatorioArgumento_Click(sender As Object, e As EventArgs) _
            Handles btAleatorioArgumento.Click
        Try

            Dim numAleatorio As New Random(System.Convert.ToInt32(txtArgumento.Text))

            txtNumeroAleatorioArgumento.Text = System.Convert.ToString(numAleatorio.Next)
        Catch ex As Exception
            MsgBox("Debe indicar un número válido en el argumento.", _
                   MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
            txtArgumento.Focus()
        End Try
    End Sub

    Private Sub btAleatorioSinArgumento_Click(sender As Object, e As EventArgs) _
            Handles btAleatorioSinArgumento.Click
        Dim numAleatorio As New Random()

        txtAleatorioSinArgumento.Text = System.Convert.ToString(numAleatorio.Next)
    End Sub

    Private Sub LinkLabel1_LinkClicked(sender As Object, e As _
             LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        System.Diagnostics.Process.Start("http://www.ajpdsoft.com")
    End Sub
End Class

Su descarga gratuita:

 

Artículos relacionados

  

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.


Anuncios


Enviado el Viernes, 21 febrero a las 00:35:12 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A