1.Escreva um programa para ler o número de alunos existentes em uma turma, ler as notas destes alunos, e calcular a média aritmética destas notas.
[color=blue]Sugestão: faça método para ler os dados e outro para calcular e retornar a média.[/color]
Criei uma classe e 2 métodos dentro dela, no primeiro método dois comandos, quero que execute o primeiro comando no primeiro metodo e o segundo comando do primeiro metodo, seja executado no segundo metodo.. Ficou meio complicado pra entender mais com o programa ficar melhor:
packagequestao6;importjavax.swing.JOptionPane;publicclassMain{publicstaticvoidmain(String[]args){classnome{doublenota02;doublesoma=0;doublemedia;intnotas;intvetor[]=newint[notas];// Entendeu? voiddados(){notas=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o número de Notas: "));nota02=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor das Notas: "));}voidcalculo(){for(inti=0;i!=notas;i++){// Fazer com que a linha 19 seja executada aqui...soma=soma+nota02;}media=soma/notas;JOptionPane.showMessageDialog(null,"A média das notas é: "+media);}}
Alguem sabe como eu chamo a somente a linha 19 pra ser executada na linha 24?
Sugestão: você deve ter uma variável para a quantidade de notas (quantidadeNotas, por exemplo) e criar um vetor com esse número de posições. Depois, em um laço de repedição, leia notas “quantidadeNotas” vezes (captou?) e por fim, divida a soma por quantidadeNotas.
Eu queria fazer com método, conforme foi sugerido pela professor na questão…
Tiago_Transltr
Fiz dessa forma:
packagemedia;importjavax.swing.JOptionPane;publicclassMain{publicstaticvoidmain(String[]args){classnome{doublenota02,soma,media,soma02=0;intnotas;intvetor[]=newint[notas];voiddados(){notas=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o número de Notas: "));}publicdoubledados2(){nota02=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor das Notas: "));returnnota02;}voidcalculo(){for(inti=0;i!=notas;i++){nomenum=newnome();soma+=num.dados2();}media=soma/notas;JOptionPane.showMessageDialog(null,"A média das notas é: "+media);}}nomenum=newnome();num.dados();num.calculo();}}
Pelo enunciado da questão [color=blue](Sugestão: faça método para ler os dados e outro para calcular e retornar a média.
) [/color] vocês acham que está certo? Senão como fazer?
thegoergen
Não sei se consegui entender, mas:
Crie um método que execute o que você executa na linha 19, e chame ele na linha 19 e na 24…
Isso?
thegoergen
Tiago Transltr:
Fiz dessa forma:
packagemedia;importjavax.swing.JOptionPane;publicclassMain{publicstaticvoidmain(String[]args){classnome{doublenota02,soma,media,soma02=0;intnotas;intvetor[]=newint[notas];voiddados(){notas=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o número de Notas: "));}publicdoubledados2(){nota02=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor das Notas: "));returnnota02;}voidcalculo(){for(inti=0;i!=notas;i++){nomenum=newnome();soma+=num.dados2();}media=soma/notas;JOptionPane.showMessageDialog(null,"A média das notas é: "+media);}}nomenum=newnome();num.dados();num.calculo();}}
Pelo enunciado da questão [color=blue](Sugestão: faça método para ler os dados e outro para calcular e retornar a média.
) [/color] vocês acham que está certo? Senão como fazer?
Caraca! Isso compilou? Você criou um método dentro do outro...
Tiago_Transltr
thegoergen:
Não sei se consegui entender, mas:
Crie um método que execute o que você executa na linha 19, e chame ele na linha 19 e na 24…
Isso?
[b]Na verdade é apenas fazer um método para ler os dados e outro pra calcular e exibir a média…
Eu conseguir fazer 2 métodos pros dados e 1 pra calcular e exibir a nota…[/b]
Tiago_Transltr
Não… eu criei 3 métodos dentro de um classe… apenas usei um metodo dentro de um outro método… deu certo sim…
thegoergen
Eu sugiro trabalhar com vetores, fica mais genérico e você não precisa definir o número de notas.
Daí você pode calcular a média assim (vou te dar o método pronto, mas não conta pra ninguém :wink: ) :
Ficou bem menor que o meu... Valew ....só mais uma coisinha: como eu chamo isso? pra ser exibido?
E pra que serve esse "length"?
thegoergen
O length é o tamanho do vetor.
Aquele “notas” tem que ser carregado, com o número de notas que você quiser (não vi especificação sobre isso no problema).
finalintnumeroNotas=3;doublenotas=newdouble[numeroNotas];for(inti=0;i<numeroNotas;i++){notas[i]=Double.parseDoulbe(JOptionPane.showInputDialog(null,"Digite o número de Notas: "));}doublemedia=calcula(notas);
Tiago_Transltr
thegoergen:
O length é o tamanho do vetor.
Aquele “notas” tem que ser carregado, com o número de notas que você quiser (não vi especificação sobre isso no problema).
1 - Ler quantas notas vão ser digitadas
2 - calcular a media dessas notas
3 - Exibir a media
no caso do seu método não tem como ler a quantidade de notas nem ficar pedindo as notas ate atingir a quantidade digitada…