2 - El Lenguaje Visual Basic - UCLM

Transcription

Programación conVisual Basic .NET2 – El Lenguaje Visual Basic .NETFrancisco RuizManuel Ángel SerranoEscuela Superior de InformáticaUniversidad de Castilla-La Mancha

Programación con Visual Basic .NETContenidos sesión 2 Aplicaciones de consola Conceptos básicos Estructura de una AplicaciónVariables y constantesArraysDepuración de CódigoOperadoresFunciones predefinidasSentencias y líneas múltiples Procedimientos Tipos SubFunctionPaso de parámetrosSobrecargaUCLM-ESI. Programación con Visual Basic .NET Estructuras de control SelecciónRepetición Ámbito De procedimientosDe variablesVida de las variables Organización del código Contenedores de códigoOpciones del VS.NET Resolver ecuación 2do grado Control de errores Práctica 11. 2

Aplicaciones de consola (i) Se ejecutan dentro de una ventana de línea de comandos (estilo DOS).Clase Console. Clase preconstruida del namespaces System.No es necesario crear una instancia previa.Métodos: WriteLine:WriteLine: Escribir lílínea.– Textos, núnúmeros, �Hola “ & nombre)Console.WriteLine(5 2)Console.WriteLine(5 2)– Uso de paráparámetros Nombre “Nombre ne(“Hola {0}, que tal?”tal?”, Nombre)Write:Write: Escribir sin salto de lílínea.Readline:Readline: Leer texto tecleado.– Sirve para esperar hasta que usuario pulsa INTRO. Read:Read: leer una tecla o carácarácter tecleado.UCLM-ESI. Programación con Visual Basic .NET1. 3

Aplicaciones de consola (ii) Ejemplo: Mostrar código y carácter de las teclaspulsadas acabando al pulsar INTRODim CodTecla as IntegerDim NomTecla as r teclas, acabar con ine() ‘ escribe lílínea en blancoWhile TrueCodTecla CodTecla Console.Read()Console.Read() ‘ lee una tecla pulsadaIf CodTecla 13CodTecla 13 then ‘ si pulsado INTROExit WhileEnd IfConsole.WriteLine(Console.WriteLine(“código de tecla: {0}”{0}”, CodTecla)CodTecla)NomTecla NomTecla Chr(CodTecla)Chr(CodTecla)ConsoleWriteLine (“carácarácter de tecla: {0}”{0}”, NomTecla)NomTecla)End o dLine()UCLM-ESI. Programación con Visual Basic .NET1. 4

Conceptos básicos de VB.NETEstructura de una aplicaciónProyecto: ficheros de código, recursos yreferencias a clases globalesUCLM-ESI. Programación con Visual Basic .NET1. 5

Conceptos básicos de VB.NETVariables y constantes (i) Declaración de Variables:Dim MiVar As Integer Al comienzo del procedimientoTipos en VB.NET (equivalentes en .NET Framework) Obligatoriedad de la declaración Boolean, Byte, Char, Date (DateTime), Decimal, Double, Integer(Int32), Long (Int64), Short (Int16), Single, String,Object [cualquier tipo, tipo por defecto]Definido por el usuarioOption Explicit {Off On}A Nivel de Proyecto / de FicheroObligatoriedad de la tipificación Option Strict {Off On}A Nivel de Proyecto / de FicheroUCLM-ESI. Programación con Visual Basic .NET1. 6

Conceptos básicos de VB.NETVariables y constantes (ii) AsignaciónMiVar 6Dim Nombre As String “Luis”Luis” Valor por defecto 0 ; “” ; 01/01/0001 ; False ; Nothing Declaración de Constantes:Const Color As String “Azul”Azul”UCLM-ESI. Programación con Visual Basic .NET1. 7

Conceptos básicos de VB.NETArrays Declaración:Dim Colores() As StringDim Nombres(3) As String ‘crea 4: 0,1,2,3Dim Frutas() As String {“ {“Manzana”Manzana”,”Pera”Pera”} Asignar y obtener valores:Nombres(3) “Nombres(3) “Pepe”Pepe”Var Nombres(3) Modificar Tamaño: Perdiendo los valores anterioresReDim Nombres(6) ConservándolosReDim Preserve Nombres(6) Saber el número de elementos:UBound(Nombres)UBound(Nombres)UCLM-ESI. Programación con Visual Basic .NET1. 8

VS.NETDepuración de código – ejemplo Demo con programa “PreguntarUsuario” Quitar “Dim Nombre As String” y probar efecto de Option Explicit {Off On} Quitar sólo “As String” y probar efecto de Option Strict {Off On} Dejar “Dim Nombre As String” bienProbar depuración paso a pasoConsultar valores de variablesVentana de comandos Permite ejecutar órdenes interactivasUCLM-ESI. Programación con Visual Basic .NET1. 9

Conceptos básicos de VB.NETOperadores Aritméticos * / \ Mod - Concatenación de strings& Asignación abreviada:A Bequiv.equiv. A A B Comparación De cadenas Con patrópatrónComodines:De ObjetosOption Compare {Binary Text}{Binary Text}“Bonito2””Bonito2” Like “B*to#B*to#”? * # [lista] [!lista][lista][!lista]ObjetoA Is ObjetoB Lógicos y manejo de bitsAnd Not Or Xor AndAlso OrElseUCLM-ESI. Programación con Visual Basic .NET1. 10

Conceptos básicos de VB.NETFunciones predefinidas Códigos ASCIIAsc Chr Comprobación de TiposIsNumeric IsDate IsArray NuméricasInt Fix Randomize Rnd CadenasLen Space InStr Left Right Mid Replace LTrim RtrimTrim UCase Lcase Format StrConv Tiempo (fecha y hora)Now DateAdd DateDiff DatePartUCLM-ESI. Programación con Visual Basic .NET1. 11

Conceptos básicos de VB.NETSentencias y líneas múltiples Sentencia multilínea Acabada en un subrayado Línea multisentencia Separadas por :UCLM-ESI. Programación con Visual Basic .NET1. 12

ProcedimientosTipos Todo el código ejecutable está contenido en rutinas,llamadas procedimientos, de tres tipos: Sub (procedimientos), no devuelven valorFunction (funciones), devuelven un valorProperty (para manejar propiedades de objetos) Llamada SubProcPrueba()ProcPrueba() FunctionCalcRaiz()CalcRaiz()Resultado CalcRaiz()CalcRaiz() 5UCLM-ESI. Programación con Visual Basic .NET1. 13

ProcedimientosDeclaración y código Sub[Ámbito] Sub cutable][Exit Sub Return][CódigoEjecutable]End Sub Function[Ámbito] Function NombreFunción[(ListaParámetros)] AsTipoDato[CódigoEjecutable][Return Valor][NombreFunción Valor][Exit Function][CódigoEjecutable]End FunctionUCLM-ESI. Programación con Visual Basic .NET1. 14

ProcedimientosPaso de parámetros (i)[Optional] [ByVal ByRef] [ParamArray] Nombre AsTipoDato Paso por Valor Opción por defecto, Se crea una nueva variableUCLM-ESI. Programación con Visual Basic .NET1. 15

ProcedimientosPaso de parámetros (ii) Paso por Referencia Ambas variables utilizan la misma memoria.Los cambios afectan a la variable del código llamador.UCLM-ESI. Programación con Visual Basic .NET1. 16

ProcedimientosPaso de parámetros (iii) Asociación entre los parámetros escritos en la llamada ylos escritos en la declaración del procedimiento Por posiciónPrueba (Importe, DiaHoy) Por nombrePrueba (Fecha: DiaHoy, Cantidad: Importe)UCLM-ESI. Programación con Visual Basic .NET1. 17

ProcedimientosSobrecarga Varias versiones de un procedimiento (mismo nombre), pero conlistas de parámetros diferenciadas en su número, orden o tipo.Overloads Sub Datos()' cócódigo del procedimiento' .End SubOverloads Sub Datos(ListaParametrosA)Datos(ListaParametrosA)' cócódigo del procedimiento' .End SubOverloads Function Datos(ListaParametrosB)Datos(ListaParametrosB) AsTipoDatoRetorno' cócódigo del procedimiento' .End FunctionUCLM-ESI. Programación con Visual Basic .NET1. 18

Estructuras de Control Permiten cambiar el flujo de ejecución a formas no secuenciales.Tipos Selección (decisión/selección) If . Then . End IfSelect . Case . End SelectRepetición (bucle/iteración) While . End WhileDo . LoopFor . NextFor Each . NextUCLM-ESI. Programación con Visual Basic .NET1. 19

Estructuras de ControlSelección (i) If SimpleIf Expresión ThenCódigoEnd IfIf Expresión Then Instrucción If DobleIf Expresión ThenCódigoElseCódigoEnd IfIf Expresión Then Instrucción1 Else Instrucción2UCLM-ESI. Programación con Visual Basic .NET1. 20

Estructuras de ControlSelección (ii) If MúltipleIf Expresión1 ThenCódigoElseIf Expresión2 ThenCódigo.[ElseIf ExpresiónN Then]CódigoElseCódigoEnd If Select . CaseSelect Case ExpresiónCase Lista1Código[Case Lista2]Código[Case Else]CódigoEnd Select ListaN: UCLM-ESI. Programación con Visual Basic .NETExpresiónExpr1 To Expr2Is OpComparación Expresión1. 21

Estructuras de ControlRepetición (i) While . End WhileWhile ExpresiónCódigoEnd While For . NextFor contador inicio To fin [Step incremento]Código[Exit For]CódigoNextFor Each elemento In Colección/ArrayCódigo[Exit For]CódigoNextUCLM-ESI. Programación con Visual Basic .NET1. 22

Estructuras de ControlRepetición (ii) Do . Loop Condición al principioDo { While Until } ExpresiónCódigo[Exit Do]CódigoLoop Condición al final se ejecuta al menos 1 vezDoCódigo[Exit Do]CódigoLoop { While Until } Expresión Sin Condición Peligro de bucle infinitoUCLM-ESI. Programación con Visual Basic .NET1. 23

ÁmbitoProcedimientos Capacidad de poder llamar a un procedimiento desdeun punto dado del código. Depende del nivel de acceso indicado en la declaración delSub/Function:Ámbito { Sub Function } Nombre ([Parámetros]) Public: Público Puede ser llamado desde cualquier módulo del proyecto.Private: Privado Sólo puede ser llamado desde el módulo en que se ha declarado.UCLM-ESI. Programación con Visual Basic .NET1. 24

ÁmbitoVariables (i) Capacidad de poder usar una variable desde un puntodado del código. Depende del nivel de acceso indicado en la declaración de lavariable y del lugar donde está dicha declaración:Ámbito [Dim] Nombre As TipoDato A nivel de procedimiento (sub/function) A nivel de bloque (estructura de control) Dim Nombre .A nivel de módulo (module) Dim Nombre .Private Nombre .A nivel de proyecto (module) Public Nombre .UCLM-ESI. Programación con Visual Basic .NET1. 25

ÁmbitoVariables (ii)Module APublic V1 As StringPrivate V2 As IntegerPublic Sub Main()Dim V3 As Char.End SubPrivate Sub Proc1()If V2 5 thenDim V4 as string.End IfEnd SubEnd ModuleV1V3V2ámbito de proyectoámbitode procedimientoámbitode móduloV4ámbito de bloqueModule BPublic Sub Proc2().End SubEnd ModuleUCLM-ESI. Programación con Visual Basic .NET1. 26

Vida de las variables El periodo de vida (cuando está activa) depende de suámbito: De bloque: desde que se declaran hasta que acaba la ejecucióndel bloque.De procedimiento: desde que se declaran hasta que termina laejecución del procedimiento.De módulo o proyecto: ejecución de la aplicación. Variables Static Retienen su valor al finalizar el procedimiento/bloque donde sedeclaran.Static [Dim] Nombre As TipoDato Su periodo de vida es el de ejecución de la aplicaciónUCLM-ESI. Programación con Visual Basic .NET1. 27

Organización del código Contenedores decódigo Físicos: archivos .VBLógicos: elementoscon declaraciones yprocedimientos Módulos, Clases,Interfaces,Estructuras, .Namespaces(metacontenedores)UCLM-ESI. Programación con Visual Basic .NET1. 28

Organización del código - demo Probar opciones de VS.NET para organizar el código:1.Listas desplegables del editor de código: 2.3.4.5.6.De Clases, para elegir el módulo/clase.De Métodos, para elegir el procedimiento/método.Agregar nuevo módulo (y fichero).Crear módulo dentro de un fichero existente.Cambiar nombre de un fichero.Excluir un fichero de código.Añadir un fichero de código ya existente.UCLM-ESI. Programación con Visual Basic .NET1. 29

Manejo de Errores 2 conceptos relacionados Error: Evento que se produce durante el funcionamiento de unprograma, provocando una interrupción en su flujo deejecución. Al producirse esta situación, el error genera unobjeto excepción.Excepción: Un objeto generado por un error, que contieneinformación sobre las características del error que se haproducido. 2 técnicas de gestión de errores: Estructurada: mediante excepciones y una estructura decontrol para detectar las excepciones producidas.No estructurada: mediante detección y captura de errores ysaltos no estructurados (GO TO) en el código.UCLM-ESI. Programación con Visual Basic .NET1. 30

Manejo de ErroresEstructurado (i)TryCódigo sensible a errores[Exit Try]Código sensible a errores[Catch [Excepción [As Tipo1]]Código respuesta a error de[Exit Try]].[Catch [Excepción [As TipoN]]Código respuesta a error de[Exit Try]].[FinallyCódigo posterior al controlEnd TryUCLM-ESI. Programación con Visual Basic .NET[When Expresión]tipo 1[When Expresión]tipo Nde errores]1. 31

Manejo de ErroresEstructurado (ii) Clase Exception Message: descripción del error.Source: objeto/aplicación que originó el error.StackTrace: Ruta o traza del código donde se produjo el error.ToString(): Devuelve información detallada en un string. CapturaTryx x/yCatch ex As OverFlowException When y 0MsgBox(ex.toString)Catch ex As eline(ex.Source)End TryUCLM-ESI. Programación con Visual Basic .NET1. 32

Manejo de ErroresNo Estructurado Objeto Err Proporciona información sobre los errores que se producen. NumberDescriptionClear()Raise() Capturainicializa el objetogenera un error provocadoOn Error GoTo EtiquetaLíneaOn Error Resume Next ReanudaciónResume [Next] DesactivaciónOn Error GoTo 0UCLM-ESI. Programación con Visual Basic .NET1. 33

Práctica 1Resolver ecuación 2do grado (i) Mostrar un formulario para preguntar los tres coeficientes de unaecuación de segundo grado:A*x 2 B*x C 0 Añadir un botón “Calcular” para obtener las soluciones invocandoal procedimiento de igual nombre. Preguntar cada coeficiente en un control de tipo TextBoxIndicar si las soluciones son reales o imaginarias con un controlCheckBox.Mostrar las 2 soluciones en un control etiqueta “Solución” con textoazul si son reales y rojo si son imaginarias.Ejemplo formato 2 soluciones reales: “2’45 y 78’23”Ejemplo formato 1 solución real: “-9’06”Ejemplo formato 2 soluciones imaginarias: “1’48 2’1i y 0’63-1’86i”Añadir un botón “Salir” para acabar.UCLM-ESI. Programación con Visual Basic .NET1. 34

UCLM-ESI. Programación con Visual Basic .NET 1. 2 Programación con Visual Basic .NET Contenidos sesión 2 Aplicaciones de consola Conceptos básicos Estructura de una Aplicación Variables y constantes Arrays Depuración de Código Operadores Funciones predefinidas Sentencias y líneas múltiples Procedimientos Tipos Sub Function Paso de parámetros