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:
[code]package questao6;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
class nome{
double nota02;
double soma = 0;
double media;
int notas;
int vetor[]= new int [notas]; // Entendeu?
void dados(){
notas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o número de Notas: "));
nota02 = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor das Notas: ")); }
void calculo(){
for(int i = 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);
}
}
[/code]
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.
Algoritmo:
1 - Leia quantas notas são e armazene um uma variável (quantidadeNotas)
2 - Crie um vetor com “quantidadeNotas” posições
3 - Leia notas “quantidadeNotas” vezes (for …) e vá armazenando essas notas no vetor criado.
4 - Crie um variável “soma” e percorra esse vetor, aumentando seu valor a cada iteração (soma += notas[i])
5 - Divida a “soma” por “quantidadeNotas”
6 - Mostre o valor do resultado
Qualquer coisa avisa.
[quote=abelgomes]for dentro do for…
probleminha de logica…
isso ai vai resolver[/quote]
Eu queria fazer com método, conforme foi sugerido pela professor na questão…
Fiz dessa forma:
[code]package media;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
class nome{
double nota02,soma, media, soma02 = 0;
int notas;
int vetor[]= new int [notas];
void dados(){
notas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o número de Notas: "));}
public double dados2(){
nota02 = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor das Notas: "));
return nota02;}
void calculo(){
for(int i = 0; i != notas; i++){
nome num = new nome();
soma += num.dados2();}
media = soma/notas;
JOptionPane.showMessageDialog(null, "A média das notas é: " + media );
}
}
nome num = new nome();
num.dados();
num.calculo();
}
}[/code]
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?
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?
[quote=Tiago Transltr]Fiz dessa forma:
[code]package media;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
class nome{
double nota02,soma, media, soma02 = 0;
int notas;
int vetor[]= new int [notas];
void dados(){
notas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o número de Notas: "));}
public double dados2(){
nota02 = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor das Notas: "));
return nota02;}
void calculo(){
for(int i = 0; i != notas; i++){
nome num = new nome();
soma += num.dados2();}
media = soma/notas;
JOptionPane.showMessageDialog(null, "A média das notas é: " + media );
}
}
nome num = new nome();
num.dados();
num.calculo();
}
}[/code]
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?[/quote]
Caraca! Isso compilou? Você criou um método dentro do outro…
[quote=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?[/quote]
[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]
Não… eu criei 3 métodos dentro de um classe… apenas usei um metodo dentro de um outro método… deu certo sim…
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 ) :
[code]
private double calcula(double[] notas){
double soma = 0;
for(int i =0; i < notas.length; i++{
soma += notas[i]; // Vou somando todas as notas
}
// Faço a média, que é a soma de tudo dividido pelo número de notas;
return soma/notas.length;
}[/code]
Desculpe, não tinha visto teu “}” no finalzinho, tenta identar melhor teu código… hehehehe
[quote=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 ) :
[code]
private double calcula(double[] notas){
double soma = 0;
for(int i =0; i < notas.length; i++{
soma += notas[i]; // Vou somando todas as notas
}
// Faço a média, que é a soma de tudo dividido pelo número de notas;
return soma/notas.length;
}[/code]
[/quote]
Ficou bem menor que o meu… Valew …só mais uma coisinha: como eu chamo isso? pra ser exibido?
E pra que serve esse “length”?
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).
final int numeroNotas = 3;
double notas = new double[numeroNotas];
for(int i =0; i < numeroNotas; i++){
notas[i] = Double.parseDoulbe( JOptionPane.showInputDialog(null,"Digite o número de Notas: ") );
}
double media = calcula(notas);
[quote=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).[/quote]
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…
Add ai meu msn: tiagocoelho2005@hotmail.com
Meu método só fazia o passo 2.
Perceba que você já tem o algoritmo pronto, transforme cada um deles em um método, e no main você chama eles em seqüência.
Você armazena todas as notas em um vetor, e faz a chamada de método dessa maneira:
// supondo que as notas estejam em um vetor v
double media = calcula(v);
E o length se refere ao tamanho do array (quantas posições o dito cujo tem).