Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] 07 Desafio: hora da prática - Cálculando o IMC

Com este primeiro desafio, fiquei um pouco intrigado e curioso com o seguinte... E se eu fosse além do desafio? Sendo assim, gastei algumas horinhas pesquisando na internet mais a fundo sobre este cálculo, afinal, como iria resolver o desafio se nem a fórmula do cálculo de IMC eu sei kkk

Segue abaixo minha resolução para este primeiro tópico. Como sempre, a opinião de quem sabe mais sempre será bem vinda. Espero tirar a dúvida de demais alunos.

Link utilizado para construção deste código

Fórmula para cálcular IMC:

Validando o cálculo desenvolvido:

Math.random() - MDN WEB DOCS:

Desafios:

  1. Crie uma função que calcule o índice de massa corporal (IMC) de uma pessoa, a partir de sua altura, em metros, e peso, em quilogramas, que serão recebidos como parâmetro.

Fórmula para calcular o Índice de Massa Corporal (IMC):

IMC = peso / (altura x altura). O peso deve ser em quilos (Kg) e a altura em metros (m).

Classificação do IMC

  • Menor que 18,5: Magreza
  • Entre 18,5 e 24,9: Normal
  • Entre 25,0 e 29,9: Sobrepeso
  • Entre 30,0 e 39,9: Obesidade
  • Maior que 40,0: Obesidade Grave
/* Gerando valores aleatórios genéricos */
function gerarAleatorio(min, max) {
    return Math.random() * (max - min) + min;
}

/* Gerando uma IDADE entre 18 e 60 aleatória. */
let idade = Math.floor(gerarAleatorio(18, 60));
console.log(`O paciente possui ${idade} anos.`);

/* Gerando um PESO entre 30 e 300 aleatório. */
let peso = Math.floor(gerarAleatorio(30, 250));
console.log(`O paciente tem ${peso} Kg.`);

/* Gerando uma altura entre 1,5m até 1,98m aleatória. */
let altura = gerarAleatorio(1.50, 1.98);
console.log(`O paciente possui ${altura.toFixed(2)}m de altura.`);

/* Calculadora de IMC */
function calculaIMC(peso, altura) {
    return peso / (altura * altura);
}

let imc = calculaIMC(peso, altura);
console.log(`O IMC do paciente é de ${imc.toFixed(2)}.`);

/* Classificação do IMC */
function classificaIMC(imc) {
    if (imc < 18.5) {
        return 'Magreza';
    } else if (imc >= 18.5 && imc <= 24.9) {
        return 'Normal';
    } else if (imc >= 25.0 && imc <= 29.9) {
        return 'Sobrepeso';
    } else if (imc >= 30.0 && imc <= 39.9) {
        return 'Obesidade';
    } else {
        return 'Obesidade Grave';
    }
}

let classificacao = classificaIMC(imc);

/* Exibindo os resultados */
console.log(`${classificacao}!\nO paciente possui ${idade} anos.\nTem ${altura.toFixed(2)}m de altura e pesa ${peso}Kg.\nSeu IMC é de ${imc.toFixed(2)}.`);
1 resposta
solução!

Oi Guilherme, tudo bem? 😊

Fico feliz em ver seu empenho e curiosidade em aprofundar seus conhecimentos sobre o cálculo do IMC e a lógica por trás dele. 👏

Sua iniciativa de ir além do desafio proposto, pesquisando a fórmula e implementando a solução em JavaScript, é louvável.

A estrutura do seu código está bem organizada.

Você utilizou funções para separar as responsabilidades: gerar números aleatórios, calcular o IMC e classificar o resultado.

O uso de Math.random() e Math.floor() para gerar valores aleatórios de idade, peso e altura é uma boa prática.

A função calculaIMC() realiza o cálculo corretamente.

A função classificaIMC() também está implementada de forma clara e eficiente.

A exibição dos resultados no console é informativa e completa.

Parabéns pela sua dedicação e pelo código bem escrito! 😉

🎓 Para saber mais: