septiembre 20, 2010

Número aleatorios en C#

Para generar números aleatorios en C# tenemos la clase Random, para no complicarnos la vida: instanciamos un objeto desde esta clase y mediante el método Next() le asignamos un valor.
Si tenemos un TextBox y un Button, a este último le implementamos en el evento Click():
            Random r = new Random();
            int aleatorio = r.Next();
            textBox1.Text = aleatorio.ToString();
Una variación del método Next() nos permite valor máximo exclusivo (que se excluirá del resultado), el valor aleatorio obtenido es un entero menor al valor máximo permitido, por ejemplo:
            int aleatorio = r.Next(100);
Devolverá un entero aleatorio igual o mayor a cero (0) y menor a 100.
Si lo que necesitamos es un rango de valores que no inicie en 0 (cero), debemos pasar a Next() dos argumentos enteros, primero el valor mínimo (inclusivo) y luego el valor máximo (exclusivo), por ejemplo:
            int aleatorio = r.Next(200,300);
Devolverá un entero aleatorio igual o mayor a 200 y menor a 300.
Para trabajar con decimales, reemplazamos el método Net() por NextDouble(), este devuelve un valor aleatorio entre 0.0 y 1.0, notemos que es de tipo double y no entero::
            double aleatorio = r.NextDouble();
Y si lo que necesitamos es trabajar con cadenas, establecemos el rango ASCII que necesitemos usando dos parámetros (por ejemplo, de "A" que es 65, hasta "Z" que es 90) y convertimos el número generado a su equivalente en la tabla ASCII:
            int aleatorio = r.Next(65,91);
            textBox1.Text = Convert.ToChar(aleatorio).ToString();
Una explicación más clara de la clase Random y el método Next() en el sitio del Guille y el sitio de MSDN.

4 comentarios:

  1. Gracias profe pro la ayuda!!! =D
    Akabo de terminar el trabajo...

    ResponderBorrar
  2. Te la llevate fácil María.
    :D

    ResponderBorrar
  3. HOLA PROFESOR COMO ESTA , BUENO GRACIAS POR LA INFORMACION ME SIRVIO DE AYUDA . CHAU CUIDESEEEEEEE

    ResponderBorrar
  4. excelente la explicacion me sirvio de mucho, ojala siempre hubieran personas que ayudaran de esta manera asi podria compartir esos conocimientos a los demas

    ResponderBorrar

Tu comentario