Buscador

Obtener información de la consola

Para tomar el texto tecleado en el indicador de comandos de la ventana de la consola disponemos del método ReadLine( ), que devuelve una cadena que podemos pasar a una variable para su tratamiento posterior. Veamos un ejemplo en el Código fuente 24.

Module Module1
Sub Main()

Dim UnValor As String
Console.WriteLine("Escribir algo")
UnValor = Console.ReadLine()
Console.WriteLine("Hemos escrito el siguiente texto")
Console.WriteLine(UnValor)
End Sub
End Module
Código fuente 24
La Figura 52 muestra el resultado.

Figura 52. Obtención del texto escrito en la consola.

Visualizar información en la consola - III

La otra técnica consiste en utilizar parámetros sustituibles, indicando en la cadena los lugares en los que queramos que se incluyan el contenido de las variables que necesitemos. Por ejemplo, supongamos que en la cadena “Hola voy a un coche”, queremos insertar los valores “conducir” y “azul”, que están situados en variables, de modo que la cadena resultante sea: “Hola voy a conducir un coche azul”. 
Para solucionar este problema, en la cadena tenemos que incluir unos marcadores que indican que en ese punto vamos a sustituir el marcador por una variable, y además el número de orden de la variable, tal y como la vamos a situar al llamar al método WriteLine( ). 
Los marcadores son los símbolos de llaves utilizados de una forma similar a la siguiente: {0} Cuando llamamos a WriteLine( ) sabemos que le pasamos como parámetro el valor a mostrar, pero podemos pasar más parámetros separados por comas, como pueden ser variables; dichos parámetros serán utilizados para sustituirse en la cadena pasada como primer parámetro. 
La Figura 51 muestra un esquema del uso de este método.
Figura 51. Esquema de parámetros sustituibles al usar el objeto Console.
Podemos comprobar, que a continuación de la cadena pasada en WriteLine( ), la primera variable se sustituirá en el marcador {0}, la siguiente en el {1}, y así sucesivamente.

Visualizar información en la consola - II

Si al escribir un texto en la consola, queremos combinar una cadena de caracteres con el contenido de una variable, podemos optar por dos técnicas. Por un lado podemos concatenar (unir) la cadena a la variable mediante el operador de concatenación del lenguaje ( & ). Ver Código fuente 23.


Module Module1
Sub Main()
Dim UnValor As String
UnValor = "al parque"
Console.WriteLine("Vamos de paseo " & UnValor)
End Sub
End Module
Código fuente 23

El resultado se muestra en la Figura 50.
Figura 50. Concatenar valores al mostrarlos en la consola.

Visualizar información en la consola - I

Para escribir texto llamaremos al método Write( ) o WriteLine( ) del objeto Console. Como parámetros a estos métodos, es decir, entre los paréntesis que los acompañan, situaremos la información a mostrar: una cadena, variable o expresión. Veamos un ejemplo en el Código fuente 22.

Module Module1
Sub Main()
Dim UnValor As String
UnValor = "algo más de texto"
' esta cadena va en una línea
Console.WriteLine("Una línea de prueba")
' ahora mostramos una variable
Console.WriteLine(UnValor)
' las siguientes cadenas se ponen juntas
Console.Write("Coche")
Console.Write("Tren")
' aquí añadimos una línea en blanco
Console.WriteLine()
End Sub
End Module
Código fuente 22
La diferencia entre Write( ) y WriteLine( ) consiste en que mediante el primero, todas las llamadas que hagamos a ese método escriben el texto seguido, mientras que el último lo hace en líneas separadas. La Figura 49 muestra el resultado del anterior ejemplo.
Figura 49. Escritura de texto con el objeto Console.

Manejo de la consola del sistema

Antes de pasar a trabajar con los elementos del lenguaje vamos a dar unos breves apuntes sobre el objeto Console, que representa a una ventana MS-DOS, símbolo del sistema, o consola, como la denominaremos fundamentalmente en este texto. 
En el tema anterior ya tuvimos un primer contacto con la consola realizando nuestro primer programa, el conocido Hola mundo. Sin embargo, en este apartado vamos a dar unas indicaciones básicas de uso, ya que la consola será el elemento principal que utilizaremos para mostrar y obtener datos por pantalla. 
Debido a su sencillez de uso y rápida ejecución, la consola se convierte en el elemento ideal para realizar pruebas, y en nuestro caso, mostrar ejemplos. Aunque la consola es un objeto, no vamos a entrar aquí a describir en qué consisten los objetos ni su uso en profundidad, recomendamos al lector la consulta de los temas específicos sobre programación orientada a objetos del texto. 
De igual modo, los conceptos sobre variables, parámetros, concatenación, y demás aspectos del lenguaje que se utilizan en estos ejemplos introductorios a la consola, se explicarán más adelante en los apartados correspondientes a los elementos del lenguaje.

Indentación del código - II

Cuando queramos indentar una línea simplemente hemos de situarnos al comienzo de la misma y pulsar la tecla [TAB], para quitar tabulaciones pulsaremos [TAB + MAYÚS]. Como ya hemos indicado, el entorno de desarrollo de VS.NET por defecto indenta automáticamente el código según lo vamos escribiendo. Si queremos variar algún aspecto en cuanto a este comportamiento del editor, podemos configurar las características de indentación establecidas en el IDE seleccionando la opción de menú Herramentas + Opciones. Al abrir la ventana Opciones seleccionaremos la carpeta Editor de texto, y dentro de esta la carpeta Basic, que contendrá la configuración para el editor de texto correspondiente a este lenguaje. Haciendo clic en el elemento Tabulaciones se mostrarán las propiedades de indentado, que podemos modificar para adaptarlas a nuestras preferencias, tal y como vemos en la Figura 48.
Figura 48. Propiedades de indentado en el IDE de Visual Studio .NET.

Indentación del código - I

La indentación o sangría es una técnica para escribir el código de un programa, consistente en situar las líneas de código a diferentes niveles de tabulación o profundidad, de forma que se facilite su lectura al ser revisado. 
Al crear una aplicación con VS.NET, podemos comprobar como el propio editor de código fuente indenta el código según lo escribimos, siendo una práctica muy ligada a las estructuras de control, que veremos próximamente, ya que nos permite ver rápidamente las instrucciones contenidas dentro de estas estructuras y situarnos en las líneas necesarias. En el Código fuente 21 se muestran unas líneas en pseudocódigo que contienen estructuras y código dentro de las mismas, de forma que pueda comprobar el lector el modo en que se realiza la tabulación.

comienzo
' líneas con indentación al mismo nivel
instrucción1
instrucción2
' comienzo de estructura
EstructuraA <expresión>
' líneas indentadas a un nivel de profundidad
instrucciónA1
instrucciónA2
' comienza estructura anidada
EstructuraB <expresión>
' líneas indentadas a segundo nivel de profundidad
instrucciónB1
instrucciónB2
FinEstructuraB
' según salimos de las estructuras
' volvemos a subir niveles de indentación
instrucciónA3
instrucciónA4
FinEstructuraA
instrucción3
instrucción4
final
Código fuente 21

Comentarios

Es una buena costumbre incluir comentarios aclaratorios en el código del programa, que sirvan como documentación posterior a la hora de revisar el código para realizar una posible corrección debido a un mal funcionamiento, o porque tengamos que ampliar la funcionalidad del programa. En VB.NET se utiliza el carácter de comilla simple ( ' ) para poder escribir anotaciones dentro del código del programa. Una vez incluida la comilla, todo lo que vaya a continuación será tenido en cuenta como comentario y no como instrucciones ejecutables. Ver Código fuente 20.

Module Module1
Sub Main()
' vamos a comenzar a ver el código
instrucción1
instrucción2 ' este comentario va a continuación de una línea
' esta es la última instrucción
instrucción3
End Sub
End Module
Código fuente 20

Ubicación del código en el programa

El código de un programa se sitúa en rutinas de código o procedimientos, en los cuales escribimos las instrucciones necesarias para resolver un determinado problema. 
Dependiendo de la complejidad y la cantidad de situaciones a resolver, un programa tendrá un número determinado de procedimientos. Los procedimientos serán tratados con profundidad en un próximo tema, de momento basta saber que para declarar un procedimiento utilizaremos la palabra clave Sub, seguida del nombre del procedimiento, escribiendo a continuación las instrucciones necesarias y finalizando el procedimiento con End Sub, como vemos en el Código fuente 19, en el que creamos un procedimiento con el nombre Calcular( ).

Sub Calcular()
instrucción1
instrucción2
instrucción3
instrucción4
instrucción5
....
....
....
instrucción

End Sub
Código fuente 19


Cuando creamos una aplicación VB.NET de tipo consola usando VS.NET, es el propio IDE quién se encarga de crear por nosotros la estructura básica del programa: crea un archivo de código conteniendo un módulo que tiene el procedimiento de entrada, sólo falta el código del programador. Todos los elementos que componen una aplicación VB.NET, son organizados por VS.NET bajo el concepto de proyecto. Un proyecto aglutina los archivos de código de la aplicación, recursos, referencias a clases globales de la plataforma .NET, etc. Consulte el lector el tema dedicado a la implementación de programas en .NET para una descripción general de estos tipos de archivo. Para las pruebas de los siguientes apartados crearemos desde el IDE un nuevo proyecto de tipo consola.

Estructura de un programa

Como ya explicamos en el tema que describía la escritura de la primera aplicación en VB.NET, los elementos mínimos que debe tener toda aplicación escrita en este lenguaje (y en general, la mayoría de lenguajes) son un módulo de código, y un procedimiento de entrada o inicio del programa, que en VB.NET tendrá el nombre Main( ), todo ello contenido en un archivo de código con extensión .VB. En la Figura 47 podemos ver en un diagrama, la estructura en niveles de un programa. 
Si el programa a ejecutar es de pequeño tamaño, el procedimiento de entrada al mismo contendrá todo el código necesario. Sin embargo esta situación no es muy frecuente, lo habitual es que los programas tengan una cantidad de código considerable, que obligue a separarlo en diferentes rutinas. Por este motivo el procedimiento Main( ) contiene generalmente código para inicializar valores en el programa, y hacer llamadas a otros procedimientos entre los que está repartido el resto del código. Debido a que los próximos ejemplos mostrados en el texto estarán basados en programas sencillos, por el momento sólo precisaremos usar el procedimiento Main( ).
Figura 47. Estructura en niveles de los elementos de un programa en VB.NET.

Palabras reservadas

Son todos aquellos nombres que forman parte integrante del lenguaje de programación, como puedan ser instrucciones, estructuras de código, funciones propias del lenguaje, objetos, etc. Este tipo de palabras no las podemos utilizar como identificadores, debido a que son empleadas internamente por el lenguaje. Algunas palabras reservadas en Visual Basic .NET son: Dim, Sub, Function, Public, For, Integer.

Identificadores

Un identificador es un nombre que el programador asigna a ciertos elementos del programa, como variables, constantes, rutinas de código, etc., para poder reconocerlos durante el desarrollo del mismo. 
Dicho nombre debe comenzar por una letra y no puede ser una palabra reservada del lenguaje, ni contener caracteres especiales como operadores aritméticos, de relación, etc. 
Aunque podemos utilizar cualquiera de nuestra elección, es muy recomendable que el nombre del identificador esté relacionado con su contenido, de forma que durante la revisión del código del programa, sepamos rápidamente lo que contiene simplemente con ver su nombre.

Definidos por el programador

En esta categoría se encuentran la estructura (Structure), que consiste en un tipo especial de dato compuesto por varios de los tipos existentes en el lenguaje; y el tipo enumerado (Enum), consistente en una lista de valores numéricos a los que asociamos un descriptor literal. Ambos tipos nos permiten combinar un conjunto de datos de forma más compleja que los tipos compuestos. 
Tanto los tipos compuestos como los definidos por el usuario serán tratados más adelante con mayor profundidad, ya que es recomendable conocer algunos aspectos previos sobre el lenguaje antes de ahondar en estos tipos.