Resumen: Entrega nº46 del curso Aprender a programar en Visual Basic desde cero.
Codificación aprenderaprogramar.com: CU00347A
VERIFICACIÓN DE ALGORITMOS USANDO VISUAL BASIC
Cuando hablamos de "Verificación de algoritmos" en el curso "Bases de la programación I" de aprenderaprogramar.com, distinguimos cinco técnicas que eran: verificación mental, verificación por seguimiento escrito, verificación por seguimiento con tablas de variables, verificación por seguimiento con desarrollo en un lenguaje y verificación por seguimiento con un lenguaje y paso a paso.
Vamos a abordar cómo usar estas técnicas con Visual Basic. Dado que la verificación mental o por seguimiento escrito son propias del programador y su mente, o a lo sumo, un papel de ayuda, comenzaremos por ver cómo construir tablas de variables con Visual Basic.
CONSTRUIR TABLAS DE VARIABLES A TRAVÉS DE VISUAL BASIC
Consideremos el siguiente código, correspondiente a una estructura de bucle anidado dentro de otro:
Código (versiones VB menos recientes) | Código (versiones VB más recientes) |
'Curso VB aprenderaprogramar.com Option Explicit Dim i%, j As Integer Dim A As Integer Private Sub Form_Load() Label1 = " " For i = 1 To 5 For j = 1 To 5 A = i * j Label1 = Label1 & A & ", " Next j Label1 = Label1 & " // " Next i End Sub |
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, j As Integer Dim A As Integer Label1.Text = "" For i = 1 To 5 For j = 1 To 5 A = i * j Label1.Text = Label1.Text & A & ", " Next j Label1.Text = Label1.Text & " // " Next i End Sub End Class |
Supongamos que queremos construir una tabla de variables en Visual Basic con 3 columnas:
Paso bucle 01 (i) |
Paso bucle 02 (j) |
Valor de A |
. . . . |
. . . . |
. . . . |
Para ello escribimos el siguiente código:
Código (versiones VB menos recientes) | Código (versiones VB más recientes) |
'Curso VB aprenderaprogramar.com Option Explicit Dim i%, j As Integer Dim A As Integer Private Sub Form_Load() Label1 = "": Label2 = "": Label3 = "" Label1 = "Paso bucle 01" & vbCrLf Label2 = "Paso bucle 02 (j)" & vbCrLf Label3 = "Valor de A" & vbCrLf For i = 1 To 5 For j = 1 To 5 A = i * j Label1 = Label1 & " " & i & vbCrLf Label2 = Label2 & " " & j & vbCrLf Label3 = Label3 & " " & A & vbCrLf Next j Next i End Sub |
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, j As Integer Dim A As Integer Label1.Text = "" : Label2.Text = "" : Label3.Text = "" Label1.Text = "Paso bucle 01" & vbCrLf Label2.Text = "Paso bucle 02 (j)" & vbCrLf Label3.Text = "Valor de A" & vbCrLf For i = 1 To 5 For j = 1 To 5 A = i * j Label1.Text = Label1.Text & " " & i & vbCrLf Label2.Text = Label2.Text & " " & j & vbCrLf Label3.Text = Label3.Text & " " & A & vbCrLf Next j Next i End Sub End Class |
Con un resultado gráfico tal como este:
Hemos utilizado para mostrar un resultado un Label, pero también podríamos haberlo hecho sobre un TextBox. ¿Por qué? No hay motivo por el cual usar un Label sea obligatorio. Cada cual lo hará como lo estime conveniente. Nosotros usamos normalmente Labels para mostrar resultados, pero en algunos casos, por ejemplo si nos interesa poder copiar y pegar un texto, usamos TextBox.
Supongamos un programa que contiene el doble bucle que hemos visto. Hemos querido verificarlo y lo hemos hecho con esta visualización. Una vez estamos satisfechos del resultado del bucle, borramos la verificación que hemos utilizado para visualizar y seguimos trabajando tranquilos, sabemos que el bucle no va a producir efectos indeseados.
En ocasiones nos interesa obtener un resultado en forma de tabla de variables que podamos exportar por ejemplo a un procesador de textos. Una forma de hacerlo sería programándolo, pero también podemos hacer que los resultados se presenten sobre un TextBox como hemos indicado antes y a partir de ahí lo único que tenemos que hacer es copiar (Ctrl + C) y pegar (Ctrl + V). Vamos a ver este caso en código. Primeramente crearemos un TextBox y en la ventana de propiedades establecemos Multiline = True y Scrollbars = 3 (Both).
Código (versiones VB menos recientes) | Código (versiones VB más recientes) |
'Curso VB aprenderaprogramar.com Option Explicit Dim i%, j As Integer Dim A As Integer Dim Espacios As String Private Sub Form_Load() Espacios = " " Text1 = "Paso bucle 01 " & " Paso bucle 02 (j) " & " Valor de A" & vbCrLf For i = 1 To 5 For j = 1 To 5 A = i * j Text1 = Text1 & " " & i & Espacios & j & Espacios & A & vbCrLf Next j Next i End Sub |
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, j As Integer Dim A As Integer Dim Espacios As String Espacios = " " TextBox1.Text = "Paso bucle 01 " & " Paso bucle 02 (j) " & " Valor de A" & vbCrLf For i = 1 To 5 For j = 1 To 5 A = i * j TextBox1.Text = TextBox1.Text & " " & i & Espacios & j & Espacios & A & vbCrLf Next j Next i End Sub End Class |
Si Multiline no está establecido en True nos saldrá el resultado en una sola línea. El resultado es la ya conocida tabla, pero con este código en formato "capturable" en el portapapeles, de modo que podemos por ejemplo pasarlo a una hoja de cálculo.