Está en la página 1de 17

Programacin con

Visual Basic .NET


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

Programaci
Programacin con Visual Basic .NET

Contenidos sesin 2
Aplicaciones de consola
Conceptos b
bsicos

Estructura de una Aplicaci


Aplicacin
Variables y constantes
Arrays
Depuraci
Depuracin de C
Cdigo
Operadores
Funciones predefinidas
Sentencias y llneas m
mltiples

Procedimientos

Tipos

Sub
Function

Paso de par
parmetros
Sobrecarga

UCLM-ESI. Programacin con Visual Basic .NET

Estructuras de control

Selecci
Seleccin
Repetici
Repeticin

mbito

De procedimientos
De variables
Vida de las variables

Organizaci
Organizacin del c
cdigo

Contenedores de c
cdigo
Opciones del VS.NET

Resolver ecuaci
ecuacin 2do grado

Control de errores
Pr
Prctica 1

1. 2

Aplicaciones de consola (i)


Se ejecutan dentro de una ventana de llnea de comandos (estilo

DOS).
Clase Console.
Console.

Clase preconstruida del namespaces System.


System.
No es necesario crear una instancia previa.
Mtodos:

WriteLine:
WriteLine: Escribir llnea.
Textos, n
nmeros, expresiones,

Console.WriteLine(
Console.WriteLine(Hola & nombre)
Console.WriteLine(5>2)
Console.WriteLine(5>2)
Uso de par
parmetros

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

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

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(
Console.WriteLine(Pulsar teclas, acabar con INTRO
INTRO)
Console.WriteLine()
Console.WriteLine() escribe l
lnea en blanco
While True
CodTecla=
CodTecla=Console.Read()
Console.Read() lee una tecla pulsada
If CodTecla=13
CodTecla=13 then si pulsado INTRO
Exit While
End If
Console.WriteLine(
Console.WriteLine(cdigo de tecla: {0}
{0}, CodTecla)
CodTecla)
NomTecla=
NomTecla=Chr(CodTecla)
Chr(CodTecla)
ConsoleWriteLine (car
carcter de tecla: {0}
{0}, NomTecla)
NomTecla)
End While
Console.WriteLine(
Console.WriteLine(Ejemplo acabado
acabado)
Console.ReadLine()
Console.ReadLine()

UCLM-ESI. Programacin con Visual Basic .NET

1. 4

Conceptos bsicos de VB.NET

Estructura de una aplicacin

Proyecto: ficheros de cdigo, recursos y


referencias a clases globales
UCLM-ESI. Programacin con Visual Basic .NET

1. 5

Conceptos bsicos de VB.NET

Variables y constantes (i)


Declaracin de Variables:
Dim MiVar As Integer

Al comienzo del procedimiento


Tipos en VB.NET (equivalentes en .NET Framework)
Framework)

Obligatoriedad de la declaraci
declaracin

Boolean,
), Decimal, Double,
Boolean, Byte,
Byte, Char,
Char, Date (DateTime
(DateTime),
Double, Integer
(Int32), Long (Int64), Short (Int16), Single, String,
String,
Object [cualquier tipo, tipo por defecto]
Definido por el usuario
Option Explicit {Off|On}
Off|On}
A Nivel de Proyecto / de Fichero

Obligatoriedad de la tipificaci
tipificacin

Option Strict {Off|On}


Off|On}
A Nivel de Proyecto / de Fichero

UCLM-ESI. Programacin con Visual Basic .NET

1. 6

Conceptos bsicos de VB.NET

Variables y constantes (ii)


Asignacin
MiVar = 6
Dim Nombre As String = Luis
Luis

Valor por defecto

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

Declaracin de Constantes:

Const Color As String = Azul


Azul

UCLM-ESI. Programacin con Visual Basic .NET

1. 7

Conceptos bsicos de VB.NET

Arrays

Declaraci
Declaracin:
Dim
Dim
Dim

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

Asignar y obtener valores:


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

Modificar Tama
Tamao:

Perdiendo los valores anteriores


ReDim Nombres(6)

Conserv
Conservndolos
ReDim Preserve Nombres(6)

Saber el n
nmero de elementos:
UBound(Nombres
)
UBound(Nombres)
UCLM-ESI. Programacin con Visual Basic .NET

1. 8

VS.NET

Depuracin de cdigo ejemplo


Demo con programa PreguntarUsuario

Quitar Dim Nombre As String


String y probar efecto de
Option Explicit {Off|On}
Off|On}

Quitar s
slo As String
String y probar efecto de
Option Strict {Off|On}
Off|On}

Dejar Dim Nombre As String


String bien
Probar depuraci
depuracin paso a paso
Consultar valores de variables
Ventana de comandos

Permite ejecutar rdenes interactivas

UCLM-ESI. Programacin con Visual Basic .NET

1. 9

Conceptos bsicos de VB.NET

Operadores
Aritm
Aritmticos

^ * / \ Mod + -

Concatenaci
Concatenacin de strings
&

Asignaci
Asignacin
=

abreviada:

A += B

equiv.
equiv. A = A+B

Comparaci
Comparacin
< <= > >= = <>

De cadenas

Con patr
patrn
Comodines:

De Objetos

Option Compare {Binary|Text


}
{Binary|Text}
Bonito2

Bonito2 Like B*to#


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

ObjetoA Is ObjetoB

Lgicos y manejo de bits


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

1. 10

Conceptos bsicos de VB.NET

Funciones predefinidas
Cdigos ASCII
Asc Chr

Comprobaci
Comprobacin de Tipos
IsNumeric IsDate IsArray

Num
Numricas
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

Conceptos bsicos de VB.NET

Sentencias y lneas mltiples


Sentencia multil
multilnea

Acabada en un subrayado _

Lnea multisentencia

Separadas por :

UCLM-ESI. Programacin con Visual Basic .NET

1. 12

Procedimientos

Tipos

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)

Llamada

Sub
ProcPrueba()
ProcPrueba()

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

UCLM-ESI. Programacin con Visual Basic .NET

1. 13

Procedimientos

Declaracin y cdigo
Sub
[mbito] Sub NombreProcedimiento[(
ListaPar
metros)]
NombreProcedimiento[(ListaPar
metros)]
[CdigoEjecutable]
digoEjecutable]
[Exit Sub | Return]
Return]
[CdigoEjecutable]
digoEjecutable]
End Sub

Function

[mbito] Function NombreFunci


metros)]
NombreFuncin[(ListaPar
[(ListaPar
metros)] As
TipoDato
[CdigoEjecutable]
digoEjecutable]
[Return Valor]
[NombreFunci
NombreFuncin = Valor]
[Exit Function]
Function]
[CdigoEjecutable]
digoEjecutable]
End Function
UCLM-ESI. Programacin con Visual Basic .NET

1. 14

Procedimientos

Paso de parmetros (i)


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

Paso por Valor

Opci
Opcin por defecto, Se crea una nueva variable

UCLM-ESI. Programacin con Visual Basic .NET

1. 15

Procedimientos

Paso de parmetros (ii)


Paso por Referencia

Ambas variables utilizan la misma memoria.


Los cambios afectan a la variable del c
cdigo llamador.

UCLM-ESI. Programacin con Visual Basic .NET

1. 16

Procedimientos

Paso de parmetros (iii)


Asociacin entre los parmetros escritos en la llamada y
los escritos en la declaracin del procedimiento

Por posici
posicin
Prueba (Importe, DiaHoy)
DiaHoy)

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

UCLM-ESI. Programacin con Visual Basic .NET

1. 17

Procedimientos

Sobrecarga

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


listas de par
parmetros diferenciadas en su n
nmero, orden o tipo.
Overloads Sub Datos()
' c
cdigo del procedimiento
' ............
End Sub
Overloads Sub Datos(ListaParametrosA)
Datos(ListaParametrosA)
' c
cdigo del procedimiento
' ............
End Sub
Overloads Function Datos(ListaParametrosB)
Datos(ListaParametrosB) As
TipoDatoRetorno
' c
cdigo del procedimiento
' ............
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 (decisi
(decisin/selecci
n/seleccin)

If ... Then ... End If


Select ... Case ... End Select

Repeticin (bucle/iteraci
(bucle/iteracin)

While ... End While


Do ... Loop
For ... Next
For Each ... Next

UCLM-ESI. Programacin con Visual Basic .NET

1. 19

Estructuras de Control

Seleccin (i)
If Simple

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

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

1. 20

Estructuras de Control

Seleccin (ii)
If Mltiple

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

Select ... Case


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

ListaN:
ListaN:

Expresi
Expresin
Expr1 To Expr2
Is OpComparaci
OpComparacin Expresi
Expresin

UCLM-ESI. Programacin con Visual Basic .NET

1. 21

Estructuras de Control

Repeticin (i)

While ... End While


While Expresi
Expresin
Cdigo
End While

For ... Next


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

1. 22

Estructuras de Control

Repeticin (ii)
Do ... Loop

Condici
Condicin al principio
Do { While | Until } Expresi
Expresin
Cdigo
[Exit Do]
Do]
Cdigo
Loop

Condici
Condicin al final => se ejecuta al menos 1 vez
Do
Cdigo
[Exit Do]
Do]
Cdigo
Loop { While | Until } Expresi
Expresin

Sin Condici
Condicin

Peligro de bucle infinito

UCLM-ESI. Programacin con Visual Basic .NET

1. 23

mbito

Procedimientos
Capacidad de poder llamar a un procedimiento desde
un punto dado del cdigo.

Depende del nivel de acceso indicado en la declaraci


declaracin del
Sub/
Sub/Function:
Function:
mbito { Sub | Function } Nombre ([Par
([Parmetros])

Public:
Public: P
Pblico

Puede ser llamado desde cualquier m


mdulo del proyecto.

Private:
Private: Privado

Slo puede ser llamado desde el m


mdulo en que se ha declarado.

UCLM-ESI. Programacin con Visual Basic .NET

1. 24

mbito

Variables (i)
Capacidad de poder usar una variable desde un punto
dado del cdigo.

Depende del nivel de acceso indicado en la declaraci


declaracin de la
variable y del lugar donde est
est dicha declaraci
declaracin:
mbito [Dim]
Dim] Nombre As TipoDato

A nivel de procedimiento (sub/


sub/function)
function)

A nivel de bloque (estructura de control)

Dim Nombre ...

A nivel de m
mdulo (module)

Dim Nombre ...

Private Nombre ...

A nivel de proyecto (module)

Public Nombre ...

UCLM-ESI. Programacin con Visual Basic .NET

1. 25

mbito

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

V1
V3
V2

mbito de proyecto
mbito
de procedimiento
mbito
de mdulo

V4
mbito de bloque

Module B
Public Sub Proc2()
...
End Sub
End Module
UCLM-ESI. Programacin con Visual Basic .NET

1. 26

Vida de las variables


El periodo de vida (cuando est activa) depende de su
mbito:

De bloque:
bloque: desde que se declaran hasta que acaba la ejecuci
ejecucin
del bloque.
De procedimiento:
procedimiento: desde que se declaran hasta que termina la
ejecuci
ejecucin del procedimiento.
De mdulo o proyecto:
proyecto: ejecuci
ejecucin de la aplicaci
aplicacin.

Variables Static

Retienen su valor al finalizar el procedimiento/bloque donde se


declaran.
Static [Dim]
Dim] Nombre As TipoDato

Su periodo de vida es el de ejecuci


ejecucin de la aplicaci
aplicacin

UCLM-ESI. Programacin con Visual Basic .NET

1. 27

Organizacin del cdigo


Contenedores de
cdigo

Fsicos:
sicos: archivos .VB
Lgicos:
gicos: elementos
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 c


cdigo:
digo:

2.
3.
4.
5.
6.

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

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

UCLM-ESI. Programacin con Visual Basic .NET

1. 29

Manejo de Errores
2 conceptos relacionados

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

2 tcnicas de gestin de errores:

Estructurada:
Estructurada: mediante excepciones y una estructura de
control para detectar las excepciones producidas.
No estructurada:
estructurada: mediante detecci
deteccin y captura de errores y
saltos no estructurados (GO TO) en el c
cdigo.

UCLM-ESI. Programacin con Visual Basic .NET

1. 30

Manejo de Errores

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

[When
[When Expresi
Expresin]
tipo 1

[When
[When Expresi
Expresin]
tipo N

de errores]

UCLM-ESI. Programacin con Visual Basic .NET

1. 31

Manejo de Errores

Estructurado (ii)
Clase Exception

Message:
Message: descripci
descripcin del error.
Source:
Source: objeto/aplicaci
objeto/aplicacin que origin
origin el error.
StackTrace:
StackTrace: Ruta o traza del c
cdigo donde se produjo el error.
ToString():
ToString(): Devuelve informaci
informacin detallada en un string.
string.

Captura

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

UCLM-ESI. Programacin con Visual Basic .NET

1. 32

Manejo de Errores

No Estructurado
Objeto Err

Proporciona informaci
informacin sobre los errores que se producen.

Number
Description
Clear()
Clear()
Raise()
Raise()

Captura

inicializa el objeto
genera un error provocado

On Error GoTo EtiquetaL


EtiquetaLnea
On Error Resume Next

Reanudacin

Resume [Next]
Next]

Desactivacin

On Error GoTo 0
UCLM-ESI. Programacin con Visual Basic .NET

1. 33

Prctica 1

Resolver ecuacin 2do grado (i)

Mostrar un formulario para preguntar los tres coeficientes de una


una
ecuaci
ecuacin de segundo grado:
A*x^2 + B*x + C = 0

Aadir un bot
botn Calcular
Calcular para obtener las soluciones invocando
al procedimiento de igual nombre.

Preguntar cada coeficiente en un control de tipo TextBox

Indicar si las soluciones son reales o imaginarias con un control


control
CheckBox.
CheckBox.
Mostrar las 2 soluciones en un control etiqueta Soluci
Solucin con texto
azul si son reales y rojo si son imaginarias.
Ejemplo formato 2 soluciones reales: 245 y 78
7823
23
Ejemplo formato 1 soluci
solucin real: -906
06
Ejemplo formato 2 soluciones imaginarias: 148+2
48+21i y 0
06363-186i
86i

Aadir un bot
botn Salir
Salir para acabar.

UCLM-ESI. Programacin con Visual Basic .NET

1. 34

También podría gustarte