Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tentei fazer um programa pra treinar as functions e não consigo fazer funcionar

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

function pulaLinha (){
    document.write("<br>");
}
function mostra(frase){
    document.write(frase);
    pulaLinha()
}
function calculoMedia(lp, mat, hist, geo, bio, fsc, qui, filo, socio) {
    return ((lp + mat + hist + geo + bio + fsc + qui + filo + socio)/9);

}

var lp = prompt ("Informe sua nota em Português");
var mat = prompt ("Informe sua nota em Matemática");
var hist = prompt ("Informe sua nota em História");
var geo = prompt ("Informe sua nota em Geografia");
var bio = prompt ("Informe sua nota em Biologia");
var fsc = prompt ("Informe sua nota em Física");
var qui = prompt ("Informe sua nota em Química");
var filo = prompt ("Informe sua nota em Filosofia");
var socio = prompt ("Informe sua nota em Sociologia");

var media = calculoMedia(lp, mat, hist, geo, bio, fsc, qui, filo, socio);

mostra("A sua média bimestral é de: " + media);
</script>
1 resposta
solução!

Olá Guilherme,

O detalhe é que o prompt retorna um valor do tipo texto (string), e quando você soma dois textos o que acontece é a união desses textos:

var soma = "Olá " + "Guilherme";
// Resultado: "Olá Guilherme"

var soma = "10" + "10";
// Resultado: "1010"

O que você pode fazer é converter de texto para número (int), e o javascript tem a função parseInt() que faz exatamente isso:

var soma = parseInt("Olá ") + parseInt("Guilherme");
// Resultado (não consegue converter para número): NaN

var soma = parseInt("10") + parseInt("10");
// Resultado: 20

Então o que você tem que fazer é converter o que vem do prompt() com o parseInt(): var lp = parseInt(prompt("Informe sua nota em Português"));

Como isso se torna algo repetitivo, utilizamos a mesma ação várias vezes, podemos colocar isso dentro de uma função para simplificar um pouco o código:

// Cria a função
function pegaNumero(pergunta) {
    return parseInt(prompt(pergunta));
}

// Usando a função
var lp = pegaNumero("Informe sua nota em Português");
var mat = pegaNumero("Informe sua nota em Matemática");
var hist = pegaNumero("Informe sua nota em História");
... resto do código

Espero ter ajudado, qualquer dúvida é só falar!