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

Porque a divisão não funcionou ?

Professor, boa tarde!

Sem querer, eu implementei um código diferente, ao invés de atribuir os resultados nas variáveis, eu realizei uma subtração, porem o resultado da divisão ficou incorreto, porque?

Sendo que o resultado da divisão deveria ser 27.

Resultado do código:

Flavio tem 24 Anos Joaquim tem 27 Anos Barney tem 31 Anos

A média das idades é: 29

<script>

       var ano = 2017;

       document.write ("Flavio tem " + (ano - 1993) + " Anos");
       document.write ("<br>");
       document.write ("Joaquim tem " + (ano - 1990) + " Anos");
       document.write ("<br>");

       ano = 2020;

       document.write ("Barney tem " + (ano - 1989) + " Anos");
       document.write ("<br>");

       var idadeFlavio  = ano - 1993;
       var idadeJoaquim = ano - 1990;
       var idadeBarney  = ano - 1989;
       var media        = (idadeFlavio + idadeJoaquim + idadeBarney) / 3;

      document.write ("<br>");
      document.write ("A média das idades é: " + Math.round(media));

</script>
3 respostas
solução!

Oi José, tudo bem ?

Cara acabei de fazer as contas aqui e a média dá 29 !

2020 - 1993 = 27 2020 - 1990 = 30 2020 - 1989 = 31

27 + 30 + 31 = 88

88 / 3 = 29.33333

A variavel ano no momento em que o calculo é feito, vale 2020.

Espero ter ajudado.

Abraços

Entendi.

Quando o código printa na tela, as duas primeiras idades são da variável ano = 2017, e a ultima idade ano = 2020

Quando faz a subtração das três idades, o resultado é de acordo com a variável ano = 2020 apenas.

Obrigado!!

Olá José,

Pelo seu código a média esta correta, é 29. Que saber porque?

Vamos analisar seu código:

var ano = 2017;
document.write ("Flavio tem " + (ano - 1993) + " Anos");
document.write ("<br>");
document.write ("Joaquim tem " + (ano - 1990) + " Anos");
document.write ("<br>");

Nesta parte temos como resultado as idades: Flavio com 24 e Joaquim com 27 anos.

ano = 2020;
document.write ("Barney tem " + (ano - 1989) + " Anos");
document.write ("<br>");

Aqui temos Barney com 31 anos.

O problema esta no próximo trecho do código.

var idadeFlavio  = ano - 1993;
var idadeJoaquim = ano - 1990;
 var idadeBarney  = ano - 1989;

Aqui você realiza varias operações com a variável "ano", que começou com o valor 2017 e depois passou a ser 2020. Nestas operações o código vai assumir o ultimo valor da variável, pois ela foi reescrita como mencionei.

Para que você obtenha o valor 27 como média, tem que realizar as duas primeiras operações antes que a variável "ano" mude de valor.

Segue o código alterado:

<script>

    var ano = 2017;

    document.write ("Flavio tem " + (ano - 1993) + " Anos");
    document.write ("<br>");
    document.write ("Joaquim tem " + (ano - 1990) + " Anos");
    document.write ("<br>");

    var idadeFlavio  = ano - 1993;
    var idadeJoaquim = ano - 1990;

    ano = 2020;
    document.write ("Barney tem " + (ano - 1989) + " Anos");
    document.write ("<br>");

    var idadeBarney  = ano - 1989;

    var media = (idadeFlavio + idadeJoaquim + idadeBarney) / 3;

    document.write ("<br>");
    document.write ("A média das idades é: " + Math.round(media));

</script>