Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

murtisso

JavaScript

Recommended Posts

Boa tarde,

Tenho um codigo Javascript para calcular 4 notas e apresentar media final, se aprovado ou nao. O problema é que nao esta calculando a media final, se alguem puder ajudar, agradeço.

<html>

<head>

<title>Documento sem título</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

 

<body>

<form name="nota">

Nome do Aluno: <input type="text"name="nome"><br>

Nota 1: <input type="text"name="nota1"><br>

Nota 2: <input type="text"name="nota2"><br>

Nota 3: <input type="text"name="nota3"><br>

Nota 4: <input type="text"name="nota4"><br>

<input type="button"value="Ver Média"onclick="media()">

</form>

<script language="javascript">

function media(){

nome=nota.nome.value;

n1=nota.nota1.value;

n2=nota.nota2.value;

n3=nota.nota3.value;

n4=nota.nota4.value;

media=parseFloat((n1+n2+n3+n4)/4);

sts="";

if(media>=5){

sts="Aprovado";

}

if(media<5){

sts="Reprovado".

}

alert('Aluno: '+nome+' Média= '+media+ 'Status= '+sts);

}

</script>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falæ! beleza?

 

Bom... encontrei 2 probleminhas no teu código:

  1. A linha
    sts="Reprovado"

    está terminando com '.', e não com ';'. Isso está ocasionando um erro de interpretação no teu código;

  2. Os valores de cada campo precisam ser convertidos para float para ser possível realizar a conta, e não apenas o valor:
    n1=parseFloat(nota.nota1.value), n2=parseFloat(nota.nota2.value) etc


 

Da uma testada aí.

 

Abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="nota">
Nome do Aluno: <input type="text"name="nome"><br>
Nota 1: <input type="text"name="nota1"><br>
Nota 2: <input type="text"name="nota2"><br>
Nota 3: <input type="text"name="nota3"><br>
Nota 4: <input type="text"name="nota4"><br>
<input type="button"value="Ver Média"onclick="verMedia()">
</form>
<script>
function verMedia() {
notas = [nota.nota1.value, nota.nota2.value, nota.nota3.value, nota.nota4.value];
nome = nota.nome.value;
media = new Number(); // ou 0
sts = "";
for(i=0;i<notas.length;i++) {media+= parseFloat(notas[i]);}
media /= 4;
media>=5 ? sts="Aprovado" : sts="Reprovado";
alert("Aluno: "+nome+" \nMédia= "+media+" \nStatus = "+sts);
}
</script>
</body>
</html>

 

Ou se preferir, aqui está o seu funcionando:

<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="nota">
Nome do Aluno: <input type="text"name="nome"><br>
Nota 1: <input type="text"name="nota1"><br>
Nota 2: <input type="text"name="nota2"><br>
Nota 3: <input type="text"name="nota3"><br>
Nota 4: <input type="text"name="nota4"><br>
<input type="button"value="Ver Média"onclick="verMedia()">
</form>
<script language="javascript">
function verMedia(){
nome=nota.nome.value;
n1=parseFloat(nota.nota1.value);
n2=parseFloat(nota.nota2.value);
n3=parseFloat(nota.nota3.value);
n4=parseFloat(nota.nota4.value);
media= (n1+n2+n3+n4)/4;
sts="";
if(media>=5){
sts="Aprovado";
}
if(media<5){
sts="Reprovado";
}
alert('Aluno: '+nome+' Média= '+media+ 'Status= '+sts);
}
</script>
</body>
</html> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.