Ir para conteúdo

POWERED BY:

Arquivado

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

Corujita

Iniciando em Javascript -

Recommended Posts

Boa Noite,

 

Estou iniciando em JavaScript e estou com dificuldade em um exercício. Alguém poderia me ajudar?

 

O Exercício é:

 

Um escola tem a seguinte regra para avaliar seus alunos
De Até Conceito
0 5,9 Insuficiente
6 6,9 Suficiente
7,0 8,9 Bom
9,0 10,0 Ótimo
Faça um programa que avalie a média de um aluno e informe seu
conceito. Considere que podem haver três notas a saber:
Avaliação 1, Avaliação 2 e Avaliação de Recuperação.
Onde a média será realizada entre as duas maiores notas e
Somente haverá necessidade de realizar a recuperação se
o aluno obtiver conceito Insuficiente na Avaliação 1.
A minha dúvida ou dificuldade é conseguir fazer que o código reconheça os dois maiores números conforme solicitado acima.
Fiz um código mas sem o reconhecimento dos 2 maiores valores digitados, já que deles deve sair a média.
Abaixo, o código que eu fiz:
<script language="javascript">
var av1, av2, av3, media, media1;
av1 = +prompt("Digite a nota da primeira prova");
if (av1<=5.9) {
av2 = +prompt("Digite a nota da segunda prova");
av3 = +prompt("Digite a nota da recuperação");
media = (av2+av3)/2;
if (media<=5.9){
alert('A nota final é Insuficiente' +media);
} else{
if (media == 6 && media<=6.9){
alert('A nota final é Suficiente' +media);
} else{
if (media ==7 && media<=8.9){
alert('A nota final é Boa' +media);
} else{
alert('A nota final é ótima' +media);
}
}
}
} else {
av2 = +prompt("Digite a nota da segunda prova");
media1 = (av1+av2)/2;
if (media1<=5.9){
alert('A nota final é Insuficiente' +media1);
} else{
if (media1 == 6 && media<=6.9){
alert('A nota final é Suficiente' +media1);
} else{
if (media1 ==7 && media<=8.9){
alert('A nota final é Boa' +media1);
} else{
alert('A nota final é ótima' +media1);
}
}
}
}
</script>
Alguém poderia me ajudar?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você pode verificar com if tipo assim:

if((nota 1 > nota3) && (nota2 > nota3)){ verifica media entre nota1 e 2}

else if((nota1 > nota2 )&&(nota3 > nota2)){verifica media entre nota 1 e 3}

 

se 1 e 2 > 3 = 1+2;

se 1 e 3 > 2 = 1+ 3;

se 2 e 3 > 1 = 2 + 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

A minha dúvida ou dificuldade é conseguir fazer que o código reconheça os dois maiores números conforme solicitado acima.

Eu ordenaria o array e pegaria os 2 itens da ponta.

Pois assim fica mais fácil "escalar" a aplicação. Se amanhã pedirem "3 maiores", "5 maiores", a quantidade de testes if que vc fará se tornará inviável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai ter que criar um array para facilitar, normalmente as linguagens possuem métodos para reordenar os valores do array daí você pegaria os 2 últimos setando pelo indice como explicado no post #6, mas aconselho aprender a reordenar a lista na munheca antes já que vc está começando a programar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Eu ordenaria o array e pegaria os 2 itens da ponta.

Pois assim fica mais fácil "escalar" a aplicação. Se amanhã pedirem "3 maiores", "5 maiores", a quantidade de testes if que você fará se tornará inviável.

Concordo com o raciocínio.

 

@corujita

Quase sempre a maneiras de se melhorar um script, porém como você está começando acho interessante fazer conforme seu raciocínio lógico permita, porque qual a graça de utilizar uma forma "sofisticada" de resolver um problema, se não tem a mínima ideia de como?

 

Digo isso porque quem gosta de programar, geralmente adora a sensação de tentar e descobrir (ou pelo menos quase sempre).

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.