Aprendiendo .NET Tutorial PARTE 7

Escrito por el Miércoles 17 de Diciembre de 2008 a las 13:47hs

Sube Tu Queja
Bienvenidos a esta nueva entrega de APRENDIENDO .NET

En primer lugar agradecer la importancia que le están brindando al sitio y esperemos que no pierda asiduidad.

Como hemos visto en los comentario de la entrega 6 ya todos pudieron resolver el problema de la línea que faltaba, ahora vamos a darle un poco mas de importancia a dicha línea ya que no solo se limita a esperar a que el usuario de la aplicación presione la tecla Enter para continuar

Como ya es sabido el método ReadLine(); que se encuentra definido en la clase Console tiene una función mucho más importante que la de detener el código en el punto donde se codificó, y es la de recoger como una cadena de caracteres lo ingresado por el usuario de la aplicación a través del teclado.

Por ejemplo si durante la ejecución secuencial del código se encuentra una sentencia con la llamada al Método ReadLine(), la aplicación esperara a que el usuario presione la tecla Enter y, si antes de presionarla dicho usuario digito cualquier palabra a través del teclado, estas palabras serán guardadas en una cadena de caracteres o string y puesta a nuestra disposición.

Esto permite el concepto de interacción con el usuario de la aplicación.

Muy Importante: todo lo recogido por el método ReadLine(), será tratado por la aplicación como STRING o cadena de caracteres o texto

¿Porque es tan importante lo mencionado?, pues muy simple, supongamos que el usuario digita la expresión literal “123”, en realidad el programa devolverá un STRING y NO un Número, para que dicha expresión literal sea reconocida como un Número es preciso indicárselo explícitamente, a este procedimiento de conversión se lo conoce como conversión explicita y mas adelante le dedicaremos un buen espacio.

Todavía no hemos llegado al estudio en profundidad de los métodos pero nos estamos acercando. Como se dijo antes un método puede o no devolver un valor, ya vimos y sabemos que aquellos métodos que no devuelven ningún valor son de tipo void, pero si el método devuelve un valor otra es la historia

Cuando llamemos o invoquemos a un método que devuelve un valor es preciso recoger el resultado o valor devuelto y darle un tratamiento acorde a su tipo, de lo contrario el resultado de nuestra aplicación nos sorprenderá con algo no deseado

Ahora bien, entonces si el método ReadLine(); recoge lo ingresado por teclado puedo afirmar que dicho método devolverá un valor, o sea el método no será de tipo void sino string, así que uno de los tratamientos posibles podría ser, almacenar dicho valor retornado en una variable de tipo string, y jugar con ella interactuando con el Usuario

IMPORTANTE: TODOS LOS VALORES DE RETORNO DE UN METODO SI SE DECIDE ALMACENARLO EN UNA VARIABLE, ENTONCES DICHA VARIABLE DEBERÁ SER DEFINIDA DEL MISMO TIPO QUE EL VALOR RETORNADO POR EL METODO, DE LO CONTRARIO SE PRODUCIRÁ UN ERROR DE COMPILACION

Por ejemplo la siguiente sentencia producirá un error de compilación

Int a = “Hola”;

Aquí se está tratando de almacenar en una variable de tipo Entero, un valor de tipo string,
INCORRECTO


SIEMPRE SE DEBE RESPETAR LOS TIPOS

La siguiente sentencia no dará ningún error

string a = “Hola”;

Aquí se esta almacenando un valor de tipo texto en una variable del mismo tipo CORRECTO

Retomando el ejemplo del numero “123”, es muy importante que entiendan bien esto “123” es una expresión literal y como tal será tratada hasta no ser convertida a un sistema numérico decimal, hexadecimal

El siguiente ejemplo arrojara un error de compilación

“123” + 12;

Resultado = ERROR

Lo que aquí estamos tratando de hacer es una suma entre dos tipos de formatos distintos o no pertenecientes al mismo sistema ya que “123” es un string y 12 es un número

¿Cómo se que valor es string si a la vista parece un número?

Bueno eso lo indican las comillas, todas las expresiones que aparecen o se definen entre comillas dobles serán tratadas de tipo texto o string o cadena de caracteres por el compilador

Los siguientes ejemplos no darán ningún error

int a = 123 + 12

Resultado:

a = 135


string b = “123” + “12”

Resultado:

b = “12312”

En el primer caso primero me definí una variable de tipo entero y le asigne como valor el resultado de una operación obteniendo como resultado lo que esperábamos de la suma, y en el segundo caso me definí una variable de tipo string y le asigne como valor el resultado de una suma de caracteres, si obserban bien en realidad lo que se sumo fueron dos textos o dos strings, a este proceso de sumar string se lo conoce como CONCATENACION

Un par de ejemplos de concatenación no nos harán ningún daño.-

string a = “Buenos” + ”Dias”;

Resultado:

a = “BuenosDias”


Ahora bien el resultado no es precisamente lo que esperábamos a no ser que hablemos sin pausas.

Hay varias formas de solucionar este problema

Forma 1

Podríamos concatenar un tercer carácter (el espacio en blanco) es considerado como un carácter

string a = “Buenos” + “ “ + ”Dias”;

Resultado:

a = “Buenos Dias”

Forma 2

También podríamos haber incluido un espacio en blanco dentro de uno de los textos

string a = “Buenos ” + ”Dias”;

Resultado:

a = “Buenos Dias”

¿Como puedo ver estos resultados en la consola?


Muy fácil, simplemente lo podemos hacer llamando al método WriteLine(); de la siguiente manera

System.Console.WriteLine(a);

Observen bien la sentencia anterior, NO utilicé las comillas dobles, cuando no se especifican las comillas, el método tomará a la palabra entre paréntesis como una variable y lo que imprimirá en pantalla será su contenido, por lo tanto la sentencia anterior imprimirá en pantalla

Buenos Días

Ahora si le pusiéramos las comillas a la palabra pasada al método como se muestra

System.Console.WriteLine(“a”);

Aunque ( a ) sea una variable definida en algún punto de nuestro código lo que se mostrará en pantalla será lo siguiente

a

También la concatenación se puede hacer entre variables y/o entre string y variable

Los siguientes ejemplos ilustran mejor lo que se quiere decir

System.Console.WriteLine(“a” + a );

Aquí concatenamos un string a una variable con un string en su interior, por lo tanto la salida en pantalla será la siguiente

a Buenos Días

O puedo concatenar 2 variables

System.Console.WriteLine( a + a );

El resultado será:

Buenos DíasBuenos Días

Y para finalizar con las concatenaciones y resolver la salida anterior puedo concatenar un espacio en blanco o usar otros modos para corregir lo mostrado

System.Console.WriteLine( a + “ “ + a );

El resultado será:

Buenos Días Buenos Días

O bien con una coma

System.Console.WriteLine( a + “, “ + a );

El resultado será:

Buenos Días, Buenos Días


Prosiguiendo con la entrega

Entiendo que lo que hemos dado hasta ahora en cuanto a variables y métodos fue muy escaso, pero no se preocupen simplemente esto es un adelanto para que le comiencen a tomar el gusto a la codificación y no se hundan en un montón de palabras técnicas

Las variables se merecen muchísimo más espacio pero por ahora vamos a conformarnos con esto

PROCESO DE CREACION E INICIALIZACIÓN DE UNA VARIABLE

La siguiente sintaxis debe ser respetada en todo sentido para que no ocurran errores

Para la definición de una variable

<Tipo> <identificador>;

Donde el tipo indicara a que sistema pertenece la variable y el identificador es el nombre por el cual conoceremos a la misma y por supuesto el punto y coma para indicar el fin de la sentencia

Para la Inicialización de una variable

<Identificador> <operador> <Valor>;

Donde el identificador es el nombre propiamente dicho de la variable a la cual le queremos asignar un valor, el operador es por ejemplo el de asignación (=), y el valor es el contenido o argumento que le queremos dar a la variable y por supuesto el punto y coma indicando el fin de la sentencia

Para que quede mas claro veamos un ejemplo

Definición:

Int a; // inicialización de una variable de tipo entero de nombre a


Inicialización:

a = 5; // asignación del valor numérico 5 a la variable antes definida

También es posible hacer ambos procesos en una sola línea por ejemplo

int a = 5; // mucho mas simple no

Mas adelante cuando veamos variables vamos a ahondar más en ellas

Otro ejemplo

string s = “Hola”; // definición de la variable s de tipo texto e inicialización con el valor “Hola”

TRABAJANDO EN EQUIPO

Ahora que conocemos más profundamente el uso del Método ReadLine(), las variables y la concatenación, no veo el inconveniente de comenzar a trabajar en conjunto con el método WriteLine(), para crear una aplicación más compleja que la primera

Antes que nada veamos una pequeña cosita que se nos quedaba en el tintero y que son realmente de mucha utilidad
LOS COMENTARIOS EN LA APLICACIÓN

También lo veremos más adelante en un buen espacio pero por ahora bastará con lo que explicaré a continuación. Los comentarios en una aplicación son realmente útiles, ya que nos ayudan a entender lo que hace cada línea o sentencia.

Los comentarios se rigen por normas específicas y cada lenguaje de programación tiene la suya, como se dijo antes un programa se ejecuta en forma secuencial de arriba hacia abajo, esa secuencia se la conoce como FLUJO y lo podemos controlar, el compilador irá ejecutando todas las sentencias en orden descendente a partir del punto de entrada, reconociendo el principio de cada sentencia a través de su definición y el final usando como separador de sentencias los puntos y comas

Ahora, si el compilador se encuentra con una línea vacía no la tomará encuentra y procederá a la siguiente, lo mismo sucede si el compilador se encuentra con un comentario, no lo tomará en cuenta y procederá a la siguiente línea.-

¿Cómo sabe el compilador que línea es un comentario?

Buena pregunta, reconocerá como comentarios todo lo que se encuentre después del siguiente símbolo ( // ), todo lo que se encuentre detrás de estas dos barras simples el compilador lo pasará por alto o sea no lo tendrá en cuenta al momento de la ejecución
Existe otros símbolos que también son reconocidos por el compilador como comentarios pero no lo veremos ahora

Veamos un ejemplo para evacuar dudas

// esto es un comentario

int a = 5; // defino e inicializo una variable y hago un comentario

// int b = 10 – esto también es un comentario el compilador no creará la variable

//otro comentario


Espero que haya quedado claro, de aquí en más todas nuestras aplicaciones las comentaremos

¿INTERACTUANDO CON EL USUARIO?

El siguiente ejemplo muestra un ejemplo de interacción entre una aplicación y un usuario usando comentarios

// Esta aplicación interactúa con el usuario

Public class TestClass    // creo mi clase para alojar al método Main
{
public static void Main()   // creo el método Main
{
string Nombre;    // defino una variable de tipo texto

System.Console.WriteLine();    // renglón en blanco

System.Console.WriteLine(“¿Como te Llamas?”);     // Pido el nombre al usuario

System.Console.WriteLine();    // renglón en blanco

// Almaceno el valor de retorno del método ReadLine() en la variable Nombre

Nombre = System.Console.Readline();    // ReadLine siempre devuelve texto

//interactúo con el Usuario

System.Console.WriteLine(“Hola ” + Nombre);   // saludo porque soy educado
Uso concatenación

System.Console.Readline()    // Esta sentencia no permite que la consola se cierre

}
}

¿Qué hay de nuevo viejo?

Dijo el orejón

Bueno lo nuevo aquí es el uso de comentarios, definición de una variable para almacenar lo devuelto por el método ReadLine(), el uso combinado de métodos y variables para lograr la interacción con el usuario de la aplicación.

Espero que les haya servido lo aprendido hoy y para no perder el entusiasmo les dejo deberes al mejor estilo escuelita.

Pensaron que no los iba a poner he ¡!!!

Bueno las tareas que el Sitio quiere que hagan son las siguientes:

1.- ampliar la estructura de trabajo sumando una nueva carpeta con el nombre de class02

2.- crear una aplicación similar a la anterior pero con los siguientes detalles

El nombre de la clase deberá ser “InteractingWithTheUserClass”
• La aplicación deberá exhibir el Titulo “El Gurú Programador” centrado en la consola
• Como subtitulo: debajo del titulo y centrado el texto “Clase 2 – Interactuando con el usuario”
• La primera línea de texto deberá preguntar por el Nombre del Usuario y guardar lo respondido en una variable.-
• Un renglón vacío.-
• Las Tercera línea de texto deberá preguntar por el apellido y almacenar el valor en una 2da variable
• Renglón vacío
• La quinta línea deberá saludar al usuario y dar la bienvenida al sitio por ejemplo “Hola <nombre y apellido> bienvenido a la clase de Aprendiendo .NET del Sitio El Gurú Programador”
• Aquí se deberá CONCATENAR el texto y las variables
• Mas abajo deberá controlarse que la consola no se cierre hasta que el usuario presione la tecla Enter
• a su vez avisar de dicha espera al usuario con un texto como por ejemplo “Presione la tecla Enter para finalizar
• comentar la aplicación
• guardar el código fuente en un archivo con el nombre Class02.cs
• COMPILAR el Código Fuente para obtener el código MSIL

Espero no haber sido muy Malvado pero así es la vida, la fama cuesta, para que dicho proyecto tenga éxito tendrán que investigar como usar los CARACTERES ESPECIALES DE ESCAPE

Para que vean que no somos tan malvados les dejamos una ayudita


Uso de un carácter de escape


2 tabuladores a la derecha

Produce la siguiente salida en pantalla:


Truco:

System.Console.WriteLine(“ Hola”);

Moviliza la palabra hola hacia la derecha según la cantidad de espacios incluidos antes

Y para finalizar sería bueno que envíen los proyectos terminados y FUNCIONANDO al Sitio o Bien coordinar con Roby nuestro querido Director como hacerlos llegar. Y quien sabe, cuando tengamos los conocimientos sólidos aprendidos en el Sitio y luego de algunas evaluaciones, El Guru del Programador nos pueda sorprender con algún certificado avalándolo uno nunca sabe lo que puede suceder

Se pueden ayudar usando los comentarios del blog como forma de intercambio de opiniones

NO INCLUYAN NADA MAS DE LO QUE SE PIDE, AQUÍ SE PRETENDE QUE APRENDAN A PROGRAMAR NO A REALIZAR OBRAS DE DISEÑO ARTISTICO COMO COLORES EN LAS LETRAS O CUALQUIER OTRO MOTIVO, ESO QUEDA PARA PRACTICA DE USTEDES MISMOS, TAMBIEN LES AYUDARÁ A LIMITARSE A REALIZAR LOS TRABAJOS SEGÚN LO PEDIDO CONTRACTUALMENTE EN EL FUTURO

Aquí está la aplicación que se pretende funcionando

Inicio de la aplicación haciendo doble click sobre el MSIL


Lo primero que aparece es el título, subtitulo y solicitud del nombre


Ingreso mi nombre y presiono la tecla Enter


El siguiente paso el programa me solicita el apellido


Lo ingreso y presiono la tecla Enter


Finalmente nuestro programa es tan educado que nos saluda y da la bienvenida

También avisa del fin del programa cuando se presione la tecla Enter

Los primeros 5 proyectos en llegar participarán en un sorteo donde regalaremos el CODIGO FUENTE, que permite tener ocupada a la suegra durante un buen tiempo

Un abrazo cordial y muy fraternal

George Poliovei








comentarios



  1. 298274818336917502974 From the official [URL=http://www.onlinemuslimitems.com/]Muslim Abaya[/URL] website of anticipated [URL=http://www.onlinemuslimitems.com/]Muslim Items[/URL] Star Wars The [URL=http://www.onlinemuslimitems.com/]Muslim hijab[/URL] Old Republic comes [URL=http://www.onlinemuslimitems.com/]Islamic abaya[/URL] this new video where the [URL=http://www.onlinemuslimitems.com/]Muslim scarf[/URL] game designers [URL=http://www.onlinemuslimitems.com/]Buy Muslim Abaya[/URL] tell us a little about [URL=http://www.onlinemuslimitems.com/]Cheap Muslim Abaya[/URL] the 2 different [URL=http://www.onlinemuslimitems.com/]Buy Muslim Items[/URL] classes find Sith characters [URL=http://www.onlinemuslimitems.com/]Cheap Muslim Items[/URL] in the game, The [URL=http://www.findnike.com]Islamic hijab[/URL] Inquisitor Sith [URL=http://www.onlinemuslimitems.com]Islamic scarf[/URL] and Sith Warrior. They explain a lot of [URL=http://www.onlinemuslimitems.com]Islamic Items[/URL] pictures as designed [URL=http://www.onlinemuslimitems.com]Muslim wear[/URL] these characters and [URL=http://www.onlinemuslimitems.com]Muslim clothing[/URL] their characteristics [URL=http://www.onlinemuslimitems.com]Muslim wear Pas Cher[/URL] one more devoted [URL=http://www.onlinemuslimitems.com]Muslim wear[/URL] to the use of force [URL=http://www.onlinemuslimitems.com]Muslim clothing[/URL] powers and one more [URL=http://www.onlinemuslimitems.com/]Muslim Items For Sale[/URL] dedicated to close combat.



  2. Hola
    Excelente turorial, pero em gustaria saber cuando publican el proximo ya que ha pasado harto tiempo y aun no sale nada...
    Ojala publiquen el siguiente luego...
    :D



  3. Muy bueno el material, pero van a seguir publicando ? cuando sale la proxima entrega gracias



  4. Felicidades y gracias por publicar este tipo de material que nos ayuda mucho a los estudiantes de Informatica mas que todo, y tambien a cualquier persona que tenga la curiosidad de aprender programacion.

    Mucho exito en todos tus proyectos.

    Chao



  5. Hola laura, mira creo que tu error esta en la variable que usas para guardar lo retornado por el metodo ReadLine, como dice la clase en negrita que si un metodo retorna un tipo de valor entonces la variable debe de ser del mismo tipo estas intentando guardar en una variable de tipo entero un dato de tipo texto

    saludos espero te ayude

    Leo



  6. hola estoy siguiendo el curso esta muy bien esplicado ya termine de aser la practica de la entrega 7 y me gustaria saber a donde la puedo enviar o pegar la aqui mismo gracias...



  7. hola, primero a mi suegra la quiero mucho así que el código no lo necesito, soy afortunada, y ya se que no hay que agregar mas de lo que se pide pero yo le incluí la edad, me parecio buena idea, pero me anda mal cuando almaceno la edad segun el compilador me da error en este punto

    int edad = System.Console.ReadLine();
    System.Console.WriteLine("Tienes "+edad+" años");

    en teoria debería andar no se porque no pero bueno de ultima saco la linea

    saludos y felices fiestas



  8. Muy Bien ya estoy comenzando, lo de la suegra esta genial jaja, cuando lo tenga a donde lo envío, o lo ponemos aqui pegado ?

    saludos amigos, sigan asi y nunca cambien

agregar comentario


Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna dirección web o dirección de email serán convertidos en enlaces automáticamente.





publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API