Seguinte, preciso fazer um programa que leia o codigo de um aluno e suas 3 notas, depois calcule a media ponderada dele(sendo que a maior nota tem peso 4 e as outras duas terão peso 3, ai final, preciso mostrar o codigo que o aluno digitou, as suas 3 notas, a media ponderada dele e uma mensagem APROVADO se a media for igual ou maior que 5 e caso contrario exiba REPROVADO.
tenho isso até agora:
[code] import java.util.Scanner;
public class NotaMediaPonderada {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double media;
double notaMaior = 0;
double somaMenor = 0;
Scanner teclado = new Scanner(System.in);
System.out.println("Digite o código do aluno");
double cod = teclado.nextDouble();
System.out.println("Digite a primeira nota");
double nota1 = teclado.nextDouble();
System.out.println("Digite a segunda nota");
double nota2 = teclado.nextDouble();
System.out.println("Digite a terceira nota");
double nota3 = teclado.nextDouble();
if (nota1 > nota2 && nota1 > nota3){
nota1 = notaMaior;
somaMenor = nota2+ nota3;
}else if (nota2 > nota1 && nota2 > nota3){
nota2 = notaMaior;
nota2 = nota2;
somaMenor = nota1+nota3;
}else if (nota3 > nota1 && nota3 > nota2){
nota3 = notaMaior;
nota3 = nota3;
somaMenor = nota1+nota2;
}
media=((notaMaior*0.6)+(somaMenor*0.4));
if ( media >= 5){
System.out.println("APROVADO");
} else {
System.out.println("REPROVADO");
}
System.out.println("a primeira nota é "+nota1);
System.out.println("a segunda nota é "+nota2);
System.out.println("a terceira nota é "+nota3);
System.out.println("a média é: "+media);
O que tu queres é exactamente o contrário. Queres que a notaMaior seja a nota1 e não que a nota1 seja a notaMaior (que será 0 pelo que atribuíste acima)
onde estão declarados os pesos?
Por que 0.6 e 0.4?
Da onde veio esses valores?
São padrão?
Não poderiam declarados com atributos?
Poderiam ser passados via console feito as notas ou declarado e inicializado como final “constante”
media=((notaMaior*0.6)+(somaMenor*0.4));
MP = (nota1 x peso1) + (nota2 x peso2) / (peso1 +peso2)
[/quote]
O que tu queres é exactamente o contrário. Queres que a notaMaior seja a nota1 e não que a nota1 seja a notaMaior (que será 0 pelo que atribuíste acima)
[quote=Alexsandro Lopes]onde estão declarados os pesos?
Por que 0.6 e 0.4?
Da onde veio esses valores?
São padrão?
Não poderiam declarados com atributos?
Poderiam ser passados via console feito as notas ou declarado e inicializado como final “constante”
[quote] 0.6 e 0.4 são os pesos para as notas 0.4 é o peso da maiorNota e o 0.6 é a soma dos pesos das notas menores.
media=((notaMaior*0.6)+(somaMenor*0.4));
MP = (nota1 x peso1) + (nota2 x peso2) / (peso1 +peso2)[/quote]
galera, cheguei a esse código, e que pelo que testei aqui está funcionando, já testei na calculadora e a principio está ok, mas queria saber se alguém tem alguma consideração a fazer, alguma melhoria ou questionamento.
Podias ter mantido a soma das notas menores. Tinhas era de manter o factor 3 e não dobrar o factor.
media = ((notaMaior*4) + (somaMenores*3))/10;
A questão dos números iguais está mal. Só funciona se as três forem iguais.
E estás a complicar o que é simples. Basta nos teus if usar >= em vez de apenas >