Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Calculando IMC -> Lógica de programação: explore funções e listas

  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.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Abaixo avancei um pouco mais o código para que o USUÁRIO insira os valores.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Avancei mais ainda no código para que o programa devolva se o IMC do usuário está ou não na média.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Não utilizei muito bem a lógica de condições, se conseguirem me orientar nesse caso eu agradeço... Dicas e etc.

2 respostas
solução!

Olá Felipe! Tudo bem?

Analisando os prints que você compartilhou, posso dizer que vou seguiu uma boa linha de raciocínio, calcular o IMC e interagir com o usuário. Vamos agora aprimorar a lógica de condições para classificar o IMC.

Para começar, é importante notar que você está usando parseInt para converter o resultado do IMC em um número inteiro. Isso pode não ser ideal, pois o IMC é geralmente expresso com casas decimais para maior precisão. Em vez disso, você pode usar parseFloat ou simplesmente manter o valor como um número de ponto flutuante (float).

Agora, em relação à lógica de condições, é melhor usar uma estrutura de if...else if...else para cobrir todos os possíveis intervalos de IMC sem sobreposição. Aqui está um exemplo de como você pode fazer isso:

function calcularImc(peso, altura) {
    return peso / (altura * altura);
}

let nome = prompt('Digite seu nome');
let peso = prompt('Digite seu peso');
let altura = prompt('Digite sua altura');

function exibirMensagem(mensagem) {
    document.write(mensagem + '<br>');
}

let imc = calcularImc(peso, altura);

exibirMensagem('Olá ' + nome + ', seu IMC é ' + imc.toFixed(2));

if (imc < 18.5) {
    exibirMensagem('Seu IMC é baixo');
} else if (imc >= 18.5 && imc < 25) {
    exibirMensagem('Seu IMC está na média correta');
} else if (imc >= 25 && imc < 30) {
    exibirMensagem('Seu IMC indica sobrepeso');
} else {
    exibirMensagem('Seu IMC indica obesidade');
}

Note que usei imc.toFixed(2) para exibir o IMC com duas casas decimais. Além disso, as condições agora cobrem todos os intervalos sem sobreposição e incluem mensagens para cada faixa de IMC.

Espero que essas dicas te ajudem a aprimorar seu código! Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Show, obrigado pelas orientação mano. Tu é top!