Matriz

3 respostas
T

como faço para avancar 5 espaços num txt numa matriz [5][5] ???

3 Respostas

Rafael_Mesquita_Mour
tiparu:
como faço para avancar 5 espaços num txt numa matriz [5][5] ???
Não sei se entendi bem a sua dúvida, mas você quer correr uma matriz de 5 em 5? Se for isso acho primeiro você terá que correr a primeira linha, 5 colunas por vez e depois descer uma linha, correndo novamente 5 colunas por vez. Acho que o código abaixo te ajudará:
public class Run5{
	public static void main(String [] args){
		// Aqui estou criando e inicializando a matriz multidimensional
		int [][] myArray = new int[][]{
		{1,2,3,4,5,4,3,2,10,2,3,4,15,4,3,2,20},
		{5,4,3,2,10,2,3,4,15,4,3,2,20,2,3,4,25},
		{1,2,3,4,15,4,3,2,20,2,3,4,25,4,3,2,30},
		{5,4,3,2,20,2,3,4,25,4,3,2,30,2,3,4,35},
		{1,2,3,4,25,4,3,2,30,2,3,4,35,4,3,2,40}
		};
		
		// Aqui estou percorrendo, linha por linha e atribuindo a linha
		// a uma nova matriz unidimensional chamada myLine.
		for(int i = 0; i < myArray.length; i++){
			int [] myLine = myArray[i];
			
			// Aqui estou percorrendo cada coluna da matriz unidimensional
			for(int x = 0; x < myLine.length; x = x + 4){
				
				// Aqui estou exibindo cada elemento de cada linha da matriz
				System.out.print(myArray[i][x] + " ");
			}
			
			// Aqui estou apenas pulando uma linha para que o resultado fique bem visível
			System.out.println();
		}
	}
}

Espero ter ajudado ^^

T

isso mesmo, só mais uma pequena duvida:

como fazia para colocar por exemplo :

1 5 10 15 20 (10 espaços);

5 10 15 20 25
1 15 20 25 30
5 20 25 30 35 (5 espaços);
1 25 30 35 40

e mais uma, se isto estivesse dentro de um ciclo sempre a correr e fizesse 2 vezes:

A 1 5 10 15 20
B 10 15 20 25
C1 15 20 25 30
D 5 20 25 30 35
E 1 25 30 35 40

A 1 5 10 15 20
B 5 10 15 20 25
C 1 15 20 25 30
D 5 20 25 30 35
E 1 25 30 35 40

(sempre com estas letras colocadas no inicio e por ordem)…

grato XD

Rafael_Mesquita_Mour
tiparu:
isso mesmo, só mais uma pequena duvida:

como fazia para colocar por exemplo :

1 5 10 15 20 (10 espaços);
5 10 15 20 25
1 15 20 25 30
5 20 25 30 35 (5 espaços);
1 25 30 35 40

Sobre a dúvida acima, acredito que você precisará fazer uma estrutura de decisão, por exemplo:

"Se a linha do meu array for igual à 0, então correr de 10 em 10 colunas. Senão, se a linha do meu array for igual à 3, então devo correr de 5 em 5 colunas. Caso contrário devo correr normalmente."

Exemplificando:

for(int i = 0; i < myArray.length; i++){  
            int [] myLine = myArray[i];             
            if(i == 0){
            	for(int x = 0; x < myLine.length; x = x + 10){
            		System.out.print(myArray[i][x] + " ");
            	}
            } else if (i == 3){
            	for(int x = 0; x < myLine.length; x = x + 5){
            		System.out.print(myArray[i][x] + " ");
            	}
            } else {
            	for(int x = 0; x < myLine.length; x = x + 4){  
                    System.out.print(myArray[i][x] + " ");  
                }
            }            
            System.out.println();  
        }
tiparu:
e mais uma, se isto estivesse dentro de um ciclo sempre a correr e fizesse 2 vezes:

A 1 5 10 15 20
B 10 15 20 25
C1 15 20 25 30
D 5 20 25 30 35
E 1 25 30 35 40

A 1 5 10 15 20
B 5 10 15 20 25
C 1 15 20 25 30
D 5 20 25 30 35
E 1 25 30 35 40

(sempre com estas letras colocadas no inicio e por ordem)...

grato XD

Para fazer o que você quer acima, basta criar um outro laço por fora dos demais laços, com a quantidade de vezes que você deseja que o array seja exibido. E para exibir a letra que você quer, basta inserir o valor ASCII da letra com uma instrução de impressão. Segue abaixo o código que você precisa:

// Aqui é quantidade de vezes que o array será exibido, no caso 2.
		for (int z = 0; z < 2; z++) {
			for (int i = 0; i < myArray.length; i++) {
				int[] myLine = myArray[i];
				
				// Aqui é a impressão da letra conforme a tabela ASCII
				System.out.print((char) (65 + i) + " ");
				
				// Os demais códigos são iguais
				for (int x = 0; x < myLine.length; x = x + 4) {
					System.out.print(myArray[i][x] + " ");
				}
				System.out.println();
			}
			System.out.println();
		}

Espero ter ajudado ^^

Criado 17 de abril de 2011
Ultima resposta 18 de abr. de 2011
Respostas 3
Participantes 2