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

NÃO CONSIGO RESOLVER O CÁLCULO DA MÉDIA ENTRE DUAS NOTAS

Olá pessoal, boa noite. Tentei fazer uma outra questão, o cálculo da média de duas notas. Colocarei dois exemplos abaixo. O primeiro não consegui calcular a média. O segundo exemplo também não deu certo. O código concatena nota1 com nota2, divide por dois e dá um resultado totalmente diferente.erro no cálculoNão consigo ver onde estou errando nos dois exemplos.

EXEMPLO UM HTML

<table>
    <tr class="info-prova">
        <td class="info-nota1">8.5</td>
        <td class="info-nota2">3.5</td>
        <td class="info-media">0</td>
    </tr>
</table>

<script src="myscript.js"></script>

JAVASCRIPT var trprova = document.querySelector('.info-prova') var tdnota1 = trprova.querySelector('.info-nota1') var nota1 = tdnota1.textContent

var tdnota2 = trprova.querySelector('.info-nota2') var nota2 = tdnota2.textContent

var tdnota3 = trprova.querySelector('.info-media') var media = (nota1 + nota2) / 2

tdnota3.textContent = media

EXEMPLO DOIS HTML

<table>
    <tr class="info-prova">
        <td class="info-nota1">8.5</td>
        <td class="info-nota2">3.5</td>
        <td class="info-media">0</td>
    </tr>
</table>

<script src="myscript.js"></script>

JAVASCRIPT var trprova = document.querySelector('.info-prova') var tdnota1 = trprova.querySelector('.info-nota1') var tdnota2 = trprova.querySelector('.info-nota2') var tdnota3 = trprova.querySelector('.info-media')

var nota1 = tdnota1.textContent var nota2 = tdnota2.textContent

var media = (nota1 + nota2)/2

tdnota3.textContent = media

5 respostas

Eai estou aprendendo também, acredito que não está pegando os valores pois deveria ser usado "" e não '' no querySelector: document.querySelector('.info-prova')

deveria estar: document.querySelector(".info-prova")

em todos eles. Se for me avisa.

Acredito que não, o código roda mesmo estando com aspas simples. Acho que esse não é o problema. Fiz a alteração mas o erro continua, não consegue fazer o cálculo.

var trprova = document.querySelector(".info-prova") var tdnota1 = trprova.querySelector('.info-nota1') var nota1 = tdnota1.textContent

var tdnota2 = trprova.querySelector('.info-nota2') var nota2 = tdnota2.textContent

var tdnota3 = trprova.querySelector('.info-media') var media = (nota1 + nota2) / 2

tdnota3.textContent = media

Basicamente o sinal de + ele funciona para soma se o valor for inteiro, se for uma string para concatenação , então quando pegamos o número ele é tratado como uma string e não um valor inteiro. Para resolver é necessário passar para o navegador que este valor deve ser tratado como um número e não uma string. Assim:

var media = (parseFloat(nota1) + parseFloat( nota2))/2;

No caso usa o float por ter casa decimal, se fosse para fazer 1 + 1 seria

parseInt(1) + parseInt(1)

Desculpe se passei errado antes estou um pouco enferrujado, estou fazendo os curso para lembrar o que aprendi na faculdade e depois seguir nessa área.

O parseFloat analisa um argumento string e retorna um numero de ponto flutuante. Mas se fosse para usar parseFloat, no exemplo da aula deveria também ter usado. Acontece que o exemplo que fiz, do cálculo da média das duas notas, é quase a mesma coisa, só mudei os nomes. Ainda continuo sem entender o porquê de não dá certo o código. Vou tentar novamente.

solução!

Resolvi de outro jeito.