Sei sulla pagina 1di 17

Programacin con

Visual Basic .NET


2 El Lenguaje Visual Basic .NET
Francisco Ruiz Manuel ngel Serrano
Escuela Superior de Informtica Inform Universidad de Castilla-La Mancha Castilla-

Contenidos sesin 2
Aplicaciones de consola Conceptos bsicos b
Estructura de una Aplicacin Aplicaci Variables y constantes Arrays Depuracin de Cdigo Depuraci C Operadores Funciones predefinidas Sentencias y lneas mltiples l m Tipos
Sub Function

Programacin con Visual Basic .NET Programaci

Estructuras de control mbito


Seleccin Selecci Repeticin Repetici De procedimientos De variables Vida de las variables

Organizacin del cdigo Organizaci c Control de errores Prctica 1 Pr


Contenedores de cdigo c Opciones del VS.NET

Procedimientos

Paso de parmetros par Sobrecarga


UCLM-ESI. Programacin con Visual Basic .NET

Resolver ecuacin 2do grado ecuaci

1. 2

Aplicaciones de consola (i)


Se ejecutan dentro de una ventana de lnea de comandos (estilo l
DOS). Clase Console. Console.
Clase preconstruida del namespaces System. System. No es necesario crear una instancia previa. Mtodos:
WriteLine: Escribir lnea. WriteLine: l
Textos, nmeros, expresiones, n

Console.WriteLine(Hola & nombre) Console.WriteLine( Console.WriteLine(5>2) Console.WriteLine(5>2)


Uso de parmetros par

Nombre=Luis Nombre=Luis Console.WriteLine(Hola {0}, que tal?, Nombre) Console.WriteLine( tal? Write: Escribir sin salto de lnea. Write: l Readline: Leer texto tecleado. Readline:
Sirve para esperar hasta que usuario pulsa INTRO.

Read: leer una tecla o carcter tecleado. Read: car


UCLM-ESI. Programacin con Visual Basic .NET 1. 3

Aplicaciones de consola (ii)


Ejemplo: Mostrar cdigo y carcter de las teclas
pulsadas acabando al pulsar INTRO
Dim CodTecla as Integer Dim NomTecla as String Console.WriteLine(Pulsar teclas, acabar con INTRO) Console.WriteLine( INTRO Console.WriteLine() escribe lnea en blanco Console.WriteLine() l While True CodTecla=Console.Read() lee una tecla pulsada CodTecla=Console.Read() If CodTecla=13 then si pulsado INTRO CodTecla=13 Exit While End If Console.WriteLine(cdigo de tecla: {0}, CodTecla) Console.WriteLine( {0} CodTecla) NomTecla=Chr(CodTecla) NomTecla=Chr(CodTecla) ConsoleWriteLine (carcter de tecla: {0}, NomTecla) car {0} NomTecla) End While Console.WriteLine(Ejemplo acabado) Console.WriteLine( acabado Console.ReadLine() Console.ReadLine()

UCLM-ESI. Programacin con Visual Basic .NET

1. 4

Estructura de una aplicacin

Conceptos bsicos de VB.NET

Proyecto: ficheros de cdigo, recursos y referencias a clases globales


UCLM-ESI. Programacin con Visual Basic .NET 1. 5

Variables y constantes (i)


Declaracin de Variables:
Dim MiVar As Integer

Conceptos bsicos de VB.NET

Al comienzo del procedimiento Tipos en VB.NET (equivalentes en .NET Framework) Framework)


Boolean, Byte, Char, Date (DateTime), Decimal, Double, Integer Boolean, Byte, Char, (DateTime), Double, (Int32), Long (Int64), Short (Int16), Single, String, String, Object [cualquier tipo, tipo por defecto] Definido por el usuario

Obligatoriedad de la declaracin declaraci


Option Explicit {Off|On} Off|On} A Nivel de Proyecto / de Fichero

Obligatoriedad de la tipificacin tipificaci


Option Strict {Off|On} Off|On} A Nivel de Proyecto / de Fichero
UCLM-ESI. Programacin con Visual Basic .NET 1. 6

Variables y constantes (ii)


Asignacin
MiVar = 6 Dim Nombre As String = Luis Luis

Conceptos bsicos de VB.NET

Valor por defecto Declaracin de Constantes:


0 ; ; 01/01/0001 ; False ; Nothing

Const Color As String = Azul Azul

UCLM-ESI. Programacin con Visual Basic .NET

1. 7

Arrays
Dim Dim Dim

Conceptos bsicos de VB.NET

Declaracin: Declaraci
Colores() As String Nombres(3) As String crea 4: 0,1,2,3 Frutas() As String ={Manzana,Pera} ={Manzana Pera

Asignar y obtener valores:


Nombres(3)=Pepe Nombres(3)=Pepe Var = Nombres(3)

Modificar Tamao: Tama


Perdiendo los valores anteriores
ReDim Nombres(6)

Conservndolos Conserv
ReDim Preserve Nombres(6)

Saber el nmero de elementos: n


UBound(Nombres) UBound(Nombres)
UCLM-ESI. Programacin con Visual Basic .NET 1. 8

Depuracin de cdigo ejemplo


Demo con programa PreguntarUsuario
Quitar Dim Nombre As String y probar efecto de String
Option Explicit {Off|On} Off|On}

VS.NET

Quitar slo As String y probar efecto de s String


Option Strict {Off|On} Off|On}

Dejar Dim Nombre As String bien String Probar depuracin paso a paso depuraci Consultar valores de variables Ventana de comandos
Permite ejecutar rdenes interactivas

UCLM-ESI. Programacin con Visual Basic .NET

1. 9

Operadores
Aritmticos Aritm

Conceptos bsicos de VB.NET

^ * / \ Mod + -

Concatenacin de strings Concatenaci


&

Asignacin Asignaci
= abreviada: A += B equiv. A = A+B equiv.

Comparacin Comparaci
< <= > >= = <>

De cadenas
Con patrn patr Comodines:

Option Compare {Binary|Text} {Binary|Text}


Bonito2 Like B*to# Bonito2 B*to# ? * # [lista] [!lista] [lista] [!lista]

De Objetos

ObjetoA Is ObjetoB

Lgicos y manejo de bits


And Not Or Xor AndAlso OrElse
UCLM-ESI. Programacin con Visual Basic .NET 1. 10

Funciones predefinidas
Cdigos ASCII
Asc Chr

Conceptos bsicos de VB.NET

Comprobacin de Tipos Comprobaci


IsNumeric IsDate IsArray

Numricas Num
Int Fix Randomize Rnd

Cadenas
Len Space InStr Left Right Mid Replace LTrim Rtrim Trim UCase Lcase Format StrConv

Tiempo (fecha y hora)


Now DateAdd DateDiff DatePart

UCLM-ESI. Programacin con Visual Basic .NET

1. 11

Sentencias y lneas mltiples


Sentencia multilnea multil
Acabada en un subrayado _

Conceptos bsicos de VB.NET

Lnea multisentencia
Separadas por :

UCLM-ESI. Programacin con Visual Basic .NET

1. 12

Tipos

Procedimientos

Todo el cdigo ejecutable est contenido en rutinas,


llamadas procedimientos, de tres tipos:
Sub (procedimientos), no devuelven valor Function (funciones), devuelven un valor Property (para manejar propiedades de objetos) Sub
ProcPrueba() ProcPrueba()

Llamada

Function
CalcRaiz() CalcRaiz() Resultado = CalcRaiz() + 5 CalcRaiz()

UCLM-ESI. Programacin con Visual Basic .NET

1. 13

Declaracin y cdigo
Sub
[mbito] Sub NombreProcedimiento[(ListaParmetros)] NombreProcedimiento[(ListaParmetros)] [CdigoEjecutable] digoEjecutable] [Exit Sub | Return] Return] [CdigoEjecutable] digoEjecutable] End Sub [mbito] Function NombreFuncin[(ListaParmetros)] As NombreFunci [(ListaParmetros)] TipoDato [CdigoEjecutable] digoEjecutable] [Return Valor] [NombreFuncin = Valor] NombreFunci [Exit Function] Function] [CdigoEjecutable] digoEjecutable] End Function
UCLM-ESI. Programacin con Visual Basic .NET 1. 14

Procedimientos

Function

Paso de parmetros (i)


[Optional] [ByVal|ByRef] [ParamArray] Nombre As TipoDato

Procedimientos

Paso por Valor


Opcin por defecto, Se crea una nueva variable Opci

UCLM-ESI. Programacin con Visual Basic .NET

1. 15

Paso de parmetros (ii)


Paso por Referencia
Ambas variables utilizan la misma memoria. Los cambios afectan a la variable del cdigo llamador. c

Procedimientos

UCLM-ESI. Programacin con Visual Basic .NET

1. 16

Paso de parmetros (iii)


Asociacin entre los parmetros escritos en la llamada y
los escritos en la declaracin del procedimiento
Por posicin posici
Prueba (Importe, DiaHoy) DiaHoy)

Procedimientos

Por nombre
Prueba (Fecha:=DiaHoy, Cantidad:=Importe) (Fecha:=DiaHoy,

UCLM-ESI. Programacin con Visual Basic .NET

1. 17

Sobrecarga

Procedimientos

Varias versiones de un procedimiento (mismo nombre), pero con


listas de parmetros diferenciadas en su nmero, orden o tipo. par n
Overloads Sub Datos() ' cdigo del procedimiento c ' ............ End Sub Overloads Sub Datos(ListaParametrosA) Datos(ListaParametrosA) ' cdigo del procedimiento c ' ............ End Sub Overloads Function Datos(ListaParametrosB) As Datos(ListaParametrosB) TipoDatoRetorno ' cdigo del procedimiento c ' ............ End Function
UCLM-ESI. Programacin con Visual Basic .NET 1. 18

Estructuras de Control
Permiten cambiar el flujo de ejecucin a formas no
secuenciales. Tipos Seleccin (decisin/seleccin) (decisi n/selecci

If ... Then ... End If Select ... Case ... End Select

Repeticin (bucle/iteracin) (bucle/iteraci


While ... End While Do ... Loop For ... Next For Each ... Next

UCLM-ESI. Programacin con Visual Basic .NET

1. 19

Seleccin (i)
If Simple

Estructuras de Control

If Expresin Then Expresi Cdigo End If If Expresin Then Instruccin Expresi Instrucci

If Doble
If Expresin Then Expresi Cdigo Else Cdigo End If If Expresin Then Instruccin1 Else Instruccin2 Expresi Instrucci Instrucci
UCLM-ESI. Programacin con Visual Basic .NET 1. 20

Seleccin (ii)
If Mltiple

Estructuras de Control

Select ... Case


Select Case Expresin Expresi Case Lista1 Cdigo [Case Lista2] Cdigo [Case Else] Else] Cdigo End Select

If Expresin1 Then Expresi Cdigo ElseIf Expresin2 Then Expresi Cdigo ... [ElseIf ExpresinN Then] Expresi Then] Cdigo Else Cdigo End If

ListaN: ListaN:
Expresin Expresi Expr1 To Expr2 Is OpComparacin Expresin OpComparaci Expresi
1. 21

UCLM-ESI. Programacin con Visual Basic .NET

Repeticin (i)

Estructuras de Control

While ... End While


While Expresin Expresi Cdigo End While

For ... Next


For contador = inicio To fin [Step incremento] [Step Cdigo [Exit For] For] Cdigo Next For Each elemento In Coleccin/Array Coleccin/Array Cdigo [Exit For] For] Cdigo Next
UCLM-ESI. Programacin con Visual Basic .NET 1. 22

Repeticin (ii)
Do ... Loop

Estructuras de Control

Condicin al principio Condici


Do { While | Until } Expresin Expresi Cdigo [Exit Do] Do] Cdigo Loop

Condicin al final => se ejecuta al menos 1 vez Condici


Do Cdigo [Exit Do] Do] Cdigo Loop { While | Until } Expresin Expresi

Sin Condicin Condici


Peligro de bucle infinito

UCLM-ESI. Programacin con Visual Basic .NET

1. 23

Procedimientos
Capacidad de poder llamar a un procedimiento desde
un punto dado del cdigo.
Depende del nivel de acceso indicado en la declaracin del declaraci Sub/Function: Sub/ Function:
mbito { Sub | Function } Nombre ([Parmetros]) ([Par

mbito

Public: Pblico Public: P


Puede ser llamado desde cualquier mdulo del proyecto. m

Private: Privado Private:


Slo puede ser llamado desde el mdulo en que se ha declarado. m

UCLM-ESI. Programacin con Visual Basic .NET

1. 24

Variables (i)
Capacidad de poder usar una variable desde un punto
dado del cdigo.
Depende del nivel de acceso indicado en la declaracin de la declaraci variable y del lugar donde est dicha declaracin: est declaraci
mbito [Dim] Nombre As TipoDato Dim]

mbito

A nivel de procedimiento (sub/function) sub/ function)


Dim Nombre ...

A nivel de bloque (estructura de control)


Dim Nombre ...

A nivel de mdulo (module) m


Private Nombre ...

A nivel de proyecto (module)


Public Nombre ...
UCLM-ESI. Programacin con Visual Basic .NET 1. 25

Variables (ii)
Module A Public V1 As String Private V2 As Integer Public Sub Main() Dim V3 As Char ... End Sub Private Sub Proc1() If V2>5 then Dim V4 as string ... End If End Sub End Module Module B Public Sub Proc2() ... End Sub End Module
UCLM-ESI. Programacin con Visual Basic .NET 1. 26

mbito

mbito de proyecto mbito de procedimiento mbito de mdulo

V1 V3 V2 V4

mbito de bloque

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 ejecucin bloque: ejecuci del bloque. De procedimiento: desde que se declaran hasta que termina la procedimiento: ejecucin del procedimiento. ejecuci De mdulo o proyecto: ejecucin de la aplicacin. proyecto: ejecuci aplicaci Retienen su valor al finalizar el procedimiento/bloque donde se declaran.
Static [Dim] Nombre As TipoDato Dim]

Variables Static

Su periodo de vida es el de ejecucin de la aplicacin ejecuci aplicaci

UCLM-ESI. Programacin con Visual Basic .NET

1. 27

Organizacin del cdigo


Contenedores de
cdigo
Fsicos: archivos .VB sicos: Lgicos: elementos gicos: con declaraciones y procedimientos
Mdulos, Clases, Interfaces, Estructuras, ... Namespaces (metacontenedores) metacontenedores)

UCLM-ESI. Programacin con Visual Basic .NET

1. 28

Organizacin del cdigo - demo


Probar opciones de VS.NET para organizar el cdigo:
1.

Listas desplegables del editor de cdigo: c digo:


De Clases, para elegir el mdulo/clase. Clases, m De Mtodos, para elegir el procedimiento/mtodo. todos, procedimiento/m

2. 3. 4. 5. 6.

Agregar nuevo mdulo (y fichero). m Crear mdulo dentro de un fichero existente. m Cambiar nombre de un fichero. Excluir un fichero de cdigo. c Aadir un fichero de cdigo ya existente. c

UCLM-ESI. Programacin con Visual Basic .NET

1. 29

Manejo de Errores
2 conceptos relacionados
Error: Evento que se produce durante el funcionamiento de un Error: programa, provocando una interrupcin en su flujo de interrupci ejecucin. Al producirse esta situacin, el error genera un ejecuci situaci objeto excepcin. excepci Excepcin: Un objeto generado por un error, que contiene Excepci informacin sobre las caractersticas del error que se ha informaci caracter producido.

2 tcnicas de gestin de errores:

Estructurada: mediante excepciones y una estructura de Estructurada: control para detectar las excepciones producidas. No estructurada: mediante deteccin y captura de errores y estructurada: detecci saltos no estructurados (GO TO) en el cdigo. c
UCLM-ESI. Programacin con Visual Basic .NET 1. 30

Estructurado (i)
Try Cdigo sensible a errores [Exit Try] Try] Cdigo sensible a errores [Catch [Excepcin [As Tipo1]] [Excepci [As Cdigo respuesta a error de [Exit Try]] Try]] ... [Catch [Excepcin [As TipoN]] [Excepci [As TipoN]] Cdigo respuesta a error de [Exit Try]] Try]] ... [Finally Cdigo posterior al control End Try

Manejo de Errores

[When Expresin] [When Expresi tipo 1

[When Expresin] [When Expresi tipo N

de errores]

UCLM-ESI. Programacin con Visual Basic .NET

1. 31

Estructurado (ii)
Clase Exception
Message: descripcin del error. Message: descripci Source: objeto/aplicacin que origin el error. Source: objeto/aplicaci origin StackTrace: Ruta o traza del cdigo donde se produjo el error. StackTrace: c ToString(): Devuelve informacin detallada en un string. ToString(): informaci string.
Try x=x/y Catch ex As OverFlowException When y=0 MsgBox(ex.toString) MsgBox(ex.toString) Catch ex As Exception Console.Writeline(ex.Message) Console.Writeline(ex.Message) Console.Writeline(ex.Source) Console.Writeline(ex.Source) End Try

Manejo de Errores

Captura

UCLM-ESI. Programacin con Visual Basic .NET

1. 32

No Estructurado
Objeto Err
Proporciona informacin sobre los errores que se producen. informaci
Number Description Clear() Clear() Raise() Raise()

Manejo de Errores

Captura

inicializa el objeto genera un error provocado

On Error GoTo EtiquetaLnea EtiquetaL

Reanudacin

On Error Resume Next

Desactivacin

Resume [Next] Next] On Error GoTo 0

UCLM-ESI. Programacin con Visual Basic .NET

1. 33

Resolver ecuacin 2do grado (i)

Mostrar un formulario para preguntar los tres coeficientes de una una ecuacin de segundo grado: ecuaci
A*x^2 + B*x + C = 0

Prctica 1

Preguntar cada coeficiente en un control de tipo TextBox

Aadir un botn Calcular para obtener las soluciones invocando bot Calcular al procedimiento de igual nombre.
Indicar si las soluciones son reales o imaginarias con un control control CheckBox. CheckBox. Mostrar las 2 soluciones en un control etiqueta Solucin con texto Soluci azul si son reales y rojo si son imaginarias. Ejemplo formato 2 soluciones reales: 245 y 7823 78 23 Ejemplo formato 1 solucin real: -906 soluci 06 Ejemplo formato 2 soluciones imaginarias: 148+21i y 063-186i 48+2 0 63- 86i

Aadir un botn Salir para acabar. bot Salir


1. 34

UCLM-ESI. Programacin con Visual Basic .NET

Potrebbero piacerti anche