Você está na página 1de 6

Ejemplo

En el ejemplo siguiente se muestra el uso de la sintaxis de varias


lneas de la instruccin If...Then...Else.
VB
Dim count As Integer = 0
Dim message As String

If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
El ejemplo siguiente contiene
instrucciones If...Then...Else anidadas.
VB
Private Function CheckIfTime() As Boolean
' Determine the current day of week and hour of day.
Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
Dim hour As Integer = DateTime.Now.Hour

' Return True if Wednesday from 2 to 4 P.M.,


' or if Thursday from noon to 1 P.M.
If dayW = DayOfWeek.Wednesday Then
If hour = 14 Or hour = 15 Then
Return True
Else
Return False
End If
ElseIf dayW = DayOfWeek.Thursday Then
If hour = 12 Then
Return True

Else
Return False
End If
Else
Return False
End If
End Function

EJERCICIO RESUELTO CON USO DE GOTO


Generar el cdigo correspondiente al pseudocdigo que se muestra a
continuacin, considerando que Numero datos es un valor fijo de 35, y que
los datos se encuentran en el fichero notas.dat, que se habr creado
previamente.

Pseudocdigo ejemplo de uso de IrA (GoTo)


1. Inicio [Ejemplo de IrA curso VB aprenderaprogramar.com]
2. Leer Numerodatos [Establece el n de datos a extraer]
3. [El dato esperado en fichero debe valer entre cero y diez]
4. Desde i = 1 hasta Numerodatos Hacer
Leer Dato(i)

Si Dato(i) < 0 Dato(i) > 10 Entonces [Dato no vlido]


IrA 99 [Envo a Gestin de Errores]
FinSi
Suma = Suma + Dato(i)
Siguiente
5. Media = Suma / Numerodatos
6. Mostrar La media es, Media
7. Finalizar
99. [Gestin de Errores]
99.1 Mostrar No se pudo completar la extraccin de datos. Motivo:
dato no vlido. Revise archivo y vuelva a intentarlo
99.2 Mostrar Gracias por utilizar este programa

100. Fin
SOLUCIN AL EJERCICIO CON USO DE GOTO
2. Cdigo (versiones VB menos recientes)
'[Curso VB aprenderaprogramar.com]
'[Ejemplo de IrA]
Option Explicit
Dim Canal As Integer
Dim i As Integer
Dim Dato(35) As Single
Dim Suma!, Media As Single
Private Sub Form_Load()
Show
LabelResultado.Alignment = 2
LabelResultado.FontBold = True
'[Apertura del archivo]
Canal = FreeFile
Open "C:\notas.dat" For Input As Canal
For i = 1 To 35
'[Lectura de datos desde archivo]
Input #Canal, Dato(i)
If Dato(i) < 0 Or Dato(i) > 10 Then
'[Dato no vlido]
GoTo 99 '[Envo a gestin de errores]
End If
Suma = Suma + Dato(i)
Next i
Media = Suma / 35
MsgBox("La media es " & Media)
Close Canal '[Cerramos el archivo]
Unload Form1
End
99 '[Gestin de errores]
LabelResultado = "No se pudo completar la extraccin de datos. Motivo:
dato no vlido. Revise archivo y vuelva a intentarlo" & vbCrLf & "Gracias por
utilizar este programa"
3. Cdigo (versiones VB ms recientes)

REM Curso Visual Basic aprenderaprogramar.com


Option Explicit On
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

Dim i As Integer
Dim Dato(35) As Single
Dim Suma, Media As Single
LabelResultado.TextAlign = ContentAlignment.MiddleCenter
LabelResultado.Font = New Font("Arial", 10, FontStyle.Bold)
LabelResultado.Text = ""
'[Apertura del archivo]
Dim myFileToRead As New
System.IO.StreamReader("C:\Users\Asus\Desktop\notas.dat", False)
For i = 1 To 35
'[Lectura de datos desde archivo]
Dato(i) = myFileToRead.ReadLine()
If Dato(i) < 0 Or Dato(i) > 10 Then '[Dato no vlido]
GoTo 99 '[Envo a gestin de errores]
End If
Suma = Suma + Dato(i)
Next i
Media = Suma / 35
MsgBox("La media es " & Media)
myFileToRead.Close()
Me.Close()
End
99:
'[Gestin de errores]
LabelResultado.Text = "No se pudo completar la extraccin de datos.
Motivo: dato no vlido. Revise archivo y vuelva a intentarlo" & vbCrLf &
"Gracias por utilizar este programa"
myFileToRead.Close()
End Sub
End Class

Instruccion Goto
Transfiere el control a una lnea especifica del cdigo, identificada por una
etiqueta o por un
numero de lnea.
Goto (etiqueta o numero de lnea)
Ejemplo:
Dim R As Single, A As Single
Print Escribir 0 para finalizar
Comienzo:
R = InputBox(Radio:)
If R <= 0 Then
Exit Sub

Else
A = 3.141592 * R^2
Print Area = ; A
End If
Goto Comienzo
4. EJERCICIO RESUELTO
Escribir una aplicacin que calcule el capital total de una cuenta de ahorro
despus de un
periodo de N aos a un inters anual del R% suponiendo un capital inicial de
C Bolvares.
Imprimir el capital acumulado por cada ao transcurrido.
La solucin de este ejemplo puede ser as:
1. Se solicita el capital y el periodo de N aos
2. Se calcula el capital acumulado despus del primer ao y se imprime
3. Partiendo del capital acumulado anterior, se calcula el capital acumulado
despus del
siguiente ao y se imprime; y asi sucesivamente.
Codificacin: (No olvide asignar a la propiedad Redraw del Form el valor
True)
Private Sub Form_Load ( )
Interes Compuesto
Dim Capital As Double, TPInt As Integer
Dim NAos As Integer, R As Integer, I As Integer
Capital = InputBox(Capital a invertir)
NAos = InputBox(Periodo en aos)
R = InputBox(Tipo de Inters)
Escribir ao a ao los resultados redondeados
For I = 1 To Naos
Capital = Int(Capital + R / 100 * Capital + 0.5)
Ing. Raymond Marquina 8
Print Capital Total despus de: ; I; aos; Capital
Next I
End Sub
5. . El siguiente EJERCICIO DE GoTo y Resume.

Private Sub Command1_Click()


Dim NombreAplic As String
On Error GoTo ManipulaErr
NombreAplic = InputBox("Ingrese el nombre de la aplicacin:")
Shell NombreAplic, vbNormalFocus
Exit Sub
ManipulaErr:
Fundamentos de Programacin en Visual Basic
Parte 6: Depuracin, Validacin, y Manipulacin de errores - 67
If Err.Number = 53 Then
MsgBox "No se encontro la aplicacin"
If MsgBox("Desea intentarlo nuevamente?", vbYesNo) _
= vbYes Then
NombreAplic = InputBox _
("Ingrese el nombre de la aplicacin:")
Resume 'Intentar nuevamente
Else
Resume Next 'Ejecutar la siguiente instruccin
End If
Else
MsgBox "Error desconocido"
End If
End Sub

Você também pode gostar