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.
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);
}