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

 

 

El objetivo de estos ejercicios es aplicar conocimientos sobre "Herramientas básicas para la programación" a un lenguaje como es Visual Basic. Para su realización debemos tener conocimientos básicos sobre algoritmia, uso de bucles o estructuras iterativas y apertura y cierre de archivos. En algunos casos, propondremos la solución a un ejercicio con distintas estructuras de programación.

 

Visual Basic
 

 

EJERCICIO EJEMPLO USO DE FORMS, LABELS, INPUTBOX, MSGBOX

Desarrollar el código que dé respuesta al siguiente problema:

Una central distribuye cal hacia diferentes almacenes sucursales. Disponen de un muelle de carga a donde van llegando sacas de cal de entre 3000 y 9000 Kgs, con pesos variables en función de las circunstancias de la producción. La empresa dispone de una flota de camiones con capacidades de carga de entre 18000 y 28000 Kgs.

Se pretende establecer un protocolo consistente en cargar 20 camiones diarios. Cada camión se quiere cargar como máximo a su límite de capacidad debiendo partir si con la siguiente saca en la línea de producción se fuera a exceder su capacidad.

La empresa quiere desarrollar un programa que le pida al operario encargado de carga la capacidad del camión y el peso de las sacas, indicándole si debe cargar la saca o despachar el camión para comenzar a cargar otro, y que emita un aviso cuando se complete la carga de 20 camiones.

 

 

SOLUCIÓN

Código para versiones menos recientes de Visual Basic:

Rem Curso Visual Basic aprenderaprogramar.com
Option Explicit
Dim i%, j%
Dim Capacidad%, Pesosaca%, Cargado As Integer

Private Sub Form_Load()
Show
Form1.Caption = "Distribución de cal"
For i = 1 To 20
    Capacidad = InputBox("Introduzca la capacidad del camión nº " & i & " en kgs", "Dato capacidad")
    Do While(Cargado + Pesosaca) <= Capacidad
        If Pesosaca > 0 Then
            MsgBox("Cargue la saca nº " & j)
            Cargado = Cargado + Pesosaca
        End If
        j = j + 1
        Pesosaca = InputBox("Introduzca el peso de la saca nº " & j & " en kgs", "Dato saca")
    Loop
    If i < 20 Then MsgBox("No cargue todavía. Despache el camión nº " & i & " y ponga" & _
    " a cargar el camión nº " & i + 1)
    Cargado = 0
Next i
Labelfinal.Alignment = 2
Labelfinal.FontBold = True
Labelfinal = "No cargue esta saca. Despache el camión " & i - 1 & vbCrLf & "FINALIZADA" & _
" LA CARGA DEL DÍA"
End Sub

 

 

Antes de ejecutar el código habremos incorporado al formulario en la vista de diseño un Label al que hemos denominado Labelfinal. El resultado gráfico se muestra más abajo.

 

Código para versiones más recientes de Visual Basic:

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 Capacidad, Pesosaca, Cargado As Integer

   Me.Text = "Distribución de cal"
   For i = 1 To 20
   Capacidad = InputBox("Introduzca la capacidad del camión nº " & i & " en kgs", "Dato capacidad")

   Do While (Cargado + Pesosaca) <= Capacidad

   If Pesosaca > 0 Then
               MsgBox("Cargue la saca nº " & j)
               Cargado = Cargado + Pesosaca
   End If

   j = j + 1
   Pesosaca = InputBox("Introduzca el peso de la saca nº " & j & " en kgs", "Dato saca")
   Loop

   If i < 20 Then MsgBox("No cargue todavía. Despache el camión nº " & i & " y ponga" & _
       " a cargar el camión nº " & i + 1)
   Cargado = 0
   Next i
Labelfinal.Font = New Font("Arial", 10, FontStyle.Bold)
Labelfinal.TextAlign = ContentAlignment.MiddleCenter
Labelfinal.Text = "No cargue esta saca. Despache el camión " & i - 1 &vbCrLf& "FINALIZADA" & _
        " LA CARGA DEL DÍA"
    End Sub

End Class

 

 

Comentarios: el programa podría mejorarse creando restricciones para que no se puedan introducir pesos de sacas o capacidad de carga de camiones fuera de los rangos permitidos.
 

El aspecto gráfico es el siguiente:

 

programacion visual basic

 

button visual basic       boton visual basic

 

visual basic textbox     visual basic label

 

 

 

EJERCICIO EJEMPLO USO DO WHILE … LOOP, LABELS, INPUTBOX

Desarrollar el código que resuelva el siguiente problema: una ONG tiene puntos de reparto de vacunas que se pretende funcionen de la siguiente manera. Cada día, empezar con 1000 vacunas disponibles y a través de un programa que controla las entregas avisar si el inventario baja de 200 unidades. El programa debe partir de que existen 1000 vacunas e ir pidiendo al usuario las cantidades de vacunas entregadas hasta avisar cuando el inventario baje de 200 unidades.

 

SOLUCIÓN

Código para versiones menos recientes de Visual Basic:

Rem Curso Visual Basic aprenderaprogramar.com [Control de vacunas]
Option Explicit

Dim Existencias%, Entregadas%

Private Sub Form_Load()
Show
Form1.Caption = "Control de vacunas"
Existencias = 1000

Do While Existencias >= 200
    Entregadas = InputBox("Introduzca el número de uds entregadas", "Dato entrega")
    Existencias = Existencias - Entregadas
Loop

Labelfinal.Alignment = 2
Labelfinal.FontBold = True
Labelfinal = vbCrLf & "El inventario ha bajado de 200 uds" & vbCrLf & "Debe comunicarlo"
End Sub

 

Antes de ejecutar el código habremos incorporado al formulario en la vista de diseño un Label al que hemos denominado Labelfinal. El resultado gráfico se muestra más abajo.

 

Código para versiones más recientes de Visual Basic:

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 Existencias, Entregadas As Integer
        Me.Text = "Control de vacunas"

        Existencias = 1000
        Do While Existencias >= 200
            Entregadas = InputBox("Introduzca el número de uds entregadas", "Dato entrega")
            Existencias = Existencias - Entregadas
        Loop

  Labelfinal.Font = New Font("Arial", 10, FontStyle.Bold)
  Labelfinal.TextAlign = ContentAlignment.MiddleCenter
  Labelfinal.Text = vbCrLf & "El inventario ha bajado de 200 uds" & vbCrLf & "Debe comunicarlo"
  End Sub

End Class

 

 

El resultado gráfico:

ejemplo programa visual basic     mostrar mensaje visual basic

 

 

 

 

 

 

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.

Descargar archivo: