Estrutura de Dados - Matriz
1 - O que é uma matriz
Uma matriz é uma variável composta homogênea e multidimensional. Todos elementos de uma matriz são de mesmo tipo, com o mesmo identificador (mesmo nome), e alocadas sequencialmente na memória. Uma vez que as variáveis têm o mesmo nome, o que as distingue são índices que referenciam sua localização dentro da estrutura. A diferença da matriz para o vetor é que o vetor possui apenas uma dimensão, e a matriz pode possuir várias dimensões, porém o mais comum são duas dimensões como ocorre nas planilhas eletrônicas utilizadas em aplicativos de escritórios.
→ Características de uma matriz
- É considerada uma estrutura de dados composta multidimensional;
- Cada valor ocupa uma posição específica dentro da matriz, chamada de índice ou posição, igual no vetor, porém com índices conforme a dimensão.
- Como se fosse uma planilha eletrônica com linhas e colunas por exemplo.
→ Por que matriz é uma estrutura de dados?
- Porque organiza e armazena um conjunto de informações relacionadas em duas ou mais dimensões, de forma ordenada.
- Permite acesso direto a qualquer elemento, utilizando índices múltiplos (linha, coluna, etc.).
- Representa naturalmente dados tabulares, como tabelas e planilhas, e também serve de base para estruturas e aplicações mais complexas (ex.: gráficos, imagens, algoritmos matemáticos).
→ Diferença entre variável simples, vetor e matriz
Estrutura | Dimensão | Tipo de dado armazenado | Identificação | Exemplo prático | Exemplo de acesso |
---|---|---|---|---|---|
Variável simples | 0 D | Apenas 1 valor do mesmo tipo | Nome único | A nota de um aluno | nota |
Vetor | 1 D | Vários valores do mesmo tipo | Mesmo nome + 1 índice | Notas de um aluno | nota[3] (3ª posição) |
Matriz | 2D (ou mais) | Vários valores do mesmo tipo | Mesmo nome + 2 ou mais índices | Tabela de Notas de vários alunos | nota[2,4] (2º aluno, Nota 4) |
Acessibilidade Visual
A tabela apresenta três colunas, sendo uma com informações referentes à variável simples, outra com o vetor e a terceira com a matriz. Esta serve para realizar um comparativo entre essas estruturas.
A variável simples armazena apenas um valor por vez, enquanto o vetor armazena vários valores do mesmo tipo em uma única dimensão. Já a matriz armazena vários valores do mesmo tipo em duas ou mais dimensões, geralmente representados em forma de tabela.
Exemplo:
- Variável simples:
idade: inteiro
→ significa que a variável armazena apenas uma idade por vez.
- Vetor:
idades: vetor[1..5] de inteiro
→ significa que a variávelidades
, do tipo inteiro, terá cinco posições, ou seja, poderá armazenar cinco valores de idades.
- Matriz:
notas: matriz[1..5, 1..4] de real
→ significa que a variávelnotas
, do tipo real, terá duas dimensões: 5 linhas e 4 colunas, podendo armazenar, por exemplo, as notas de 5 alunos em 4 disciplinas.
Enquanto a variável simples não utiliza índices, o vetor precisa de um índice para acessar cada posição, como em idades[3]
, que representa a terceira idade armazenada. Já a matriz precisa de dois índices (ou mais, dependendo da dimensão) para identificar um valor específico, como em notas[2,4]
, que representa a nota do segundo aluno na quarta disciplina.
→ Exemplos comparativos das diferenças entre as estruturas simples e compostas
var
nota: real // variável simples
notas: vetor[1..4] de real // vetor
notas: matriz[1..3, 1..4] de real
3 - Declaração de uma matriz
➜ Sintaxe em Portugol / VisualG
Para declarar uma matriz, é necessário:
- Dar um nome à matriz.
- Definir os intervalos de posições (índice inicial e final) para cada dimensão.
- Informar o tipo de dados que a matriz vai armazenar.
Exemplo de declaração:
var
notas: matriz[1..3, 1..4] de real
Neste exemplo:
- notas é uma matriz de 3 linhas com 4 colunas, que guarda números reais conforme suas posições/dimensões.
4 - Acesso aos elementos
→ Índice e posições
- Cada valor da matriz é identificado por dois ou mais índices, de acordo com quantidade de dimensões declaradas, conforme já mencionado, o mais comum é duas dimensões.
- Esses índices indicam a posição exata do elemento que está sendo acessado ou modificado.
- No VisualG, o índice normalmente começa em 1, mas depende da declaração.
Exemplo de acesso conforme mencionado acima
notas[1,1] <- 7.5
notas[1,2] <- 8.0
notas[1,3] <- 9.0
notas[1,4] <- 6.0
notas[2,1] <- 6.0
notas[2,2] <- 9.5
notas[2,3] <- 7.0
notas[2,4] <- 4.0
notas[3,1] <- 5.0
notas[3,2] <- 3.0
notas[3,3] <- 3.0
notas[3,4] <- 9.0
Contexto:
notas[2,1]
acessa o segundo aluno em sua primeira nota que seria o valor 6 conforme acima.
Observação:
Para o VisualG não existe posição zero, diferente das linguagens como C ou Python.
5 - Exemplos leitura e escrita em matrizes
Para preencher ou exibir os valores de uma matriz, é muito comum utilizarmos um laço de repetição, igual no vetor, porém é necessário o laço externo (para i
) que irá controlar as linhas, e o laço interno (para j
) para controlar as colunas.
Exemplo — Ler valores 4 notas de 3 alunos e apresentar na tela
Algoritmo "matriz"
// Disciplina : [Lógica de Programação]
// Professor : Mauro Borges França
// Descrição : Algoritmo para apresentar os conceitos de vetor
// Data atual : 20/08/2025
Var
// Seção de Declarações das variáveis
notas: vetor[1..3,1..4] de real
i,j: inteiro
Inicio
// Seção de entrada de dados
Para i de 1 ate 3 faca
escreval("Forneça as notas do ",i,"º aluno")
Para j de 1 ate 4 faca
escreva("Digite a ",j,"ª nota: ")
leia(notas[i,j])
Fimpara
Fimpara
// Seção para apresentar os dados
para i de 1 ate 3 faca
escreval("O ",i,"º aluno, tirou as notas")
para j de 1 ate 4 faca
escreval(j,"ª nota:",notas[i,j])
fimpara
fimpara
Fimalgoritmo
Observação: A necessidade de dois laços se dá porque a matriz possui duas dimensões, uma para as linhas e outra para as colunas. O laço externo, que geralmente usa a variável i
, controla as linhas. Já o laço interno, que usa a variável j
, controla as colunas. Essa combinação nos permite percorrer cada célula da matriz, acessando-a pela sua posição [i,j]
.
Área de visualização (tela)
Forneça as notas do 1º aluno
Digite a 1ª nota: 10
Digite a 2ª nota: 9
Digite a 3ª nota: 8
Digite a 4ª nota: 7
Forneça as notas do 2º aluno
Digite a 1ª nota: 7
Digite a 2ª nota: 9
Digite a 3ª nota: 8
Digite a 4ª nota: 7
Forneça as notas do 3º aluno
Digite a 1ª nota: 10
Digite a 2ª nota: 8
Digite a 3ª nota: 9
Digite a 4ª nota: 7
O 1º aluno, tirou as notas
1ª nota: 10
2ª nota: 9
3ª nota: 8
4ª nota: 7
O 2º aluno, tirou as notas
1ª nota: 7
2ª nota: 9
3ª nota: 8
4ª nota: 7
O 3º aluno, tirou as notas
1ª nota: 10
2ª nota: 8
3ª nota: 9
4ª nota: 7
Fim da execução.
Memória
notas[1,1] = 10
notas[1,2] = 9
notas[1,3] = 8
notas[1,4] = 7
notas[2,1] = 7
notas[2,2] = 9
notas[2,3] = 8
notas[2,4] = 7
notas[3,1] = 10
notas[3,2] = 8
notas[3,3] = 9
notas[3,4] = 7
i = 3
j = 4
Copyleft 🄯 2025 - Professor Mauro Borges França.