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
;
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
;
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 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