Ajuda para melhora um código com Matriz

2 respostas
N

Olá galera sou novo aqui no forum e gostaria de uma ajuda com esse caso.

Estou iniciando meus estudos em programação e escolhi o JAVA para treinar o aprendizado.

Preciso fazer uma matriz de 3 linhas e duas colunas, para receber os valores que serão incluidos no arg []

Eu fiz esse código abaixo porém não pude testa-lo pois no PC do serviço não tem compilador, pelo teste de mesa funcionou, mais acredito que deva existir uma forma mais inteligente de fazer isso.

Para esse exercicio não posso atribuir o valor para a Matriz e nem usar Scanf ou outro comandos mais avançados. :shock:

Será que existe outra forma de fazer isso :?: usando a lógica de programação.

for ( int i=0; i <= 2; i++){
    if  ( i == 0) {
        for ( int j=0; j<=1; j++){	
       		Matriz [i][j]= Integer.parseInt (args [j]);
		System.out.println ( "Matriz" + Matriz [i][j]);
	}
    }else if (i == 1) {
        for ( int j=0; j<=1; j++){	
            	Matriz [i][j]= Integer.parseInt (args [j + 2]);
		System.out.println ( "Matriz" + Matriz [i][j+2]);
	}	
     }else{				
	for ( int j=0; j<=1; j++){	
       		Matriz [i][j]= Integer.parseInt (args [j + 4]);
		System.out.println ( "Matriz" + Matriz [i][j]);			
	}
    }
}

Obrigado
Eduardo Almeida

2 Respostas

M

Ola eduardo, com div e mod as coisas ficam mais faceis… pois vc calcula as posições da tua matriz dinamicamente

public static void main(String[] args) {
		
		int matriz[][] = new int[2][2];
		
		for (int i = 0; i != args.length; i++) {
			int posI = i / matriz.length; 
			int posJ = i % matriz.length;
			matriz[posI][posJ] = Integer.parseInt(args[i]);	
			System.out.println("pos i : " + posI + " pos j : " + posJ + " " + matriz[posI][posJ]);
		}
	}

tenta isso,

se vc mudar o tamanho da matriz não haverá problema, pois o calculo é dinamico.

Abraços.

Fernando.

N

Fernando obrigado pela ajuda.

Vou testar hj a noite e aviso se deu certo amanhã.

Obrigado.

Criado 3 de abril de 2008
Ultima resposta 3 de abr. de 2008
Respostas 2
Participantes 2