Média aritmética

Vocês podem me ajudar com esse exercício de String?

Eu consegui fazer esse programa abaixo, mas coloquei um menu com “Do While” ao invés das opções de digitar 1 e 2, eu queria que fosse A e P, como faço para resolver isso?

Faça um método com retorno de valor que receba 3 notas de um aluno como parâmetro e uma letra. Se a letra for A o método calcula a média aritmética das notas do aluno, se for P o método calcula a média ponderada com os pesos p1 = 5, p2=3 e p3=2.

Obrigado !

    • assim:

[code]
public double media(int n1, int n2, int n3, char letra)
{
double media = 0;

if(letra == 'A')
{
     // calcula média aritmética
}
else if(letra == 'P')
{
    // calcula média ponderada
}

return media;

}[/code]

Qual é a sua dúvida?!

[color=darkred]public double medias(double nota1, double nota2, double nota3, char t)
{
double result = 0;
switch (t)
{
case ‘a’:
result = (nota1 + nota2 + nota3) / 3;
break;
case ‘p’:
result = (nota15 + nota23 + nota3*2) / 10;
break;
}
return result;
}

    public static void main(String[] ar)
    {
        System.out.println(new ComprometimentoSocialVO().medias(5,4,3,'p'));
    }[/color]

:lol:

parceiro se n to enganado switch so pode receber valores inteiros… alguem ai pode mim confirmar?

Camilo, o switch pode receber valores:

  • byte
  • short
  • char
  • int

T+

Isto me parece o caso de lidar com sobrecarga de métodos.

// media aritmetica public double medias(double [] notas) { double media = 0.0; for(int i=0;i<notas.length;i++) media += notas[i]; return (media / notas.length); } // media ponderada // perceba que se pesos não tiver o mesmo tamanho que notas, // havera uma exception durante o Runtime... ;-) public double medias(double [] notas, double [] pesos) { double media=0.0, peso = 0.0; for(int i=0;i<notas.length;i++) { peso += pesos[i]; media += notas[i]*pesos[i]; } return (media / peso); } // media na qual é possivel escolher um tipo e outro // se passar o tipo 'A' é ignorado o vetor 'pesos' public double medias(double [] notas, double [] pesos, char tipo){ return (tipo== 'a'||tipo =='A') ? medias(notas) : medias(notas,pesos); }

Dêem uma olhada no que eu fiz, ta funcionando perfeitamente, só q ao inves de digitar A e P no menu, preciso digitar 1 e 2 para funcionar.

import javax.swing.*;

public class Mediatrab
{
public static void main(String args[])
{
String entrada;
int x;
int opcao;
float N1, N2, N3, media;
float soma=0, med, numero;

   do
   {

	 	entrada = JOptionPane.showInputDialog("1 - Digite A para média aritmética\n"+
    	 									  "2 - Digite P para média ponderada\n"+
    	 									  "3 - SAIR\nEscolha a opção:");
    	     	 
        opcao = Integer.parseInt(entrada);
    	 
    	switch(opcao)
    	 {
    	  case 1:
    	  {
    
	        entrada = JOptionPane.showInputDialog("Nota da Prova Regimental?");
	        N1=Float.parseFloat(entrada);
	        
	        entrada = JOptionPane.showInputDialog("Nota da Prova Parcial?");
	        N2=Float.parseFloat(entrada);
	       
	        entrada = JOptionPane.showInputDialog("Nota do Trabalho?");
	        N3=Float.parseFloat(entrada);
	        
	        media = N3*0.20f+N2*0.30f+N1*0.50f;
	        
	        if (media>=7)
	        {
	          JOptionPane.showMessageDialog(null,"Parabéns. Você está Aprovado!");
	        }
	         else
	        if (media>=4)
	        {
	          JOptionPane.showMessageDialog(null,"Você está de Exame!");
	        }
	         else
	        if (media<=4)
	        {
	          JOptionPane.showMessageDialog(null,"Você está Reprovado!");
	        }
	      
         }
         break;
         
         
         
         case 2:
                entrada = JOptionPane.showInputDialog("Entre com a quantidade de números:");
				x = Integer.parseInt(entrada);
				
				for(int i=1; i<=x ; i++)
				{
					entrada = JOptionPane.showInputDialog("Entre com o "+i+ "º número:");	
					numero = Float.parseFloat(entrada);
					
					soma += numero;
				}
				
				med = soma / x;
				JOptionPane.showMessageDialog(null,"A média dos "+x+" números foi "+med);
		             
	       break;
	       
	       case 3:
	       break;
	       
	     }  		
	
	
	} while(opcao!=3);
         System.exit(0);

}

}