jueves, 15 de septiembre de 2011

C# Basico desde cero - Clase 1 _ Primer aplicación de consola

Me encuentro en la ardua tarea de a alguien que no sabe nada de programación enseñarle a programar. Para comenzar se me ocurrieron (y estuve pensando mucho al respecto) que seria una buena idea enseñarle directamente con C#.
Si parece raro no?, cuando uno piensa en aprender a programar se remonta automáticamente a los conceptos que nos enseñaron en la facultad, comenzar con pseudo-código, pascal, c, c++  y luego si tiene suerte pasar por algún lenguaje mas amigable como ser C# o Java.

La cosa es que hablando con un amigo (Fernando) y comentándole al respecto llegamos a la conclusión de que seria una buena idea hacer la prueba de iniciar nuevos programadores en lenguajes como C#. Debido a esto es que me decidí a enseñarle a esta persona que les comentaba antes (mi hermano) a programa directamente en C#, haciendo que sea este lenguaje su primer contacto con el mundo de la programación.

Con este objetivo por delante me motivo a escribir estas "clases" en mi blog y de paso revivirlo. Para esto hoy voy a hablar sobre la clase mas básica que puede recibir alguien que esta comenzando con C# y es a escribir nuestro primer "Hola Mundo" en C#. Si ya se que de esto hay mucho dando vueltas por internet y que tal vez no aporte mucho esta entrada al mundo de la ciencia, pero la idea de este primer acercamiento es dar por sentada las bases para alguien que no sabe absolutamente de programación.

Empezar desde cero

Para comenzar lo que voy a hacer es crear una aplicación de consola que el único propósito que va a tener es imprimir por pantalla la frase "Hola mundo!". Notaran que remarque la palabra propósito porque es una palabra que mas adelante nos va a servir mucho cuando veamos y entendamos el mundo de la programación orientada a objetos.
Volviendo a nuestro ejemplo, vamos a analizarlo desde el punto de vista de la sintaxis de la aplicación para entender como esta compuesta una aplicación de consola, cuales son los puntos básicos y que tener en cuenta

Código Fuente de nuestro primer programa

using System;

namespace HelloWord
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hola mundo!");

            Console.ReadKey();
        }
    }
}

Ahora vamos a analizar el código escrito arriba para poder definir los conceptos básicos de programación que se encuentran ahí.
En primer lugar tenemos la palabra reservada (keyword) using, esta y como la estamos usando en este ejemplo nos sirve para "importar" el contenido del namespace System. Que dijimos con todo esto? Que todo el código que se encuentra en el namespace System va a estar incluido en nuestra aplicación, es decir, nosotros nos vamos a poder valer todos las clases que allí se encuentran.
Hablando de clases nos encontramos con la otra keyword class, esta keyword nos dice que Program es una clase, por ahora no nos interesa mucho saber que es una clase o como se comportan las clases así que de momento vamos a dejar este concepto ahí.

Como verán otras de las cosas que utilizamos en nuestro programa son las llaves { }, esto nos va a marcar el comienzo y el fin de las sentencias que estamos escribiendo. Siempre que comenzamos un bloque de código este debe empezar con un { y terminar con un }, de esta manera definimos y damos un ámbito al codigo que estamos escribiendo.

Ahora bien, vamos a nuestro programa en si, toda aplicación debe tener un punto de acceso, un lugar donde el sistema operativo univocamente sepa por donde comenzar a ejecutar el código que nosotros escribimos, para esto C# utiliza un método en particular el cual se llama Main, de esta manera el sistema operativo sabe que la ejecución de este programa debe comenzarla por este método.

Estructura básica de un método:

tipo_retorno Nombre ([tipo_parametro parametro])
{
    cuerpo_del_método;
    return;
}

De acá podemos ver la estructura básica de un método, como verán el mismo cuenta con los siguientes componentes:

tipo_retorno: se especifica el tipo de dato que va a retornar nuestro método, en nuestro primer ejemplo decimos que nuestro método retornara el tipo especial void, que significa que no retornara nada.
Nombre: el nombre de un método junto con los parámetros son el identificador único del método, digo único porque por obvios motivos no pueden haber dos métodos con el mismo nombre y mismos parámetros (veremos cuando aprendamos objetos que es posible tener mas de un método con el mismo nombre) Como norma se utiliza el nombre del método para definir la acción que va a realizar.
cuerpo_del_método: acá se definen en orden secuencial las acciones que queremos que realice nuestro método para poder cumplir con su propósito. Como  verán algo muy importante es que todas las sentencias de código que pongamos deben finalizar un un ';' esto le indica al compilador donde termina cada sentencia.
return: esta keyword no indica la variable a devolver por nuestro método, en nuestro primer ejemplo no es necesario agregarlo ya que aclaramos que no va devolver valor alguno porque especificamos el tipo_retorno como void.


Ahora si volviendo a nuestro primer ejemplo, nuestro propósito era escribir en pantalla la frase "Hola mundo!" con lo cual nos vamos a valer del objeto Console para mediante el método WriteLine pasarle como parámetro nuestra frase. Luego usamos otro método del objeto Console, el ReadKey para que nuestro programa no termine y se quede esperando que el usuario presione una tecla.

Hasta acá vamos a llegar con nuestra primera clase, en la próxima empezaremos a hablar acerca de las variables y los tipos de datos.
Espero que lo hayan disfrutado tanto como yo disfrute escribirlo, seria una buena idea para practicar hacer aplicaciones que solo impriman mensajes de este tipo por pantalla. Si tienen alguna pregunta no duden en dejar sus comentarios.





2 comentarios:

  1. Hola, yo tengo una pregunta, si yo reemplazo hola mundo, por cualquier otra palabra funciona igual? Como puedo probar si entendi?

    ResponderEliminar
  2. using System;

    namespace HelloRominitt
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.WriteLine("Hola rominitum!");

    Console.ReadKey();
    }
    }
    }



    lo hice me salio.

    ResponderEliminar