Resumen:
Entrega nº21 del curso Aprender a programar en Visual Basic desde cero.
Codificación [Link]: CU00322A
EJERCICIOS CON LABELS, TEXTBOXES Y BOTONES EN VISUAL BASIC
Vamos a plantear el enunciado para una serie de ejercicios y posteriormente
mostraremos la solución a los mismos.
EJERCICIO EJEMPLO RESUELTO Nº1
Transformar el algoritmo que se indica a continuación, relativo a calculo de
necesidades de combustible, en un programa de Visual Basic.
1. Inicio
2. [Definición de vehículos]
3. Turismos = 32
4. Todoterrenos = 11
5. [Fin de definición de vehículos]
6. [Definición de capacidad de depósitos]
7. Capturismos = 40
8. Captodot = 65
9. [Fin de definición de capacidad de depósitos]
10. [Cálculo de necesidades de combustible]
11. Necesidadescom = Turismos * Capturismos + Todoterrenos *
Captodot
12. [Fin de cálculo de necesidades de combustible]
13. Fin
SOLUCIÓN EJERCICIO EJEMPLO Nº 1
El código será algo como lo que se muestra a continuación. Antes de escribir el
código tenemos que crear los objetos (controles) a que vamos a hacer
referencia en el código, en concreto crearemos 6 labels, 4 TextBox y un botón.
Código (versionesVB menos recientes) Código (versiones VB más recientes)
REM Curso Visual Basic [Link]
Option Explicit On
Rem Curso Visual Basic [Link]
Public Class Form1
Option Explicit
REM Declaración de variables
Rem Declaración de variables
Dim Turismos, Todoterrenos As Integer
Dim Turismos%, Todoterrenos As Integer
Dim Capturismos, Captodot As Single
Dim Capturismos!, Captodot As Single
Dim Necesidadescom As Single
Dim Necesidadescom As Single
REM Contenido del formulario
Rem Contenido del formulario
Private Sub Form1_Load(ByVal sender As [Link],
Private Sub Form_Load()
ByVal e As [Link]) Handles [Link]
[Link] = "Cálculo de necesidades
[Link] = "Cálculo de necesidades combustible"
combustible"
[Link] = "Por favor introduzca estos datos"
Label1(0) = "Por favor introduzca estos datos"
[Link] = "Número de turismos"
Label1(1) = "Número de turismos"
[Link] = "Número de todoterrenos"
Label1(2) = "Número de todoterrenos"
[Link] = "Capacidad de turismos (litros)"
Label1(3) = "Capacidad de turismos (litros)"
[Link] = "Capacidad de todoterrenos (litros)"
Label1(4) = "Capacidad de todoterrenos (litros)"
[Link] = "Aceptar"
[Link] = "Aceptar"
End Sub
End Sub
REM Cálculo y muestra resultados
Rem Cálculo y muestra resultados
Private Sub Button1_Click(ByVal sender As [Link],
Private Sub Command1_Click()
ByVal e As [Link]) Handles [Link]
[Link] = vbBlack
[Link] = [Link]
[Link] = True
[Link] = New Font("Arial", 10, [Link])
Turismos = Val(Text1(0))
Turismos = Val([Link])
Todoterrenos = Val(Text1(1))
Todoterrenos = Val([Link])
Capturismos = Val(Text1(2))
Capturismos = Val([Link])
Captodot = Val(Text1(3))
Captodot = Val([Link])
Necesidadescom = Turismos * Capturismos +
Necesidadescom = Turismos * Capturismos + Todoterrenos
Todoterrenos * Captodot
* Captodot
Label2 = "Las necesidades totales de combustible
[Link] = "Las necesidades totales de combustible son
son de " & Necesidadescom & " litros"
de " & Necesidadescom & " litros"
End Sub
End Sub
End Class
Téngase en cuenta que se han declarado como código diversas órdenes que
podrían haberse introducido desde el diseño de objetos previo. Ten en cuenta
también que todos los objetos que invocamos en el código los hemos creado
previamente sobre el formulario (menú Ver – Objeto); los nombres de los
objetos los pone Visual Basic (como en este ejemplo) al crearlos, o los
establecemos en la ventana Propiedades nosotros mismos si deseamos
cambiarlos. Si tratas de invocar un objeto no definido o con un nombre
equivocado te saldrá un mensaje de error.
En un pequeño programa como este en el que tenemos varios labels, podemos
optar tanto por usar arrays de controles (en este caso los controles tendrán
nombres como Label1(0), Label1(1), Label1(2), etc.) o simplemente distintos
controles (en este caso los nombres serán como Label1, Label2, Label3, etc.).
Lo mismo podemos decir en relación a las cajas de texto (TextBox). Recordar
que en las versiones menos recientes de Visual Basic es más sencillo crear
arrays de controles que en las más recientes, ya que basta copiar y pegar un
control y Visual Basic pregunta directamente si queremos crear el array.
El resultado gráfico después de introducir los datos y pulsar aceptar será algo
así:
EJERCICIO EJEMPLO RESUELTO Nº2
Transformar en código el pseudocódigo que se muestra a continuación, relativo a proporcionar el volumen
de un cilindro dados su altura y diámetro.
1. Inicio
2. Mostrar “Introduzca el diámetro, en metros” :
Pedir D
3. Mostrar “Introduzca la altura, en metros” : Pedir
H
4. R = D/2 : Pi = 3,141593
5. V = Pi * (R ^ 2) * H
6. Mostrar “El volumen del cilindro es de”, V,
“metros cúbicos”
7. Fin
SOLUCIÓN EJERCICIO EJEMPLO Nº2
Creamos un formulario donde insertamos dos Labels (podemos usar arrays de controles como Label1(0)
yLabel1(1)) ó simplemente dos controles como Label1 y Label2, dos TextBox (podemos decir lo mismo
que para los labels)y un Label para resultados al que vamos a ponerle nosotros el nombre y que
llamaremos (LabelResultados), así como un botón al que llamaremos ButtonCalcular. El primer Label
mostrará el mensaje de solicitud del diámetro y el segundo Label el correspondiente a la altura. A través
de los TextBox el usuario introducirá los datos solicitados y a través del Label de resultados mostraremos
los resultados. El código será algo así:
Código (versionesVB menos recientes) Código (versiones VB más recientes)
Rem Curso Visual Basic REM Curso Visual Basic [Link]
[Link] Option Explicit On
Option Explicit Public Class Form1
Rem Declaración de variables REM Declaración de variables
Const Pi As Single = 3.141592654 Const Pi As Single = 3.141592654
Dim R!, H!, V As Single Dim R, H, V As Single
Rem Contenido del formulario REM Contenido del formulario
Private Sub Form_Load() Private Sub Form1_Load(ByVal sender As [Link], ByVal e As
[Link] = "Cálculo volumen cilindro" [Link]) Handles [Link]
[Link] = "Calcular Volumen" [Link] = "Cálculo volumen cilindro"
[Link] = "Introduzca aquí el diámetro, [Link] = "Calcular Volumen"
en metros" [Link] = "Introduzca aquí el diámetro, en metros"
[Link] = "Introduzca aquí la altura, en [Link] = "Introduzca aquí la altura, en metros"
metros" End Sub
End Sub
REM Cálculo y muestra resultados
Rem Cálculo y muestra resultados Private Sub Button1_Click(ByVal sender As [Link], ByVal e
Private Sub ButtonCalcular_Click() As [Link]) Handles [Link]
R = Val(Text1) / 2 R = Val([Link]) / 2
H = Val(Text2) H = Val([Link])
V = Pi * (R ^ 2) * H V = Pi * (R ^ 2) * H
[Link] = 10 [Link] = New Font("Arial", 10, [Link])
[Link] = True [Link] = [Link]
[Link] = 2 [Link] = "El volumen del cilindro es de " & V & "
LabelResultados = "El volumen del cilindro es metros cúbicos"
de " & V & " metros cúbicos" End Sub
End Sub End Class
El resultado gráfico será similar a este:
EJERCICIO EJEMPLO RESUELTO Nº3
Transformar en código el pseudocódigo que se indica a continuación, relativo a proporcionar el precio
medio de un producto, calculado a partir del precio del mismo en tres establecimientos distintos.
1. Inicio
2. Mostrar “Introduzca el precio del producto en el establecimiento número 1, en euros” :
Pedir Precio1
3. Mostrar “Introduzca el precio del producto en el establecimiento número 2, en euros” :
Pedir Precio2
4. Mostrar “Introduzca el precio del producto en el establecimiento número 3, en euros” :
Pedir Precio3
5. Media = (Precio1 + Precio2 + Precio3) / 3
6. Mostrar “El precio medio del producto es”, Media, “Euros”
7. Fin
SOLUCIÓN EJERCICIO EJEMPLO Nº3
En el formulario insertamos tres Labels y tres TextBox para petición de datos, así como un botón y un
Label para cálculo y muestra de resultados. El código será algo así:
Código (versionesVB menos recientes) Código (versiones VB más recientes)
Rem Curso Visual Basic REM Curso Visual Basic [Link]
[Link] Option Explicit On
Option Explicit Public Class Form1
Rem Declaración de variables REM Declaración de variables
Dim Precio1!, Precio2!, Precio3!, Media As Dim Precio1, Precio2, Precio3, Media As Single
Single
REM Contenido del formulario
Rem Contenido del formulario Private Sub Form1_Load(ByVal sender As [Link], ByVal e
Private Sub Form_Load() As [Link]) Handles [Link]
[Link] = "Cálculo precio medio [Link] = "Cálculo precio medio producto"
producto" [Link] = "Calcular precio medion"
[Link] = "Calcular precio [Link] = "Introduzca aquí el precio en establecimiento nº1, en
medio" euros"
[Link] = "Introduzca aquí el precio en [Link] = "Introduzca aquí el precio en establecimiento nº2, en
establecimiento nº1, en euros" euros"
[Link] = "Introduzca aquí el precio en [Link] = "Introduzca aquí el precio en establecimiento nº3, en
establecimiento nº2, en euros" euros"
[Link] = "Introduzca aquí el precio en End Sub
establecimiento nº3, en euros"
End Sub REM Cálculo y muestra resultados
Private Sub Button1_Click(ByVal sender As [Link], ByVal e
Rem Cálculo y muestra resultados
As [Link]) Handles [Link]
Private Sub ButtonCalcular_Click()
Precio1 = Val([Link])
Precio1 = Val(Text1)
Precio2 = Val([Link])
Precio2 = Val(Text2)
Precio3 = Val([Link])
Precio3 = Val(Text3)
Media = (Precio1 + Precio2 + Precio3) / 3
Media = (Precio1 + Precio2 + Precio3) / 3
[Link] = New Font("Arial", 10, [Link])
[Link] = 10
[Link] = [Link]
[Link] = True
[Link] = "El precio medio del producto es de " &
[Link] = 2
Media & " euros"
LabelResultados = "El precio medio del
End Sub
producto es de " & Media & " euros"
End Class
End Sub
Para los controles podríamos haber usado arrays de controles si hubiéramos querido. Hemos usado
controles independientes tipo Label1, Label2, Label3 y Text1, Text2 y Text3 en vez de arrays de controles.
Si bien en líneas generales es ventajoso el uso de arrays cuando necesitamos automatizar procesos, para
aplicaciones tan sencillas como ésta no tiene trascendencia hacerlo de una u otra manera.
El resultado gráfico será similar a este:
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 [Link], abiertos a cualquier
persona independientemente de su nivel de conocimiento.