Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

Calcular média e dizer se foi Aprovado ou Reprovado

Neste tutorial de nosso Curso de JavaScript, vamos resolver um exercício e comentar seu código.
Faremos uso dos tutoriais da seção de Testes Condicionais IF e ELSE.

Exercícios de IF e ELSE

Exercício de JavaScript

Faça um script que pede duas notas de um aluno. Em seguida ele deve calcular a média do aluno e dar o seguinte resultado:
  •     A mensagem "Aprovado", se a média alcançada for maior ou igual a sete;
  •     A mensagem "Reprovado", se a média for menor do que sete;
  •     A mensagem "Aprovado com Distinção", se a média for igual a dez.

Questão resolvida e Código Comentado

Inicialmente, criamos dois campos de input em HTML, do tipo number, para receber as notas dos alunos e um botão 'Calcular média', que quando acionado chama a função media(), que vai dentro do código JS.

Vamos lá, inicialmente, declaramos duas variáveis nota1 e a nota2, que vão receber os dados digitados nos formulários de input.

Como esses dados vem no formato string, precisamos transformar eles em dados números do tipo decimal, por isso usamos a função parseFloat().



Com os dois números em mãos, declaramos a variável media, que recebe o valor da média das duas notas (somamos elas e dividimos por 2).

Agora pegamos esse valor, e vamos usar nos testes condicionais.
Se este valor for maior ou igual a 7, é porque foi aprovado.

Mas temos dois tipos de aprovações.
Então, dentro do IF, testamos se essa nota é igual a 10. Se for, dizemos que foi aprovado com distinção. Se não for, é porque a nota é maior ou igual a 7 e é menor que 10, logo dizemos apenas que foi aprovado.

Se o primeiro IF for falso, é porque a nota é menor que 7, cai no ELSE com a mensagem de provação.



Script funcionando


Primeira nota
Segunda nota



Código HTML + JavaScript

<!DOCTYPE html>
<html>
 <head>
   <title>Curso JavaScript Progressivo</title>
   Primeira nota <input id="nota1" type="number"> <br />
   Segunda  nota <input id="nota2" type="number"> <br />
   <button onclick="media()">Calcular M�dia</button>

   <script type="text/javascript">

    function media(){
     var nota1 = parseFloat(document.getElementById("nota1").value);
     var nota2 = parseFloat(document.getElementById("nota2").value);

     var media = (nota1 + nota2)/2 ;

     if(media >= 7)
      if(media==10)
       alert("Uau! Aprovado com distin��o");
      else
       alert("Parabens, aprovado! Media "+media);
     else
      alert("Reprovado!")

    }
 </script>

 </head>
</html>

26 comentários:

  1. function verificar() {
    var nota1 = Number(document.getElementsByTagName('input')[0].value);
    var nota2 = Number(document.getElementsByTagName('input')[1].value);
    var media = (nota1 + nota2) / 2;
    if (media >= 7 && media < 10) {
    document.querySelector('p').innerHTML = `O aluno está aprovado.`;
    } else if (media >= 10) {
    document.querySelector('p').innerHTML = `O aluno tirou a nota ${media} e está aprovado com distinção.`;
    } else {
    document.querySelector('p').innerHTML = `O aluno está reprovado.`;
    }
    }

    ResponderExcluir
    Respostas
    1. O seu segundo if teria que está if(media == 10), pois não existe média maior do que 10.

      Excluir
  2. Resolvi sem parseFloat
    Código:function sonotaboa(nota) {
    if (nota >= 7) {
    console.log('Aprovado Pra caralho')
    } else {
    console.log('Reprovado')
    }
    if (nota >= 10) {
    console.log('Aprovado Com sucesso macaco')
    }


    }
    sonotaboa(8.1)
    sonotaboa(4.1)
    sonotaboa(2.1)
    sonotaboa(10)

    ResponderExcluir
  3. só conseguir resolver com o parseInt()

    ResponderExcluir
  4. aqui só conseguir resolver com o parseInt()

    ResponderExcluir
  5. Não consigo visualizar a média sempre que executo

    ResponderExcluir
    Respostas
    1. let primeiraNota = parseFloat(prompt("Digite a primeira nota: "));
      let segundaNota = parseFloat(prompt("Digite a segunda nota: "));
      let media = (primeiraNota + segundaNota) / 2;
      if (media >= 7 && media < 10) {
      console.log("Aprovado");
      } else if (media <= 7) {
      console.log("Reprovado");
      } else {
      media == 10 && media >= 10;
      console.log("Aprovado com Distinção");
      }
      console.log(media);

      Excluir
  6. var nome = "Jéssica "
    console.log (nome)
    var nota1 = 8
    var nota2 = 5
    var mediaNotas = (nota1 + nota2) / 2
    console.log (mediaNotas)
    if (mediaNotas >= 6)
    console.log ("Aprovado")
    else
    console.log ("Reprovado")

    ResponderExcluir
  7. var nome = "Jéssica "
    console.log (nome)
    var nota1 = 8
    var nota2 = 5
    var mediaNotas = (nota1 + nota2) / 2
    console.log (mediaNotas)
    if (mediaNotas >= 6)
    console.log ("Aprovado")
    else
    console.log ("Reprovado")



    observsções para iniciantes =
    console.log = imprimir
    var = variaveis
    if = se for maior
    else = outra condição

    espero ter ajudado

    ResponderExcluir
    Respostas
    1. o alert tbm é também o imprimir?

      Excluir
    2. Olá boa tarde, o Alert pode ser usado tbm como imprimir?

      Excluir
  8. let notaDoAluno = 4;

    if (notaDoAluno >= 7 && notaDoAluno <= 9) {
    console.log("Aprovado",);
    }
    else if (notaDoAluno < 7) {
    console.log("Reprovado",);
    }
    else if (notaDoAluno = 10) {
    console.log("Aprovado com Distinção",);
    };

    ResponderExcluir
  9. var media = 7
    var nota01 = parseInt(prompt())
    var nota02 = parseInt(prompt())
    var nota03 = parseInt(prompt())
    var soma = (nota01 + nota02 + nota03) / 3

    if(soma >= media){
    document.write('Aluno APROVADO ')
    }
    else{
    document.write('Aluno REPROVADO')
    }
    if (soma >= 10){
    document.write(', é o BICHÃO !!!')
    }



    ResponderExcluir
  10. Mano o foda é que eu fiz assim e quando o aluno é aprovado com distinção, ainda continua o aprovado normal do primeiro if, resumindo abre 2 avisos. como que arruma isso

    ResponderExcluir
  11. funcao inicio()
    {
    inteiro contador=1 , N, cont_apr=0, cont_rep=0
    cadeia nome, Nome
    real n1, n2, m, perc_apr, perc_rep, soma= 0

    escreva ("Qtidade de alunos: ") leia (N)
    enquanto (contador<=N)
    {

    escreva(contador,"º aluno(a)\n")
    escreva("Nome: ") leia(nome)
    escreva("Nota 1 : ") leia(n1)
    escreva("Nota 2: ") leia(n2)
    m=(n1+n2)/2
    escreva("Média: ",m, "\n")

    se (m>=6)
    {
    escreva("Situação Aprovado Cupicha!!\n\n")
    cont_apr++ // conta os aprovados

    }
    senao
    {
    escreva("Situação: reprovadon\n\n")
    cont_rep++ // conta os reprovados
    }
    soma = soma + m //acumulador de medias



    contador++



    escreva("Qtidade de alunos aprovador: ",cont_apr,"\n")
    escreva("Qtidade de alunos reprovados: ", cont_rep,"\n")
    perc_apr = cont_apr * 100.0 / N
    escreva("% de aprovados: ", mat.arredondar(perc_apr, 2),"\n")
    perc_rep = cont_rep * 100.0 / N
    escreva("% de reprovados: " ,soma, "\n")
    escreva("Media da turma: ",soma/N,"\n")




    }
    }
    }

    ResponderExcluir
  12. Como posso diminuir o numero de variaveis com limite de apenas 2 porem com 3 notas para contabilizar e tirar a média

    ResponderExcluir
  13. Respostas
    1. Pai, o curso tem um roteiro, as pessoas ainda não aprenderam laços até aqui. Na seção de loopings tem dezenas de exemplos usando for

      Excluir
  14. Código Js
    let average = (...numbers) => {
    const sum = numbers.reduce((accum, num) => accum + num, 0)
    return sum / numbers.length
    }

    console.log(`Méida Arimética Simples: ${average(Seus parametros)}`)

    ResponderExcluir
  15. function media() {
    var nota1 = Number(document.getElementById('grade1').value);
    var nota2 = Number(document.getElementById('grade2').value);

    var media = (nota1 + nota2) / 2;

    if (media == 10) {
    alert('Aprovado com distinção!');
    } else {
    if (media >= 7) {
    alert('Aprovado! Média ' + media);
    } else {
    alert('Reprovado!');
    }
    }
    }

    ResponderExcluir
  16. const name = prompt("Aluno, insira o nome:");
    let notaUm = parseFloat(prompt("Insira a nota do primeiro semestre:"));
    let notaDois = parseFloat(prompt("Insira a nota do segundo semestre:"));

    let soma = (notaUm + notaDois) / 2;

    if (soma === 10) {
    alert("Aprovado com Distinção" + "\n\nMédia do aluno(a): " + soma);
    } else if (soma >= 7) {
    alert("Aprovado" + "\n\nMédia do aluno:(a) " + soma);
    } else {
    alert("Reprovado" + "\n\nMédia do aluno:(a) " + soma);
    }

    ResponderExcluir
  17. let n1 = prompt ("Digite primeira nota");
    let n2 = prompt ("Digite segunda nota");
    let n3 = prompt ("Digite terceira nota");
    let n4 = prompt ("Digite quarta nota");

    let soma_notas = n1 + n2 + n3 + n4;

    let resultado = (soma_notas) / 3;

    if ( resultado >= 6){
    console.log("Aluno Aprovado", resultado);
    alert ("voce foi aprovado:",resultado);


    }else {
    console.log("Aluno Reprovado", resultado);

    }

    ResponderExcluir
  18. let nota = Number(prompt('Insira a sua nota'))

    if (nota >= 7 && nota < 10 ) {
    alert('aprovado')
    } else if (nota == 10) {
    alert ('aprovado com distinção')
    } else if (nota < 7 && nota> 3) {
    alert('reprovado')
    } else if (nota <= 3) {
    alert ('Sem condição de recuperação...')
    }

    ResponderExcluir
  19. Fiz dessa maneira
    let primeiraNota = parseFloat(prompt("Digite a primeira nota: "));
    let segundaNota = parseFloat(prompt("Digite a segunda nota: "));
    let media = (primeiraNota + segundaNota) / 2;
    if (media >= 7 && media < 10) {
    console.log("Aprovado");
    } else if (media <= 7) {
    console.log("Reprovado");
    } else {
    media == 10 && media >= 10;
    console.log("Aprovado com Distinção");
    }
    console.log(media);

    ResponderExcluir
  20. A principio tive dois erros.



    O primeiro foi um "object HTMLInputElement" que aparecia toda vez que eu usava o comando "res.innerHTML" para mostrar o nome do aluno.

    Nessa parte meu codigo estava assim:



    Parte do Script:

    var aluno = document.getElementById('txtaluno')



    Para resolver esse problema eu mudei o nome da id do input porque achei que estava com erro e também acrescentei o ".value" no final do script.



    O meu segundo erro foi ao mostrar as notas que eu digitei. Nessa hora eu tinha o erro de "NaN".

    Meu codigo estava assim antes:



    Parte Script:

    var nota1 = parseFloat(document.querySelector('input#txtnota1')).value

    var nota2= parseFloat(document.getElementById('txtnota02')).value



    Para corrigir o segundo erro como não tenho muito conhecimento porque estou iniciando, eu mudei os nomes das id's para "txtnota01" e "txtnota02" porque achei que estava errado, depois como o erro continuou eu então criei uma variavel chamada "valor1 e valor2" para receber os input das notas e criei separado as variaveis de "nota1 e nota 2" para converter as variaveis "valor1 e valor2" em valores reais com o "parseFLoat".





    Para finalizar, meu codigo ficou assim:



    Parte Script:

    function media(){

    var aluno = document.getElementById('txtaluno1').value

    var valor1 = document.querySelector('input#txtnota01').value

    var valor2 = document.getElementById('txtnota02').value

    var nota1 = parseFloat(valor1)

    var nota2 = parseFloat(valor2)

    var media = (nota1 + nota2) / 2

    var res = document.getElementById('res')



    if (media >= 7){

    res.innerHTML = `ALUNO: ${aluno} REGISTRO DE NOTAS: Nota1: ${nota1} Nota2: ${nota2} A Média das notas desse aluno foi: ${media} APROVADO



    } else {

    res.innerHTML = `ALUNO: ${aluno} REGISTRO DE NOTAS: Nota1: ${nota1} Nota2: ${nota2} A Média das notas desse aluno foi: ${media} REPROVADO`

    }

    }





    Resultado na tela ficou assim:



    BOLETIM DO ALUNO



    Para aprovação é necessário no mínimo 7.



    NOME DO ALUNO:

    Jose Fernando de Almeida



    REGISTRO DE NOTAS:



    Nota 1: 5

    Nota 2: 2



    ALUNO: Jose Fernando de Almeida



    REGISTRO DE NOTAS:



    Nota1: 5

    Nota2: 2



    A Média das notas desse aluno foi: 3.5



    REPROVADO







    Espero ter ajudado, se alguem tiver alguma dica ou comentario de soluções melhores pode falar que eu tento implementar e aprender mais com isso.

    ResponderExcluir
  21. var nota = prompt('digita sua nota');
    var nota_1 = prompt('digita sua outra nota');

    resultado = parseInt(nota) + parseInt(nota_1);

    if(resultado == 7 || resultado == 8 || resultado == 9){
    alert('aprovado');
    }else if(resultado == 10) {
    alert('aprovado com distinção');
    }else{
    alert('reprovado');
    }

    ResponderExcluir