Olá!
Estou tendo umas duvidas em relação a como por uma média numa maatriz…
vou mandar o problema e o código se alguém poder me esclarecer a dúvida… agradeço.
Problema: Desenvolva um programa java que receba o numero de alunos e o numero de avaliações realizadas,
após isso ler o nome do aluno e suas notas utilizando uma estrutura de vetor para armazenar os
nomes e uma estrutura de matriz para armazenar as notas, onde a ultima coluna da matriz guarde a
média do aluno.
Código:
[code]
import java.io.*;
public class MediaComMatrizVetor {
public static void main (String args[])throws NumberFormatException, IOException{
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
int QuantidadeDeAlunos=0,QuantidadeDeNotas=0;
int cont=0, pos=0, i=0,cont2=0,j;
double nota=0, pos2=0;
System.out.print("Quantidade de alunos:");
QuantidadeDeAlunos=Integer.parseInt(br.readLine());
String Alunos[] = new String [QuantidadeDeAlunos];
System.out.print("Quantidade de notas:");
QuantidadeDeNotas=Integer.parseInt(br.readLine());
double Notas[][]= new double [QuantidadeDeAlunos][QuantidadeDeNotas];
do{
System.out.print("Nome do Aluno:");
Alunos[pos]= br.readLine();
cont++;
pos++;
}while(cont<QuantidadeDeAlunos);
for(QuantidadeDeAlunos=0;QuantidadeDeAlunos<Notas.length;QuantidadeDeAlunos++)
for(QuantidadeDeNotas=0;QuantidadeDeNotas<Notas.length;QuantidadeDeNotas++){
System.out.print("Nota:");
Notas[QuantidadeDeAlunos][QuantidadeDeNotas]=Double.parseDouble(br.readLine());
}
System.out.println("Nome Notas ");
for(QuantidadeDeAlunos=0;QuantidadeDeAlunos<Notas.length;QuantidadeDeAlunos++){
System.out.print(" "+Alunos[i]);
for(QuantidadeDeNotas=0;QuantidadeDeNotas<Notas.length;QuantidadeDeNotas++)
System.out.print(" "+Notas[QuantidadeDeAlunos][QuantidadeDeNotas]);
System.out.print("\n");
}
}
}[/code]
Opa, quando for postar partes de código use as tags. CODE.
//tente usar arraylist
List alunos = new ArrayList();
double nota1, nota2, nota3, nota4, media;
nota1 = 3
nota2 = 2.2
nota3 = 4.1
nota4 = 3.3
media = nota1 + nota2 + nota3 +nota4 / 4;
alunos.add(nota1);
alunos.add(nota2);
alunos.add(nota3);
alunos.add(nota4);
alunos.add(media);
//pegar valores
for(int x = 0; x < alunos.size(); x++){
alunos.get(x);
}
Eh um exemplo simplorio, mas pesquise sobre isso. E lembre-se, quando for postar parte de código, use as tags code.
t+ e boa sorte
Ok!
Brigadão!
Bom final de semana
Essa conta está errada:
media = nota1 + nota2 + nota3 +nota4 / 4;
O correto é:
media = (nota1 + nota2 + nota3 +nota4) / 4;
Também procure declarar variáveis no momento do uso, vai deixar o código mais simples:
[code]//tente usar arraylist
List<Double> alunos = new ArrayList<Double>();
double nota1 = 3;
double nota2 = 2.2;
double nota3 = 4.1;
double nota4 = 3.3;
double media = (nota1 + nota2 + nota3 +nota4) / 4;
alunos.add(nota1);
alunos.add(nota2);
alunos.add(nota3);
alunos.add(nota4);
alunos.add(media);
//pegar valores
for(Double nota : alunos){
System.out.println(nota);
}[/code]
geisebel, estava lendo seu código, e acho que está bem mais próximo do que seu professor pedir do que o Fernando postou.
Só algumas dicas:
a) O vetor deve ser criado com tamanho [QuantidadeDeAlunos][QuantidadeDeNotas+1], assim você terá uma coluna para a média;
b) Para cada aluno, leia e seu nome e na sequência suas notas. Ou será muito difícil fazer a entrada de dados no seu programa.
c) Use um for para ler os alunos. Vai ficar mais simples que o while e você já ganha o contador de brinde, veja:
for (int i = 0; i < QuantidadeDeAlunos; i++) {
System.out.print("Nome do Aluno:");
Alunos[i]= br.readLine();
double soma = 0;
for (int j = 0; i < QuantidadeDeNotas; j++) {
System.out.print("Nota " + (j+1) + ":");
Notas[i][j]=Double.parseDouble(br.readLine());
soma += notas[i][j];
}
notas[i][QuantidadeDeNotas] = soma / QuantidadeDeNotas;
}
d) Cuidado que, no for, você deve ter uma variável para o contador (representando o aluno ou nota atual) e outra deve manter o valor do total. No seu for, você está misturando as duas coisas.
e) Siga as convenções de código do java: nome de variáveis e métodos começam com letra minúscula (quantidadeAlunos), classes com letra maiúscula.
f) Ao postar códigos, siga essas dicas: http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor
Olá Vini.
Bah, muito obrigada.
Ontem estava tentando fazer daquele jeito e não dava certo.
Agora com o que tu me mandoo consegui entender melhor.
To recém no segundo semestre… me acostumando com o java ainda, embora ja ame.
Sempre bom receber dicas.
Brigadão.