Ejercicio resuelto Visual Basic: programa con gestión errores. Ejemplo con On Error y Err.Number. (CU00354A)

Resumen: Entrega nº53 del curso Aprender a programar en Visual Basic desde cero.
Codificación aprenderaprogramar.com: CU00354A

 

 

EJERCICIO

Se ha desarrollado un programa (programa R02) cuyo pseudocódigo se indica a continuación. Este programa consta de dos subprogramas llamados GeneraDato y Raíz. A través de GeneraDato se solicita un número entre 1 y 20 al usuario, mientras que Raíz devuelve la raíz cuadrada de ese número entero.

Visual Basic
 

Se desea crear un programa R03 con Visual Basic que realice lo previsto para el programa R02 y que además introduzca un procedimiento para gestión de errores basado en On Error que impida la parada de este programa en caso de que el usuario no introduzca el tipo de dato correcto (por ejemplo que introduzca una letra en lugar de un número). Si el usuario introduce un dato incorrecto, el programa deberá recuperarse, mostrar un mensaje informativo indicando que se ha producido un error, mostrar que la raíz de cero es cero y terminar.

Nota: usaremos inputBox para solicitar datos en Visual Basic y msgBox para mostrar mensajes de aviso o de resultados.

PROGRAMA R02 - Curso Visual Basic aprenderaprogramar.com

Variables

Enteras: Dato

1. Inicio

2. Llamar Generadato

3. Llamar Raiz(Dato)

4. Fin

 

Módulo Generadato

1. Mientras Dato < 1 ó Dato > 20

Mostrar “Introduzca un número entero entre 1 y 20”

Pedir Dato [Aquí puede originarse el error]

Repetir

FinMódulo

 

Módulo Raiz(Numero: Enteros)

Variables

Reales: Resultado

1. Resultado = SQR(Numero)

2. Mostrar “La raíz de”, Numero, “es”, Resultado

FinMódulo

 

 

SOLUCIÓN

Código (versiones VB menos recientes) Código (versiones VB más recientes)
‘Curso VB aprenderaprogramar.com
‘[Programa R03]

Option Explicit
Dim Dato As Integer

Private Sub Form_Load()
On Error GoTo ErrorControl
Call Generadato
Call Raíz(Dato)
ErrorControl:
If Err.Number <> 0 Then
    Call GestiónError
    Resume Next
End If
End Sub

Private Sub Generadato()
Do While Dato < 1 Or Dato > 20
Dato = InputBox("Introduzca un entero entre 1 y 20")
Loop
End Sub

Private Sub Raíz(Número As Integer)
Dim Resultado As Single
Resultado = Sqr(Número)
MsgBox("La raíz de " & Número & " es " & Resultado)
End Sub

Private Sub GestiónError()
MsgBox("Se ha producido un error. Es posible que los datos que usted proporciona no se ajusten a lo solicitado. Compruébelo por favor")
Dato = 0
End Sub
REM Curso Visual Basic aprenderaprogramar.com
Option Explicit On

Public Class Form1
    Dim Dato As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        On Error GoTo ErrorControl
        Call Generadato()
        Call Raíz(Dato)
ErrorControl:
        If Err.Number <> 0 Then
            Call GestiónError()
            Resume Next
        End If
    End Sub

Private Sub Generadato()
  Do While Dato < 1 Or Dato > 20
  Dato = InputBox("Introduzca un entero entre 1 y 20")
  Loop
End Sub

Private Sub Raíz(ByVal Número As Integer)
   Dim Resultado As Single
   Resultado = Math.Sqrt(Número)
   MsgBox("La raíz de " & Número & " es " & Resultado)
End Sub

Private Sub GestiónError()
        MsgBox("Se ha producido un error. Es posible que los datos que usted proporciona no se ajusten a lo solicitado. Compruébelo por favor")
        Dato = 0
End Sub
End Class

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.
 
Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. JavaScript, jQuery
5. .NET, C#
6. HTML, CSS
7. Android, iOS
8. Php, MySql


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación