PROGRAMA IMC (Índice de masa corporal)
Para calcular el IMC de una
persona debemos conocer su masa (en kilogramos) y su estatura (en metros) y
mediante la fórmula:
IMC = masa
estatura2
Logramos obtener dicho valor y
según la siguiente tabla, de acuerdo al IMC de una persona podemos decir de
ella cuál es su estado.
|
IMC
|
ESTADO
|
|
< 15
|
Desnutrición
|
|
15 – 25
|
Normal
|
|
25 – 30
|
Sobrepeso
|
|
30 – 35
|
Obesidad 1
|
|
35 – 40
|
Obesidad 2
|
|
> 40
|
Morbidez
|
Una vez, se haya determinado
en qué estado se encuentra la persona, podemos verificar la ciencia que
aconseja para mantenerlo o mejorarlo, con base en alimentación y ejercicios fundamentalmente.
El programa que se propone
debe calcular el IMC, indicarle al usuario en qué estado se encuentra y hacerle
una serie de recomendaciones de acuerdo a dicho estado.
DISEÑO DE LA GUI
La anterior imagen nos muestra
un diseño de GUI, en el cual debes tener en cuenta que tu nombre y grado debe
aparecer en el Text del formulario. Los botones de Minimizar y Maximizar,
no deben aparecer. La ventana en tiempo de ejecución no debe dejarse manipular
en tamaño.
La Label que sirve para
indicar el uso del programa debe poderse escribir en múltiples líneas, no en
una sola. Para el presente caso, el resultado (valor del IMC) se está
presentando en una Label, podría hacerse también en una caja de texto (TextBox)
inhabilitada para que el usuario no pueda manipular el contenido. Y se le debe
indicar al usuario del programa mediante un mensaje cuál es su estado.
Luego de esto, invocar otro
formulario en el cual se le den algunas recomendaciones (de tipo científico)
para que mejore o mantenga su estado, según sea el caso.
¿Cómo lograrlo?
Como hemos dicho en clase, las
acciones se ejecutan en el evento clic del botón btnCalcular del formulario
frmIMC, parte del código fuente (tú debes terminar de programarlo) es el
siguiente:
'La siguiente
línea calcula el IMC según la fórmula indicada. La palabra reservada Val() 'invoca
una función que vuelve valor numérico el contenido de una caja de texto
lblIMC.Text
= Val(txtMasa.Text) / (Val(txtEstatura.Text) * Val(txtEstatura.Text))
'A continuación
una serie de IF anidados para ubicar el IMC en la tabla, sacar el mensaje
' correspondiente
y mostrar el formulario indicado
If
Val(lblIMC.Text) < 15 Then
MsgBox("Hay
problemas de desnutrición", MsgBoxStyle.Critical, "I M C")
'la siguiente
línea invoca el formulario de Desnutrición
frmDesnutricion.Show()
Else
If Val(lblIMC.Text) < 25 Then
MsgBox("Felicitaciones, estás normal",
MsgBoxStyle.Exclamation, "I M C")
'invocar el
formulario de estado Normal
Else
If Val(lblIMC.Text) < 30 Then
MsgBox("Estás en sobre peso",
MsgBoxStyle.Critical, "I M C")
'invocar el
formulario de Sobre Peso
Else
If Val(lblIMC.Text) < 35 Then
MsgBox("Estás en obesidad grado uno",
MsgBoxStyle.Critical, "I M C")
'invocar
el formulario de Obesidad Grado Uno
Else
If Val(lblIMC.Text) < 40 Then
MsgBox("Estas en obesidad grado dos",
MsgBoxStyle.Critical, "I M C")
'invocar
el formulario de Obesidad Grado Dos
Else
MsgBox("Estas
en morbidez", MsgBoxStyle.Critical, "I
M C")
'invocar
el formulario de Morbidez
End If
End If
End If
End If
End If
De lo anterior, podemos
deducir que además del formulario principal (frmIMC), debemos diseñar seis (6)
formularios, uno para cada estado de la tabla de IMC, los que serán invocados
según corresponda.
En el código anterior las
líneas que están luego de un apóstrofe (') no son tomadas en cuenta por el VB. Son comentarios
que se usan por los programadores para explicar su código fuente a quienes lo
lean. El VB les da un color verde atenuado y como se dijo no implican ningún
efecto en la ejecución del programa.
Con algunos grupos
vimos en clase la posibilidad de sólo tener un formulario de recomendaciones (y
no seis como se planteó anteriormente). Esto implica, que el Text
de dicho formulario, las recomendaciones respectivas y las imágenes cambien
según sea el caso. Para esto se aprovecha el evento Load del formulario que carga dichas instrucciones (textos e imágenes) en
él, antes de mostrarlo al usuario.
Me comentan sus
dudas…


No hay comentarios:
Publicar un comentario