Calcular média

5 respostas
Joao_Pedro5

Boa Noite Galera!
Preciso de um suporte, por favor! O livro que estou estudando possui o seguinte exercício sobre método:
O método calcularMedia deve descartar a menor das três notas e calcular a média das duas maiores, retornando o valor resultante;

O que consegui desenvolver até o momento:

public double calcularMedia(){
    double media=0;
    double maior=0;
    if(Av1 > Av2 && Av1 > Av3){
        maior=Av1;
    }else if(Av2>Av1 && Av2>Av3){
        maior=Av2;            
    }else{
        maior=Av3;
    }
    return media;
}

5 Respostas

Jonathan_Medeiros

De onde vem as variáveis av1, av2 e av3?
Não pode utilizar uma lista de notas?

Lucas_Camara

Tente montar seu código assim:

  • Monte uma lista de notas
  • Identifique a menor nota
  • Retire a menor nota da lista
  • Faça a média com as notas restantes

Pensando nisso, vc vai melhorando os passos (simplificando) na medida que vai fazendo.

sugestões são muito bem vindas

Kassioburgadon

Ficou um pouco grande mas poderá fazer dessa forma:

public double calcularMedia(){
    double media=0;
    double menor=0;
    if(Av1 < Av2 && Av1 < Av3){
        menor=Av1;
    }else if(Av2<Av1 && Av2<Av3){
        menor=Av2;            
    }else{
        menor=Av3;
    }
	
	if(menor == Av1){
		media = (Av2+Av3)/2
	}
	else if(menor == Av2){
		media = (Av1+Av3)/2
	}
     else{
		media = (Av1+Av2)/2
	}
    return media;
}
Lucas_Camara
double[] notas = { 2.0, 3.0, 2.5 };
int indexMenor = 0;

for(int i = 0 ; i < notas.length; i++) {
	if(notas[i] < notas[indexMenor]) {
		indexMenor = i;
	}
}

double soma = 0.0;

for(int i = 0; i < notas.length; i++) {
	if(i != indexMenor) {
		soma += notas[i];
	}
}

System.out.println("Média: " + (soma / (notas.length-1)));
Joao_Pedro5

Bom Dia Gente! Perdão pela demora, agradeço desde já pelo o apoio.
Consegui desenvolver o exercício da seguinte forma:

OBS:AV1,AV2,AV3 são atributos de um objeto.

public double calcularMedia(){
    double media=0;
    if(Av1 < Av2 && Av1 < Av3){
        media=(Av2+Av3)/2;
    }else if(Av2 < Av1 && Av2 < Av3){
        media=(Av1+Av3)/2;            
    }else{
        media=(Av1+Av2)/2;
    }
    return media;
Criado 26 de fevereiro de 2019
Ultima resposta 2 de mar. de 2019
Respostas 5
Participantes 4