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

O resultado do código esta sendo diferente mesmo eu usando as variáveis que dão o mesmo valos

Eu estou como o código escrito praticamente igual ao de exercício. que é esse.

<meta charset="UTF-8">

<script>
    var ano = 2016

    document.write("Flávio tem " + (ano - 1977) + " anos");
    document.write("<br>")
    document.write("Joaquim tem " + (ano - 1996) + " anos");
    document.write("<br>")

    ano = 2017
    document.write("Barney tem " + (ano - 1976) + " anos");

document.write("<br>");    

 var idadeFlavio = 39;
 var idadeJoaqui = 20;
 var idadeBarney = 41;

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

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

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

var nome = "Flávio";

document.write("A idade de " + nome + " é " + idadeFlavio);

</script>

O resultado dele é:

"Flávio tem 39 anos

Joaquim tem 20 anos

Barney tem 41 anos

A média das idades é 33

A idade de Flávio é 39"

Igual ao do professor.

Para tentar otimizar o programa eu queria deixar as variáveis "idadeFlavio", "idadeJoaqui" e "idadeBarney" não como números e sim como variáveis como no começo do código como uma equação:

var ano = 2016

    document.write("Flávio tem " + (ano - 1977) + " anos");
    document.write("<br>")
    document.write("Joaquim tem " + (ano - 1996) + " anos");
    document.write("<br>")

    ano = 2017
    document.write("Barney tem " + (ano - 1976) + " anos");

Então eu escrevi o código assim (linhas alteradas 16, 17 e 18:

<meta charset="UTF-8">

<script>
    var ano = 2016

    document.write("Flávio tem " + (ano - 1977) + " anos");
    document.write("<br>")
    document.write("Joaquim tem " + (ano - 1996) + " anos");
    document.write("<br>")

    ano = 2017
    document.write("Barney tem " + (ano - 1976) + " anos");

document.write("<br>");    

 var idadeFlavio = ano - 1977;
 var idadeJoaqui = ano - 1996;
 var idadeBarney = ano - 1976;

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

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

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

var nome = "Flávio";

document.write("A idade de " + nome + " é " + idadeFlavio);

</script>

Mas o resultado não é igual ao anterior do professor. O resultado fica:

"Flávio tem 39 anos

Joaquim tem 20 anos

Barney tem 41 anos

A média das idades é 34

A idade de Flávio é 40"

Mudando o resultado da idade media e da idade do Flavio mas apenas no ultima linha.

Algum consegue me explicar aonde esta sendo o meu erro?

2 respostas
solução!

Opa fala ai André seu codigo está correto, apenas um erro de atenção mesmo, que é normal rsrs.

<script>
    var ano = 2016

    document.write("Flávio tem " + (ano - 1977) + " anos");
    document.write("<br>")
    document.write("Joaquim tem " + (ano - 1996) + " anos");
    document.write("<br>")

    ano = 2017
    document.write("Barney tem " + (ano - 1976) + " anos");

vc está declarando a variavel ano com o ano 2016, logo depois, vc atribui outro valor a ela, colocando 2017, seu codigo a baixo.

 var idadeFlavio = ano - 1977;
 var idadeJoaqui = ano - 1996;
 var idadeBarney = ano - 1976;

Está fazendo o calculo com o ano de 2017, e não o de 2016, por isso essa diferença nos valores

Tá... deixa eu ver se eu entendi. Nesse código eu não consigo otimizar as variáveis idedeFlavio, idadeJoaquin e idadeBarney, pq a var ano esta sendo lida como 2017 para todas idades, e não a var ano = 2016 só para o idedeFlavio e idadeJoaquin e a var ano = 2017 só par o idadeBarney?