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

O resultado é sempre o mesmo

<meta charset="UTF-8">

<script>

    function pulaDuasLinhas() {
        document.write("<br>");
        document.write("<br>");

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function mostraTitulo (titulo) {
        document.write ("<h1>" + titulo + "</h1>");
    }

    alert ("Vamos calcular a média das idades dos seus amigos...")

    var  amigosInformados = parseInt (prompt ("Informe quantos amigos você possui. Use somente números."));
    var numero = 1;
    var totalIdades = 0;
    var mediaDasIdades = totalIdades/amigosInformados;

    alert ("Agora você vai informar cada uma das idades. Somente em números.")

    while (numero <= amigosInformados) {
        var idade = parseInt(prompt ("Informe uma idade."));
        totalIdades = totalIdades + idade;
        numero++;
    }

    mostraTitulo ("A média da Idade de seus amigos");
    mostra ("A média calculada é " + mediaDasIdades);



</script>

Alguém pode me explicar por que o resultado dá sempre 0?

6 respostas

Bom dia, Pedro! Como vai?

Vou reescrever parte do seu código para facilitar a explicação!

var  amigosInformados = parseInt (prompt ("Informe quantos amigos você possui. Use somente números."));
var numero = 1;
var totalIdades = 0;
var mediaDasIdades = totalIdades/amigosInformados;  // 1

alert ("Agora você vai informar cada uma das idades. Somente em números.")

while (numero <= amigosInformados) {
     var idade = parseInt(prompt ("Informe uma idade."));
     totalIdades = totalIdades + idade;  // 2
     numero++;
}

mostraTitulo ("A média da Idade de seus amigos");
mostra ("A média calculada é " + mediaDasIdades);  // 3

Veja que na linha onde eu comentei 1 vc faz o cálculo da média quando a variável totalIdades ainda está valendo 0! Sendo assim, mediaDasIdades recebe o valor 0! Depois, no ponto onde comentei 2, vc vai atualizando o valor da variável totalIdades com o somatório das idades que o usuário informa. E, no ponto 3, vc mostra o valor da média que foi calculada no ponto 1, quando totalIdades valia 0! Por isso, sempre aparece 0 como resposta!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Desculpa, continuo sem entender. Eu acho que fiz como tava no vídeo... você tá dizendo que o valor de "totalIdades" não deveria ser 0? E qual deveria ser?

Obrigado por ajudar

Opa, Pedro! Vou responder suas perguntas abaixo!

você tá dizendo que o valor de "totalIdades" não deveria ser 0?

Não foi isso que eu disse. Eu apenas mostrei a ordem duas suas ações. Dessa forma, repare que vc calculou a média das idades quando totalIdades ainda não havia recebido o somatório das idades. Ou seja, seu código está incorreto pois a média é calculada no momento errado! Veja nessa aula que a média é calculada apenas após o while e não antes como vc fez em seu código.

Dá uma olhada lá e qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Olá, Pedro. O seu código esta totalmente correto até a parte final, onde você esqueceu de acrescentar uma variável, segue abaixo o parte faltante do seu código.


    var mediaDasIdades = totalIdades/amigosInformados;  // faltou isso aqui, essa variável fora da while para calcular a média. 
    mostraTitulo ("A média da Idade de seus amigos");
    mostra ("A média calculada é " + mediaDasIdades);



</script>
solução!

Agora entendi o que estava errado, obrigado!

Eu adicionei "Math.round" para casos em que os números resultados sejam longos e com vírgulas, o que vocês acham?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function mostraTitulo (titulo) {

        document.write ("<h1>" + titulo + "</h1>");
        pulaLinha ();
    }

    var  amigosInformados = parseInt (prompt ("Informe quantos amigos você possui. Use somente números."));
    var numero = 1;
    var totalIdades = 0;

    alert ("Agora você vai informar cada uma das idades. Somente em números.")

    while (numero <= amigosInformados) {
         var idade = parseInt(prompt ("Informe uma idade."));
         totalIdades = totalIdades + idade;  
         numero++;
    }

    var mediaDasIdades = totalIdades/amigosInformados; 

    mostraTitulo ("A média da Idade de seus amigos");
    mostra ("A média calculada entre seus amigos é " + Math.round (mediaDasIdades));  

</script>

Boa tarde, Pedro! Como vai?

Foi uma boa ideia essa de arredondar o resultado! Inclusive, mais pra frente no curso essa função será usada!

Grande abraço e bons estudos, meu aluno!