Algoritmos primero piensa, luego programa INTRODUCCION A VISUAL BASIC .NET – CONSOLA Esta guía nos dara los conceptos básicos para programar en Visual Basic .NET – Consola. ACCESO DIRECTO: Digitar DEVENV para ingresar directamente al software. PASOS PARA INGRESAR AL SISTEMA: PASO 1: Archivo Nuevo Proyecto… ó Pulsar el conjunto de teclas Ctrl + N. PASO 2: Mostrará una ventana de las Plantillas Instaladas en Visual, dónde seleccionaremos el icono de Aplicación de consola. CUERPO PRINCIPAL DEL PROGRAMA Esta es el área de desarrollo de programas en Visual Basic .Net Consola, llamada Module1. Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa EXPLORADOR DE SOLUCIONES: Esta ventana nos muestra todos los programas que usaremos en nuestro proyecto, por defecto todo programa toma el nombre de Modulo con un número correlativo al final. PASOS: Ver Explorador de soluciones Para desplazarnos de un programa a otro debemos hacer doble clic en el modulo indicado. GUARDAR UN PROYECTO: Se puede guardar al principio de iniciar el proyecto ó también pulsando el botón todo, el cual mostrará la siguiente pantalla: Guardar Esta área permite guardar un proyecto e indicar el lugar de almacenamiento. AGREGAR MODULOS: Para agregar nuevos modulos a nuestro proyecto, debemos seguir los siguientes pasos: PASOS: Proyecto Agregar módulo… Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa COMPILAR Ó DEPURAR MODULO: Para compilar o ejecutar un modulo nuestro programa no debe contener errores de lo contrario mostrará una ventana de error evitando la compilación. Para realizar la acción de compilación podemos pulsar la tecla de función F5 ó el botón COMPILACIÓN DE OTROS MODULOS: Por defecto el sistema siempre compila el modulo1, por ello debemos de configurar sus propiedades para indicar otros módulos a compilar. PASOS: Proyecto Propiedades de ConsolaApplication1… (Nombre del proyecto) En la sección de Objeto inicial: debemos seleccionar el modulo a compilar. Profesor:Lugo Ortega Franklin Roman . Algoritmos primero piensa, luego programa ERRORES DE UN PROGRAMA: ERROR DE SINTAXIS: Los errores de sintaxis se deben al no escribir correctamente los comandos. Cuando un comando no esta escrito debidamente se subraya de azul, de la misma manera sucede cuando se usa una variable que no ha sido declarada. ERROR DE LOGICA: Este tipo de error depende del programador, es uno de los errores más difíciles de detectar, ya que el programa puede compilar pero sin mostrar el resultado deseado. Esta es la pantalla que se muestra cuando el sistema detecta un error, si pulsa SI se ejecutará la última compilación que funciono correctamente, lo ideal es pulsar No y corregir el programa Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa AREA DE ERRORES: Esta lista de errores se muestra cuando el sistema detecta errores de sintaxis, mostrando el número de errores encontrados y una breve descripción de cada uno de los errores. DEPURACIÓN PASO A PASO DE UN MODULO: Como modo de aprendizaje se sugiere usar este modulo de depuración, el cual recorre el programa con una línea amarilla paso a paso su compilación. LIBRERÍA: Las librerías en visual están debidamente organizadas de tal manera que para hacer uso de un comando tenemos que hacer uso de la librería que lo contiene. Import System.Console Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa Al usar la clase Console lo que hacemos es indicarle al compilador dónde buscar la definición de los comandos que usaremos en nuestro código, para así ahorrarnos la escritura de la palabra Console y solo limitarnos a usar el comando requerido y acortar el código. EJEMPLO: queremos mostrar por pantalla la palabra “HOLA” 1. Sin Hacer uso de la librería Imports System.Console Module Module1 ___Sub Main() ________Console.WriteLine("HOLA") ________Console.ReadLine() ___End Sub End Module 2. Ahora haremos uso de la clase Console. Imports System.Console Module Module1 ___Sub Main() ________WriteLine("HOLA") ________ReadLine() ___End Sub End Module TIPOS DE DATOS EN VISUAL BASIC. NET Boolean = True o False Byte = 1 byte : 0 a 255 (sin signo) Char = 2 bytes : 0 a 65535 (sin signo) Date = 8 bytes : 0:00:00 (medianoche) del 1 de enero de 0001 Decimal = 16 bytes : 0 a +/-79.228.162.514.264.337.593.543.950.335 Double = 8 bytes : -1,79769313486231570E+308 a - Integer = 4 bytes : -2.147.483.648 a 2.147.483.647 (con signo) Long = 8 bytes : -9.223.372.036.854.775.808 a Object = 4 bytes SByte = 1 byte : -128 a 127 (con signo) Short = 2 bytes : -32.768 a 32.767 (con signo) Single = 4 bytes : -3,4028235E+38 a -1,401298E-45 † para los String = 0 a 2.000 millones de caracteres Unicode aprox. UInteger = 4 bytes : 0 a 4.294.967.295 (sin signo) Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa ULong = 8 bytes : 0 a 18.446.744.073.709.551.615 User-Defined UShort = 2 bytes : 0 a 65.535 (sin signo) DECLARACIÓN DE VARIABLES Las variables son los datos que se van a almacenar o asignar en las variable, estas deben de concordar según la lógica de nuestro algoritmo ó programa. EJEMPLO: Si deseamos crear una variable que nos almacene el promedio de una nota, este sería de tipo Decimal. SOLUCIÓN: Dim PROM As Decimal Dim = Ámbito que ocupara la variable PROM = Nombre de la variable As Decimal = El tipo de dato asignado, aceptará que se almacenen valores decimales. MÉTODO WRITELINE() Este método lo usaremos para mostrar algún texto ó valor en la pantalla de la consola. El parámetro que recibe el método puede ser de varios tipos, ya sea una cadena de caracteres, un número entero, una línea en blanco, etc. CASO 1: Si lo que deseamos es mostrar algún mensaje, ejemplo la palabra “Bienvenido a mi Web”, el código completo seria el siguiente: Imports System.Console Module Module1 Sub Main() WriteLine( " Bienvenido a mi Blog " ) ReadLine() End Sub End Module NOTA: Todo mensaje va entre “” CASO 2: Si lo que deseamos mostrar es el valor que contenga alguna de nuestras variables el código completo seria el siguiente: Imports System.Console Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa Module Module1 Dim num As Integer = 15 Sub Main() WriteLine( num ) ReadLine() End Sub End Module NOTA: Como podemos observar las variables que contienen algún valor NO VAN ENTRE “” CASO 3: Ahora si lo que queremos mostrar es un mensaje y valor a su vez el código completo seria el siguiente: Imports System.Console Module Module1 Dim valor1, valor2, suma As Integer Sub Main() valor1 = 15 valor2 = 20 suma = valor1 + valor2 WriteLine("La suma es : " & suma) ReadLine() End Sub End Module NOTA: El símbolo de aspersan (&) permite concadenar ó juntar grupos de valores. DIFERENCIA ENTRE: WRITELINE Y WRITE PRONT: Se llama pront al indicador o rayita parpadeante que se muestra en la pantalla de consola. WRITELINE: Al final de la instrucción usted puede ver un LINE (WriteLINE), lo que indica que una vez mostrado el mensaje, el pront saltara a la siguiente línea. WRITE: En este caso la instrucción no contiene LINE, por lo tanto una vez mostrado el mensaje o valor el pronto continuara en la misma línea. Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa MÉTODO READLINE () Este método permite almacenar en la variable la información que se ingresa por teclado. Para ello tenemos que declarar correctamente la variable para que no muestre mensajes de error en el momento de almacenar el dato. Ver el tema de tipo de datos. EJEMPLO: Ingresaremos dos números por teclado y mostraremos la suma de ellos Imports System.Console Module Module1 Dim NUM1, NUM2, SUMA As Integer Sub Main() Write("Ingrese valor Numero 1: ") NUM1 = ReadLine() Write("Ingrese valor Numero 2: ") NUM2 = ReadLine() SUMA = NUM1 + NUM2 WriteLine("La suma de ambos valores es : " & SUMA) ReadLine() End Sub End Module Como podemos observar READLINE va después de la variable que guardara el dato ingresado por teclado. De manera que cuando estemos en modo de ejecución y la compilación llegue a esa línea de código, el programa se detendrá hasta que hayamos ingresado el valor solicitado y al pulsar la tecla Enter, el sistema leerá el dato y continuara con las siguientes líneas de código. NOTA: Si observamos al final de casi todos los programas va un Readline(), este se inserta en los códigos de tal manera que luego de haber ejecutado nuestro programa este haga una pausa de pantalla para poder ver los resultados de nuestra compilación, luego al pulsar Enter nuestro programa acabara y regresara a la pantalla de código. Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa Podemos ver un ejemplo simple en consola Imports System.console Module Module1 Sub main() WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module USO DE ESTRUCTURAS SECUENCIAL: La estructura secuencial es aquella que contiene los procesos básicos de programación: Entrada, proceso y salida, todo desarrollado en un orden lógico según el algoritmo. Ver guía de algoritmos. EJEMPLO 01: Escriba un programa que lea por teclado dos números y muestre como resultado la suma de estos. Imports System.console Module Module1 Dim NUM1, NUM2, SUMA As Integer Sub Main() Write("Ingrese Primer Número: ") NUM1 = ReadLine() Write("Ingrese Primer Segundo: ") NUM2 = ReadLine() SUMA = NUM1 + NUM2 WriteLine() WriteLine("La suma es : " & SUMA) WriteLine() WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa EJEMPLO 02: Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Imports System.console Module Module1 Dim BASE, ALTURA, AREA As Integer Sub Main() Write("Ingrese la base: ") BASE = ReadLine() Write("Ingrese la altura: ") ALTURA = ReadLine() AREA = BASE * ALTURA WriteLine() WriteLine("El área del triangulo es : " & AREA) WriteLine() WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module CONDICIONAL: La estructura condicional es una instrucción que evalúa una expresión lógica, que en el caso de resultar VERDADERA toma un camino y ejecuta las instrucciones del camino verdadero, pero si no toma el camino contrario denominada ELSE, donde se ejecutarán otro grupo de instrucciones en este caso del lado Falso. El resultado es de tipo booleano, el cual retornará sólo dos valores: TRUE (SI), FALSE (NO), a esto también se le asemeja como interruptores (1 ó 0). Ver guía de algoritmos. EJEMPLO 01: Elaborar un programa que muestre el mayor de dos números ingresados por teclado. Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa INICIO NUM1, NUM2 NUM1, NUM2 NUM1 > NUM2 SI " EL MAYOR ES : " NUM1 NO " EL MAYOR ES : " NUM2 FIN Imports System.console Module Module1 Dim NUM1, NUM2 As Integer Sub Main() Write("Ingrese el primer valor: ") NUM1 = ReadLine() Write("Ingrese el segundo valor: ") NUM2 = ReadLine() WriteLine() If (NUM1 > NUM2) Then WriteLine("El mayor es el primer valor con : " & NUM1) Else WriteLine("El mayor es el segundo valor con : " & NUM2) End If WriteLine() WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module EJEMPLO 02: Elaborar un programa que calcule el promedio de tres notas y que muestre APROBADO si su promedio es mayor que 10.5 de lo contrario que muestre DESAPROBADO. SOLUCIÓN: Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa INICIO N1, N2, N3, PROM N1, N2, N3 PROM = ( N1 + N2 + N3 ) / 3 PROM > 10.5 SI " APROBADO " NO " DESAPROBADO " FIN Imports System.console Module Module1 Dim N1, N2, N3, PROM As Integer Sub Main() Write("Ingrese Nota 1: ") N1 = ReadLine() Write("Ingrese Nota 2: ") N2 = ReadLine() Write("Ingrese Nota 3: ") N3 = ReadLine() PROM = (N1 + N2 + N3) / 3 WriteLine() If (PROM > 10.5) Then WriteLine("APROBADO") Else WriteLine("DEASPROBADO") End If WriteLine() WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module SELECCIÓN: La estructura de selección nos permite elegir un caso de entre varios casos posibles, en base al valor de una variable que actúa como selector ó variable lógica. En el momento en que se encuentre una coincidencia, se ejecuta la acción ó caso correspondiente a dicha constante y se abandona la estructura. El CASE ELSE es un selector opcional que se activa como caso contrario, si uno de los términos anteriores no se ha activado. Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa EJEMPLO: Elaborar un programa que muestre las etapas de una persona: si es menor que 12 años mostrar niño, si esta entre 12 y 18 mostrar joven, si es mayor que 18 y menor que 50 mostrar adulto, caso contrario mostrar anciano. Nuestro concepto de ancianidad es meramente por concepto de lógica. SOLUCIÓN: INICIO EDAD EDAD EDAD 0 .. 11 NIÑO 12 .. 18 JOVEN 19 .. 49 ADULTO ANCIANO FIN Imports System.console Module Module1 Dim EDAD As Integer Sub Main() Write("Ingrese la edad de una persona : ") EDAD = ReadLine() WriteLine() Select Case EDAD Case 0 To 11 : WriteLine("NIÑO") Case 12 To 18 : WriteLine("JOVEN") Case 19 To 49 : WriteLine("ADULTO") Case Else : WriteLine("ANCIANO") End Select WriteLine() WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module REPETITIVA: Las estructuras repetitivas son aquellas que ingresan a un "loop" ó ciclo repetitivo; repitiendo una o varias instrucciones, tantas veces lo hayamos indicado ó definido en nuestra lógica. Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa FOR: Esta estructura repite desde un valor inicial hasta un valor final, termina el bucle o loop cuando la variable que guarda el valor inicial sea mayor al del valor final. EJEMPLO: Elaborar un programa que permita ingresar una letra y muestre la misma letra repetida 20 veces. INICIO LETRA, CONT LETRA CONT = 1 TO 20 LETRA FIN Imports System.console Module Module1 Dim CONT As Integer Dim LETRA As String Sub Main() Write("Ingrese una letra : ") LETRA = ReadLine() WriteLine() For CONT = 1 To 20 Write(LETRA & " ") Next WriteLine() WriteLine() WriteLine("Pulse Enter para Teminar...") ReadLine() End Sub End Module WHILE: Esta estructura repite una o varias sentencias mientras la condición sea verdadera, cuando la condición da falso, se rompe el loop. En esta estructura la instrucción se repiten al menos una vez. EJEMPLO: Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa Ingresar los nombres de “n” alumnos, el programa preguntara si desea continuar (S/N), si la respuesta fuese N(NO), terminara de hacer los ingresos, caso contrario seguirá ingresando nombres. INICIO NOMBRE INTERRUPTOR = "S" NOMBRE " DESEA CONTINUAR (S/N) ? " INTERRUPTOR INTERRUPTOR = " S " FIN Imports System.console Module Module1 Dim NOMBRE As String Dim INTERRUPTOR As String = "S" Sub Main() While (INTERRUPTOR.ToUpper = "S") Write("Ingrese un nombre : ") NOMBRE = ReadLine() WriteLine() Write("Desea continuar(S/N)? ") INTERRUPTOR = ReadLine() WriteLine() End While WriteLine("Pulse Enter para Terminar....") ReadLine() End Sub End Module USO DE LIBRERIAS IMPORTS SYSTEM CLASE CONSOLE La clase console contiene comandos básicos para la manipulación del área de consola. Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa ForegroundColor: Cambia el color de letra a mostrar. Colores de las letras: Console.ForegroundColor = ConsoleColor. EJEMPLO 1: Imports System.console Module Module1 Sub main() ForegroundColor = ConsoleColor.Red WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module EJEMPLO 2: ForegroundColor = ConsoleColor.Yellow WriteLine("Pulse Enter para continuar....") ReadLine() SetCursorPosition: Cambia la posición de impresión, basado en coordenada (Y, X). Dónde: Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa Y = Columna a mostrar. X = Fila a mostrar. EJEMPLO: Imports System.console Module Module1 Sub main() SetCursorPosition(20, 3) WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module 20 3 SetWindowSize: Cambia el tamaño de la ventana de la consola. EJEMPLO: Imports System.console Module Module1 Sub main() SetWindowSize(50, 10) WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module Dónde: 50 = Ancho de la ventana de consola. 10 = Largo de la vantana de consola. 50 10 Title: Muestra el titulo que se va a mostrar en la ventana de consola. EJEMPLO: Profesor:Lugo Ortega Franklin Roman Algoritmos primero piensa, luego programa Imports System.console Module Module1 Sub main() Title = "EJEMPLOS DE LA CLASE CONSOLE" WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module Beep: Activa un sonido de consola. EJEMPLO: Frecuencia : 37 a 32767 Duración : 100, milisegundos. Imports System.console Module Module1 Sub main() Beep(30000, 100) WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module Clear: Limpia la pantalla de consola EJEMPLO: Imports System.console Module Module1 Sub main() WriteLine("Hola soy el Ing. Franklin roman lugo ortega") WriteLine("Espero que mi guía te sea de mucha ayuda") WriteLine() WriteLine("Pulse Enter para limpiar la pantalla de consola") ReadLine() Clear() WriteLine("Pulse Enter para continuar....") ReadLine() End Sub End Module Profesor:Lugo Ortega Franklin Roman