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

Refiz o código para média da notas da prova, mas..

Retrabalhei no código que calcula a média da nota das provas usando a função prompt para pegar a informação do usuário na tela em variáveis e realizar a calculo dentro de uma função que recebe as variáveis, calcula e deveria retornar a variável com o valor calculado e mostrar na tela, porém está dando erro e o depurador acusa erro ao escrever na tela o resultado calculado, alguém consegue entender esse erro?

<meta charset="UTF-8">
<script>

    function pula(){
        document.write("<br>"+"<br>");
    }

    function write(texto){
        document.write(texto);
        pula();
    }

    function corte(){
        document.write("*******************************");
        pula();
    }

    function calc(quest, acert){
        var result = (quest/acert)*100;
        return result;
    }

    var quest = parseInt(prompt("Quantas questões foram?"));
    var acert = parseInt(prompt("Quantas questões você acertou?"));

    write(result); 

   //Atividade da programação da prova elaborada pelo Alura para completar o código para que calcule a média de uma pessoa que acertou x questões da prova, dividimos acertos por questões e multiplicamos por 100 e temos a porcentagem de acerto.

    corte();

</script>
6 respostas

Boa noite

Em nenhum momento você está chamando a função calc(), por isso o result é nulo.

Troque a linha

write(result); 

por

write(calc(quest,acert)); 

que irá funcionar.

Se minha solução funcionou, é recomendável com que você venha estar marcando este tópico como solucionado, assim pode estar ajudando ainda mais pessoas :)

Bons estudos!

solução!

Boa noite, tudo bom? Você criou uma função para calcular, chamada calc, mas em momento algum você executa ela, e por conta disso o valor não aparece. Para dar certo, você pode fazer assim:

write(calc(quest, acert)); 

Agora sim, você está executando a função, passando o numero de questoes e acertos como argumentos, e a execução dessa função vai retornar o resultado, que vai ser escrito na tela. Espero ter ajudado.

Obrigado ambos pelas respostas, funcionou e consegui compreender melhor o uso da função.

Graças a explicação dada, usei o código da forma que foi sugerida que funcionou perfeitamente, mas como um belo curioso fui testar o uso da função e criei a seguinte solução:

   function calc(acert, quest){
        var result = (acert/quest)*100;
        return result;
    }

    var quest = parseInt(prompt("Quantas questões foram?"));
    var acert = parseInt(prompt("Quantas questões você acertou?"));

    var calcule = calc(acert, quest);

    write ("Você acertou "+(Math.round(calcule))+" % da prova");

</script>

Cheguei a conclusão graças ao toque de que eu não estava puxando a função que eu havia criado, outra questão é que eu inverti a ordem das questões com os acertos, fiz questões/acertos e o correto é acertos/questões, já está corrigido. Agradeço de novo pelo toque dado pelos colegas e pela solução apresentada que seria uma forma de encurtar o código.

Boa Gabriel!

Mas o crédito da solução é meu né.. eu respondi antes com a solução do teu problema

rsrs

É, vc foi o primeiro, muito obg.