algoritmosVII

Salve, salve pessoas!
Este post tratará das matrizes.
Matrizes são tipos especiais de vetores, pois possuem mais de uma dimensão.



Elas nos auxiliam a resolver problemas mais complexos e. também, coisas como cálculos ou problemas que envolvem o plano cartesiano.


Vamos ao que interessa.
Como dissemos, uma matriz pode ter mais de um dimensão, ou seja, ela pode ser bidimensional (ter duas dimensões: altura e largura), tridimensional (três dimensões: altura, largura e profundidade) e pode ser polidimensional (ter mais de três dimensões).

Matriz Bidimensional

Matriz tridimensional

As figuras acima ilustram uma matriz bidimensional e uma tridimensional.
Como sera a representação de uma matriz bidimensional no visualg?
A sintaxe do visualg prevê que um vetor seja definido assim

vet : vetor [1..<MAX>] de <TIPO>

Isso, por que, o vetor tem apenas uma dimensão.
Para a matriz, que possui mais de uma dimensão, é necessáriio indicar cada um dos tamanhos relativo a cada dimensão. Estas grandezas são ilustradas dentro dos colchetes, sendo que cada dimensão é representada e separada das demais por uma vírgula.
Veja a demonstração da sintaxe:

mat : vetor [1..<MAX>, 1<MAX>] de <TIPO>

Como pode-se perceber, a variável mat é um vetor, porém, este vetor possui duas dimensões, definidas a partir da posição 1 até o limite <MAX>. Não necessariamente uma matriz precisa ter a mesma quantidade de espaços em todas as suas dimensões.

Matriz 2 x 3
Matriz 3 x 4

As imagens acima demonstram duas matrizes, a primeira é uma de ordem 2 x 3 e a outra de ordem 3 x 4. Note que, assim como no plano cartesiano, informamos primeiro a quantidade relativa ao eixo X (as linhas) e após, a quantidade referente ao eixo Y (as colunas). Ou seja, quando falamos que uma matriz tem ordem 5 x 10, estamos dizendo que ela contém 5 linhas e 10 colunas, totalizando 50 posições.

Vamos lá.
Vamos construir uma matriz de ordem 3 x 3 e solicitar ao usuário que forneça os valores que irão preencher as casas presentes na primeira linha. As demais serão preenchidas de acordo com as equações.

  • Linha 2: <VALOR> * 3
  • Linha 3: <VALOR> - 5


Note que é possível referenciar as posições de uma matriz especificando uma linha ou uma coluna, como consta na primeira estrutura de repetição para, quando é feita a leitura do valor informado pelo usuário.

Diagonais

As matrizes quadradas (aquelas onde o número de linhas é igual ao de colunas) possuem diagonais que são importantes em processos de cálculos utilizando matrizes. Existem duas diagonais em cada matriz quadrada, a principal e a secundária.
A diagonal principal é definida pela coincidência dos valores que representam a linha e a coluna. Vejamos:


1 2 3 4 5
1  1  2  3  4  5
2  1  2  3  4  5
3  1  2  3  4  5
4  1  2  3  4  5
5  1  2  3  4  5

Veja que as posições ressaltadas (em vermelho) estão onde o valor da posição da linha e da coluna são iguais. Estes elementos são os que representam a diagonal principal da matriz.
Vejamos como fazer para identificar os valores contidos na diagonal principal em uma matriz no visualg:



Veja como os valores presentes na diagonal principal são identificados. Note que a saída dos mesmos é executada quando o valor correspondente ao índice que percorre as linhas é exatamente igual ao valor do índice que percorre as colunas (i = j)
A segunda diagonal é a diagonal secundária. No visualg, como as posições de um vetor/matriz são contadas a partir da posição 1, determina-se os elementos da diagonal secundária quando o valor da soma do índice das linhas com o índice das colunas acrescido é igual ao tamanho da matriz acrescido de 1.
Vejamos:



Basta acrescentar o trecho de código acima e conseguimos obter da matriz anterior as duas diagonais, conforme a segunda imagem demonstra. Como o algoritmo define como valor para cada elemento da matriz a soma entre dos valores dos índices i e j, é lógico afirmar que os elementos com valor 11 são os elementos da diagonal secundária.
Por hoje é isto, espero que estes estudos tragam algumas facilidades para o seu aprendizado.
Até mais.

Nenhum comentário:

Postar um comentário