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

Programinha IMC completo com prompt e soma de IMCS


<script>

function mostra(msg)
{
    document.write(msg);
    pulaLinha();
}

function pulaLinha()
{
    document.write("<br><br>")
}
var soma=0;
var total=0;
function somaImc(peso,altura)
{


    soma=soma+peso/(altura*altura);            
     return soma;

}

var numPessoas=parseInt(prompt("Qual numero de participantes?"));
var i=0;
while(i<numPessoas)
{
    var peso=parseInt(prompt("Qual seu peso"));
    var altura=parseFloat(prompt("Qual sua altura?"));
    total=somaImc(peso,altura);
    i++;
}
document.write("IMC Somados "+ Math.round(total));



</script>
3 respostas

Oi Tiago, tudo bem? O código esta funcional, excelente.

No entanto, quero propor uma melhoria. Você criou a função somaImc, certo? Veja que essa função esta com duas responsabilidades, a primeira é calcular o IMC e a segunda somar o IMC calculado ao total do IMC. Certo?

Quando uma função tem duas responsabilidades, é uma boa prática dividi-la em duas. Uma que calcula o IMC e outra que soma o IMC. Mas você verá que nessa divisão, se a função calcula IMC devolver (return) o IMC calculado, nem é muito necessário a função que soma o IMC, ai fica ao seu critério criá-la ou não.

Tudo bem com essas sugestões?

Tudo sim eu fiz uma modificação no programa, seria isso?

<meta charset="UTF-8">


<script>

function mostra(msg)
{
    document.write(msg);
    pulaLinha();
}

function pulaLinha()
{
    document.write("<br><br>")
}
var imc=0;
var total=0;
function Imc(peso,altura)
{


    imc=peso/(altura*altura);            
     return imc;

}

var numPessoas=parseInt(prompt("Qual numero de participantes?"));
var i=0;
while(i<numPessoas)
{
    var peso=parseInt(prompt("Qual seu peso"));
    var altura=parseFloat(prompt("Qual sua altura?"));
    total=total+Imc(peso,altura);
    i++;
}
document.write("IMC Somados "+ Math.round(total));



</script>
solução!

Isso ai!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software