Saudações queridos alunos e leitores!
Neste post vou falar sobre Vetores e Matrizes, e mostrar que a lógica para a criação destes, além de não é serem complicada, são similares.
Uma coisa básica que se pode ter em mente é que, para ver como sua lógica está, não importa quem está olhando e nem o trabalho que você terá e sim o quão seguro você estará com a transcrição de sua lógica, seja por desenho ou qualquer outra forma que lhe deixe mais à vontade para a construção.
Eu utilizo duas formas de visualização para a construção de vetores e matrizes.
A primeira delas, é imaginar o desenho que represente, tanto para vetor quanto matriz, e depois o teste da funcionalidade.
Mas como testar uma matriz de 100 x 200, ou até 1.000 x 5.000, por exemplo? Muito simples! Basta reduzir para duas linhas, pois com esta redução dá para saber se a linha esta sendo “feita”, e se está pulando para a próxima no momento certo. Também chegou a pensar em um relógio cujo contador de minutos seria equivalente à construção da linha que ao finalizar o seu ciclo, zera, acrescenta o contador da hora que equivale a coluna, e começa novamente.
O vetor e matriz são abordados juntos, porque o vetor é como se fosse uma matriz, mas com uma linha ou uma coluna, por exemplo:
Como pode ser desenhada uma matriz de 1 x 5?
|
0,0 |
0,1 |
0,2 |
0,3 |
0,4 |
Como você pode ver, a matriz de 1 x 5 equivale à um vetor de tamanho 5.
Similarmente podemos considerar um vetor, uma matriz de 5 x 1:
| 0,0 |
| 1,0 |
| 2,0 |
| 3,0 |
| 4,0 |
Em relação ao algoritmo necessário para a construção de um vetor, como não terei uma segunda linha ou segunda coluna (como mostrado à cima), não preciso ter um ciclo interno para concluir a linha/coluna para criar uma próxima, é como se eu tivesse apenas as horas sem os minutos, então não preciso que o minuto complete seu ciclo para acrescentar a hora.
Então vamos à prática:
Para demonstrar, irei construir um vetor de cinco posições e atribuir o valor 10 pra todos elas:
1 2 3 4 5 6 | final int tamanho = 5; int vet [] = new int [tamanho]; for (int i = 0; i < vet.length; i++) { vet [i] = 10; } |
A palavra “final” determina a variável que não pode ser modificado no código.
Talvez surja a dúvida do porque de não utilizar a variável fixa “tamanho” pra indicar o limite do “for”. Imagine que você tenha 5 vetores em que dois sejam de mesmo tamanho, e os outros três não. Eu teria que sair determinando valores sempre que quisesse modificar.
E por que não utilizar um número? Imagine 30 vetores…
Melhor utilizar a função que pega o tamanho do vetor pra mim! ![]()
E por que de “i < tamanho do vetor” e não “<=”?
Porque para a definição do tamanho do vetor, o zero não é contado, enquanto que para o índice do vetor, sim.
Se o vetor fosse de tamanho 5.000?
Basta setar a variável “tamanho”!
Agora uma matriz 2 x 3:
1 2 3 4 5 6 7 8 9 | final int linha = 2; final int coluna = 3; int matriz [][] = new int [linha] [coluna]; for (int i = 0; i < linha ; i++) { for (int j = 0; j < coluna ; j++){ matriz [i][j] = 10; } } |
Temos o primeiro “for”, que trata da flutuação entre as linhas, enquanto o segundo, as colunas. Analizando como o meu exemplo do relógio, é como se o primeiro fosse a hora e o segundo, o minuto. O contador da “hora” só vai mudar depois que o “minuto” terminar o seu ciclo.
É isso…
Abraço e até o próx. post!!






























