Array Multidimensionais

3 respostas
macintosh

Caros, Bom Dia!

Eu sou iniciante em java, estou aprendendo vetores e matrizes, porém, eu comecei a montar essa matriz multidimencional e me perdi no meio do caminho, não sei como eu faço para inserir os nomes dos alunos nas linhas e as notas nas colunas, e também eu me atrapalhei na hora de definir quantas linha e colunas serão geradas após eu saber quantos registros eu quero inserir :?:.

Alguém pode me dar uma força nessa lógica?

Grato pela atenção!

import javax.swing.JOptionPane;

public class Array_Mult {

	public static void main(String[] args) {
		
		int quantidade = 0;
		int linha = 0;
		int coluna = 0;
		
		quantidade = Integer.parseInt(JOptionPane.showInputDialog("Quantos registros você deseja inserir?"));
		
		linha = quantidade;
		coluna = linha;
		
		String[][] lista = new String[linha][coluna];
		
		 for(int x = 1; x < quantidade; x++){
			JOptionPane.showInputDialog("Digite o nome do aluno: " + x);
			   for(int y = 1; y < quantidade; y++){
				 JOptionPane.showInputDialog("Digite a nota " + y + " do aluno: " + y);
			//Eu me perdi nessa parte	     
			   }
		  }
		
		 for(int i = 1; i < lista.length; i++){
	                        System.out.println("O Aluno " + i + "Fechou o semestre com as " +
	       		"seguintes notas: "); 
			        for(int j = 1; j < lista.length; i++){
				  System.out.println("Nota " + i + lista[linha][coluna]);
                                                    //Me perdi aqui tqmbém.
			  }
		 }
		
	}

}

3 Respostas

JoaoBluSCBR
public class Array_Mult {   
  
    public static void main(String[] args) {   
           
        int linha = 0;   
        int coluna = 0;   
                
        linha = Integer.parseInt(JOptionPane.showInputDialog("Quantos registros você deseja inserir?"));   
           
        coluna = Integer.parseInt(JOptionPane.showInputDialog("Quantas notas você deseja inserir para cada aluno?"));   
           
        //Esse não eh exatamente um array multi, é um array bi-dimensional
        /*Mas tudo bem, vamos usar a primeira linha coluna para registrar 
         * o nome do aluno e as demais para inserir as notas, por isso
         * coloquei o +1 na coluna de inicializacao abaixo
         */
        String[][] lista = new String[linha][coluna+1];   
           
         for(int x = 0; x < linha; x++){   
            String nome = JOptionPane.showInputDialog("Digite o nome do aluno: " + x);
            lista[x][0] = nome;
            for(int y = 1; y<=coluna; y++){
                String nota = JOptionPane.showInputDialog("Digite a nota " + y + " do aluno: " + nome);   
                //Eu me perdi nessa parte           
                lista[x][y] = nota;                
            }
          }   
           
         for(int i = 0; i < lista.length; i++){                       
             System.out.println("O Aluno " + lista[i][0] + " fechou o semestre com as seguintes notas: ");
             for(int j = 1; j < lista[0].length; j++){
                 System.out.println("Nota " + j + " - " + lista[i][j]);                                                       
              }   
         }              
    }    
}
JoaoBluSCBR

Quando voce cria um array do tipo lista[3][5]

O que vc esta criando sao apenas variaveis que respondem a indices.

Entao vc tem como registrar as seguintes informacoes:

lista[0][0] = nome
lista[0][1] = nota1
lista[0][2] = nota2
lista[0][3] = nota3
lista[0][4] = nota4

lista[1][0] = nome
lista[1][1] = nota1
lista[1][2] = nota2
lista[1][3] = nota3
lista[1][4] = nota4

E assim por diante.

macintosh

Fala JoaoBluSCBR, cara muito obrigado pela atenção, o seu exemplo sanou todas as minhas dúvidas, vou seguir essa lógica nas minhas práticas.

Abraço!

Criado 11 de setembro de 2011
Ultima resposta 12 de set. de 2011
Respostas 3
Participantes 2