Suscribirse al Feed
24Jul

Números aleatorios en C#

La generación de números aleatoreos es una de las prácticas más importantes en cualquier lenguaje de programación, sobre todo cuando deseamos desarrollar juegos, por ejemplo. Para usar números aleatorios en C# podemos utilizar la clase Random del namespace System, de la siguiente manera:


Random objeto = new Random();
int numero = objeto.Next();

El método Next de la clase Random genera y devuelve un número aleatorio entre 0 y la constante Int32.MaxValue (2,147,483,647). El número es generado después de (como decía mi profesora de matemáticas) complejos procesos matemáticos, y como en casi todos los lenguajes necesitan de una semilla (seed) para ser generados, que por defecto es la hora del sistema.

Aún así, muchas veces necesitamos que el número sea generado en un rango específico de valores. Por ejemplo, para una aplicación que simule el lanzamiento de un dado de seis caras necesitamos generar números entre 1 y 6. Para lograr esto, el método Next puede recibir además un entero que indica el rango máximo del número aleatorio. Por ejemplo, el código:


Random objeto = new Random();
int numero = objeto.Next(6);

generaría un número aleatorio entre 0 y 7 (pero no 6), es decir, seis posibles números. Pero, si desearamos algún rango más exacto, podríamos hacer algo como:

Random objeto = new Random();
int numero = objeto.Next(1, 7);

lo que generaría números entre 1 y 7 (pero no 7), de nuevo seis números posibles.

Ejemplo completo...

En el siguiente ejemplo se utilizará la clase Random para generar una serie de números aleatorios cada vez que se presiona un botón:

pantallazo numero aleatorio

El código lo pongo para su descarga abajo, ya que lo hice con Gtk# usando MonoDevelop, y sería engorroso poner todo el código. Así que solo pondré la parte del código que nos interesa:

    private Random obj = new Random();
    //Método ejecutado al presionar el botón
    protected virtual void generar_Click (object sender, System.EventArgs e)
    {
        etiqueta.Text = "";
        for(int i = 0; i < 4 ; i++)
        {
            for(int j = 0; j < 4 ; j++)
                etiqueta.Text += obj.Next(1, 10) +"\t\t";
            etiqueta.Text += "\n\n";
        }
    }

Enlaces y descargas

05May

Aplicaciones con GUI en .NET: ¿Gtk# o Windows Forms?

Hace tiempo discutía con algunas personas la mejor manera de usar Mono tanto en el escritorio Linux como en Windows. Me refiero al momento de escoger entre Windows Forms y Gtk#, para desarrollar aplicaciones con interfaz gráfica. Personalmente pienso que la mejor opción es, inclinándome hacia el lado del software libre, usar Mono + Gtk#. Claro, eso también depende de tus gustos como desarrollador y, más importante aún, de las necesidades del proyecto a realizar.

Lo que quiero enseñarles en esta entrada es cómo se pueden tomar diferentes caminos, y aclarar algunas dudas que me han planteado ciertos lectores. Siendo así, vamos a tomar como ejemplo a dos programas sencillos: el primero usando Gtk# y corriendo tanto en Linux como Windows, y el otro usando Windows Forms corriendo tanto en Windows como Linux.

Desarrollando y ejecutando aplicaciones Gtk# y Windows Forms usando Mono

Antes de comenzar con los ejercicios, veamos qué necesitamos para desarrollar y ejecutar aplicaciones que usen Gtk# y Windows Forms. Es necesario (obviamente) tener dicho framework instalado; afortunadamente, la mayoría de las distribuciones Gnu/Linux actuales tienen los paquetes necesarios en los repositorios, e incluso vienen con lo necesario para ejecutar aplicaciones desarrolladas con Mono (como Tomboy, Fspot o Banshee). Para compilar aplicaciones C# para mono es necesario utilizar el CSharp Compiler (cms).

También, es posible descargar mono para los más importantes sistemas operativos, incluyendo por supuesto sistemas Microsoft Windows. Para tal caso es posible descargar una versión completa (Mono + Gtk# + XSP), o tan solo el intérprete + Gtk# para un Framework .NET ya instalado sobre el ordenador.

Código del programa que usa Gtk#

Leer el resto de la entrada...

17Mar

Publicada la versión 1.0 de MonoDevelop

El equipo de desarrollo de MonoDevelop ha liberado la versión 1.0 de este IDE para Mono, un implementación libre de .NET para plataformas Linux y MacOSX. Sin duda una buena noticia para los usuarios de esta plataforma, y en general para la comunidad de software libre.

AnuncioVer las características de este IDE

16Dic

Breve introducción al MonoDevelop

Desarrollo de aplicaciones .NET usando el Entorno de Desarrollo Integrado: MonoDevelop

monodevelop

Continuando con el tema del desarrollo de aplicaciones en la plataforma .NET, específicamente usando el lenguaje de programación C#, les mostraré un ejemplo del uso de MonoDevelop, un IDE de programación especial para trabajar con la plataforma libre .NET: Mono.

La idea de este documento es mostrar algunas características importantes para el desarrollo de aplicaciones usando este IDE de programación, para lo cual vamos a crear paso a paso una aplicación muy bí¡sica, en donde aprenderemos a implementar clases y a referenciar librerías.

Lo primero es descargar el MonoDevelop. Puedes descargar las fuentes y compilarlas tu mismo, o buscar algún paquete para tu distribución (.deb, .rpm, etc.), aunque si no quieres liarte tal vez querrás usar openSuse, que te permite instalarlo desde los CDs de instalación. Una vez instalado, lo ejecutamos y veremos algo como lo siguiente:

Como puedes ver su interfaz es limpia y Leer el resto de la entrada...

10Dic

C# y .NET

C# (pronunciado "si sharp" o C sostenido) es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA e ISO.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma.NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes (más notablemente de Delphi y Java). C# fue diseñado para combinar el control de lenguajes de bajo nivel como C y la velocidad de programación de lenguajes de alto nivel como Visual Basic.

Ejemplos, ejercicios C#, código fuente

Nos toca trabajar un poquito con Microsoft

La idea de ésta sección es recopilar bastante información, ejemplos, y código fuente acerca de C#. Este blog centra sus temas en Gnu/Linux y Programación... y hasta el momento no habíamos tocado más que Java. Ahora que voy a tratar C#, es imposible no hablar acerca de Microsoft e incluso mostrar ejemplos de programación con productos para Windows como Microsoft Visual Studio.

Afortunadamente el mundo de Gnu/Linux posee una comunidad activa e inquieta, y contamos con un excelente proyecto llamado Mono:

Mono es el nombre de un proyecto de código abierto iniciado por Ximian y actualmente impulsado por Novell (tras su adquisición de Ximian para crear un grupo de herramientas libres, basadas en GNU/Linux y compatibles con .NET según lo especificado por el ECMA.
Mono posee importantes componentes útiles para desarrollar software:

  • Una máquina virtual de lenguaje común de infraestructura (CLI) que contiene un cargador de clases, un compilador en tiempo de ejecución (JIT), y unas rutinas de recolección de memoria.
  • Una biblioteca de clases que puede funcionar en cualquier lenguaje que funcione en el CLR (Common Language Runtime).
  • Un compilador para el lenguaje C#, MonoBasic (la versión para mono de Visual Basic), Java y Python.
  • El CLR y el Sistema de tipos común (CTS) permite que la aplicación y las bibliotecas sean escritas en una amplia variedad de lenguajes diferentes que compilen para byte code
  • Esto significa por ejemplo, que si defines una clase que haga una manipulación algebraica en C#, esa clase puede ser reutilizada en cualquier lenguaje que soporte el "CLI". Puede crear una clase en C#, una subclase en C++ e instanciar esa clase en un programa en Eiffel.
  • Un sistema de objetos único, sistema de hilos, bibliotecas de clases y sistema recolector de memoria pueden ser compartidos por todos estos lenguajes.
  • Es un proyecto independiente de la plataforma. Actualmente Mono corre sobre Linux, FreeBSD, UNIX, Mac OS X, Solaris y plataformas Windows.

Por tanto, intentaré llevar en paralelo los temas relacionados con C#, mostrando ejemplos tanto en plataformas Windows como en Gnu/Linux.

Listado de Tutoriales C# y enlaces interesantes

Fuentes:

12Oct

Bloging semanal

Desafortunadamente ya no he tenido mucho tiempo ultimamente, y por lo tanto no he colocado muchas entradas esta semana. Para reivindicarme con el lector, mejor coloco los enlaces de las cosas interesantes que leí en el transcurso de la semana (y posiblemente siga haciendolo todos los viernes). A por ellos!

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS