Matriz e Vetor

6 respostas
geisebel

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:
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");
	}
}
}

6 Respostas

fernandopaiva

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

geisebel

Ok!
Brigadão!
Bom final de semana

ViniGodoy
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:

//tente usar arraylist
List&lt;Double&gt; alunos = new ArrayList&lt;Double&gt;();
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);
}
ViniGodoy

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 &lt; QuantidadeDeAlunos; i++) { System.out.print(&quot;Nome do Aluno:&quot;); Alunos[i]= br.readLine(); double soma = 0; for (int j = 0; i &lt; QuantidadeDeNotas; j++) { System.out.print(&quot;Nota &quot; + (j+1) + &quot;:&quot;); 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

geisebel

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.

ViniGodoy

Beleza. :slight_smile:

Criado 3 de setembro de 2011
Ultima resposta 4 de set. de 2011
Respostas 6
Participantes 3