1
resposta

Modelo Simples de IMC com validação na entrada

Segue um modelo para o calculo de IMC... coloquei algumas validações para entrada não ficar muito aberta... Não sei mas acho estranho um forum sem pergunta... mas

<meta charset="UTF-8" />
<script>
  function pulaLinha(number) {
    if (!number) {
      document.write('<br><hr><br>');
      return;
    }
    for (var i = 1; i <= number; i++) {
      document.write('<br>');
    }
  }

  function mostraNaTela(mensagem) {
    if (!mensagem) return;
    document.write(mensagem);
    pulaLinha();
  }

  function calculaImc(altura, peso) {
    if (!peso && peso <= 0) {
      return -1;
    } else if (!altura && altura <= 0) {
      return 0;
    }
    var imc = peso / (altura * altura);
    return imc;
  }

  function mostraImc(imc, nome) {
    if (imc < 0) {
      mostraNaTela('A altura informada é invalida ');
    } else if (imc == 0) {
      mostraNaTela('O peso informado é invalido ');
    } else {
      document.write('<big>' + nome + '</big> seu');
      mostraNaTela(' IMC é ' + imc);
    }
  }

  var nome = prompt('Informe seu nome.');
  var peso = prompt('Informe seu peso.');
  var altura = prompt('Informe sua altura.');
  mostraImc(calculaImc(altura, peso), nome);
</script>
1 resposta

Ficou muito bom! Parabéns!

Para ficar mais claro, você poderia informar nas mensagens de "Informe seu nome" e "Informe seu peso" quais as unidades de medidas esperadas. Por exemplo: "Informe seu peso em kg" e depois "Informe seu peso em metros".

Bons estudos!