DifícilFase 2
Exercício Difícil — Calculadora de IMC com Classificação
Junta tudo: variáveis, tipos, aritmética e comparações, num só programa com sentido real.
FerramentasVS CodeTerminalNode.js
Este exercício combina tudo o que viste nesta fase num problema com utilidade real: calcular o Índice de Massa Corporal (IMC) e preparar (sem ainda escreveres if/else, que é tema da Fase 3) as condições booleanas que vão decidir a classificação.
Passos a realizar
- Cria imc.js na pasta fase2.
- Declara const pesoKg e const alturaMetros.
- Calcula o IMC com a fórmula peso a dividir por altura ao quadrado, e guarda o resultado numa variável imc.
- Cria quatro variáveis booleanas, uma para cada faixa da classificação da OMS, usando comparações e operadores lógicos:
- abaixoDoPeso — imc menor que 18.5.
- pesoNormal — imc maior ou igual a 18.5 e menor que 25.
- sobrepeso — imc maior ou igual a 25 e menor que 30.
- obesidade — imc maior ou igual a 30.
- Imprime o valor do IMC arredondado a uma casa decimal e o valor das quatro variáveis booleanas.
- Confirma, para um peso e altura que dão IMC próximo de 22, que só pesoNormal fica verdadeiro e as outras três ficam falsas.
Código de exemplo
imc.js
const pesoKg = 70;
const alturaMetros = 1.75;
const imc = pesoKg / (alturaMetros * alturaMetros);
const abaixoDoPeso = imc < 18.5;
const pesoNormal = imc >= 18.5 && imc < 25;
const sobrepeso = imc >= 25 && imc < 30;
const obesidade = imc >= 30;
console.log("IMC:", Math.round(imc * 10) / 10);
console.log({ abaixoDoPeso, pesoNormal, sobrepeso, obesidade });Dicas
- Só uma das quatro variáveis booleanas deve ficar verdadeira de cada vez — se duas ficarem verdadeiras ao mesmo tempo, há um erro nos limites das comparações.
- Para arredondar a uma casa decimal, multiplica por 10, arredonda ao inteiro mais próximo, e divide por 10 outra vez.
Erros comuns
- Esquecer os parênteses à volta de "altura vezes altura" dentro da divisão, alterando a ordem das operações.
- Definir os limites das faixas com maior em vez de maior-ou-igual (ou o contrário), criando um "buraco" onde nenhuma variável fica verdadeira para certos valores de IMC.