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