Oi, Italo! Tudo bem?
Podemos compreender a ocorrência do problema da seguinte maneira, nos trechos de código abaixo:
var altura = parseInt(prompt(nome + ", informe sua altura"));
var peso = parseInt(prompt(nome + ", informe sua peso"));
A altura e peso logo ao serem recebidas, antes mesmo do calculo do imc ser feito, já são convertidas em um número inteiro, prejudicando o calculo do imc da maneira correta.
Podemos visualizar isso a partir do seguinte exemplo: caso a altura declarada seja 1.56 e o peso 57, ao invés do cálculo do imc dar o número exato da operação (peso / (altura * altura)
, que no caso do exemplo é igual a 23,42 para só então aproximarmos para o valor inteiro 23, o que está ocorrendo é que os valores recebidos já são convertidos a números inteiro e a operação acaba ficando como (57 / (1 * 1)
que é igual à 57, o mesmo valor do peso, já que um número multiplicado ou dividido por 1 é igual a ele mesmo.
Dessa forma, é aconcelhável que deixemos o nosso código da seguinte forma:
function mostra(frase){
document.write(frase);
pulaLinha();
}
mostra("<h1>" + "O imc." + "</h1>");
mostra("Criado no século 19 pelo matemático Lambert Quételet, o Índice de Massa Corporal, conhecido pela sigla IMC, é um cálculo simples que permite medir se alguém está ou não com o peso ideal. Ele aponta se o peso está adequado ou se está abaixo ou acima do peso.");
var nome = prompt("informe seu nome");
var altura = prompt(nome + ", informe sua altura");
var peso = prompt(nome + ", informe sua peso");
function calculaImc(altura,peso) {
var imc = Math.round(peso / (altura * altura));
return imc;
}
imcCalculado = calculaImc(altura,peso);
if(imcCalculado < 18){
mostra("Seu imc é " + imcCalculado + " se cuide " + nome);
}
if(imcCalculado > 25){
mostra("Seu imc é de " + imcCalculado + " se cuide " + nome);
}
if (imcCalculado >= 18 && imcCalculado <= 25){
mostra(nome + " seu imc é " + imcCalculado + ", vc está na media.");
}
mostra("Qual o IMC normal? O IMC é considerado normal quando o valor está entre 18,5 e 24,9 kg/m².");
</script>
Espero ter ajudado! Caso tenha restado alguma dúvida, sinta-se à vontade para comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓