App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
____________________________
169.- Índice de masa corporal calculado con JavaScript.
p169_javascript_imc.aia
- En el tutorial 34indicemasacorporal.htm, vimos la forma de calcular el índice de masa corporal mediante los bloques de App inventor. Es conveniente repasar ese tutorial antes de continuar.
- Basado en ese código de bloques vamos a realizar las mismas operaciones pero mediante código de JavaScript.
- Mediante la Screen1 introduciremos los valores de altura y peso de la persona. Llamaremos al archivo .htm donde está el código de JavaScript. Se ejecutará el código para obtener el índice de masa corporal y su tipo físico. Se devolverá esos datos a la pantalla Screen1.
Introducimos el peso en kilogramos y la estatura en centímetros y obtendremos nuestro índice de masa corporal y su clasificación. De esta manera podemos comprobar si estamos gordos o flacos.
Puedes consultar información sobre el índice de masa corporal en la wikipedia.
|
|
_________________
- Diseño.
- Introducimos en la pantalla Screen1 los elementos indicados.
- Las Etiquetas de tamaño 20, negrita.
- Los CamposDeTexto sin la Pista, de SóloNúmeros, PosiciónDeTexto a derecha y Ancho 80 pixeles.
- También modificamos al Altura del Botón a 80 pixeles.
- Ponemos un VisorWeb, en Diseño lo ponemos No Visible, ya que no es necesario verlo, su misión es ejecutar el código JavaScript, pero el resultado no se muestra en el VisorWeb, sino que se visualizará en Etiquetas.
- Subimos el archivo imc.htm
- Archivo imc.htm
imc.htm |
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"></head><body>
<script>
datos = window.AppInventor.getWebViewString(); // Entrada de datos.
peso_estatura = datos.split(":");
peso = peso_estatura[0];
estatura = peso_estatura[1];
with (Math) {
imc = peso / pow(estatura / 100,2);
imc = round(imc * 100) / 100; // redondea con 2 decimales.
}
if (imc < 16) {
grado = "Delgadez severa.";
} else if (imc >= 16 && imc <= 16.99) {
grado = "Delgadez moderada.";
} else if (imc >= 17 && imc <= 18.49) {
grado = "Delgadez aceptable.";
} else if (imc >= 18.5 && imc <= 24.99) {
grado = "Normal.";
} else if (imc >= 25 && imc <= 29.99) {
grado = "Preobeso.";
} else if (imc >= 30 && imc <= 34.99) {
grado = "Obeso tipo I.";
} else if (imc >= 35 && imc <= 39.99) {
grado = "Obeso tipo II.";
} else if (imc > 40 ) {
grado = "Obeso tipo III.";
}
resultado = imc + ":" + grado;
window.AppInventor.setWebViewString(resultado); // Resultado.
</script>
</body></html>
|
_________________
- Bloques.
_________________
- Comentarios.
- Enviamos el peso y la estatura de esta manera 80:185
- El código JavaScript toma ese dato y lo separa (split) en dos partes, el separador son los dos puntos
peso_estatura = datos.split(":");
peso = peso_estatura[0];
estatura = peso_estatura[1];
- Se realiza la operación matemática
with (Math) {
imc = peso / pow(estatura / 100,2);
imc = round(imc * 100) / 100; // redondea con 2 decimales.
}
- Se realiza la operación lógica, observa que el AND, Y es &&
- Se devuelve el resultado con dos valores separados por dos puntos
resultado = imc + ":" + grado;
resultado = "24.6:Normal."
- Los bloques de App inventor tomarán ese resultado.
- Lo separa en dos partes mediante el bloque recorta. El separador es los dos puntos. Los elementos recortados se guardan en una lista.
- El elemento recortado 1 irá a la Etiqueta3
- El elemento recortado 2 irá a la Etiqueta4
__________________________________
|