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

Resposta correta

Olá, Essas são as afirmações do exercício:

A) O resultado da média das idades é 14. (Não é falsa)

B) As variáveis foram declaradas em letras maiúsculas e, em JavaScript, isso causará um erro. (Falsa)

C) O valor de IDADE2 nos causará problemas no cálculo da média das idades. (Não é falsa)

Na resolução do problema não aparece a alternativa que somente a letra B está errada. Eu entendo que a alternativa C é uma string por isso o problema nos cálculos. Mais fiz as alterações no programa através do Sublime e ele não acusou o erro pela var IDADE estar toda declarada em letra maiúscula, portanto não causou um erro na leitura do programa. Qual seria a alternativa certa a marcar??

3 respostas

Oi Priscila! A alternativa c está incorreta, o resultado da conta seria uma concatenação de Strings, em vez de somar o valor das variáveis. Se você fizer a alteração de String pra um número, a conta irá funcionar.

Abraços!

solução!

Olá Priscila! As alternativas A e B são falsas. A alternativa B você já identificou que é falsa, pois apesar dos nomes das variáveis estarem declaradas em letras maiúsculas e isso não ser considerado uma boa prática, não causará erro em JavaScript. Agora a alternativa A também é falsa. Acompanha comigo:

var IDADE1 = 10; // número
var IDADE2 = "20"; // String
var IDADE3 = 12; // número

document.write( (IDADE1 + IDADE2 + IDADE3) / 3);

IDADE 1 + IDADE 2 = 10 + "20"

Isso é número + String. Esse sinal de + quando há uma String envolvida executa a operação de concatenação e não de soma, por isso o resultado fica sendo uma outra String com valor igual a "1020".

(IDADE1 + IDADE2) + IDADE 3 = "1020" + 12

Mesma situação da operação anterior. Aqui temos a String "1020" sendo concatenada com o número 12, o que resulta na String "102012".

(IDADE1 + IDADE2 + IDADE3) / 3 = "102012" / 3

Aqui temos a String "102012" sendo dividida pelo número 3. Diferentemente do que existe no caso do sinal de +, que em JavaScript pode ser tanto a operação de concatenação como a operação de soma, o sinal de divisão (/) em JavaScript é somente para a operação de divisão mesmo. Então quando o programa encontra a String "102012" sendo dividida pelo número 3, internamente o JavaScript transforma a String "102012" no número 102012 (isso não ocorre com o sinal de +). Sendo assim, o resultado da divisão do número 102012 pelo número 3 resulta em 34004, que é exatamente o resultado que é impresso na tela.

Por isso a alternativa A também é falsa, pois o resultado somente seria 14 se realmente as três variáveis envolvidas (IDADE1, IDADE2 e IDADE3) fossem números.

Entendido! Obrigada!!