Módulo 4 - Matrizes: tabelas, grades e tabuleiros
A matriz: uma lista de listas
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Entender a matriz como uma lista de listas (linhas empilhadas).
- Acessar um valor da matriz pelas coordenadas linha e coluna.
- Diferenciar a lista de uma dimensão da matriz de duas dimensões.
- Ler o valor de uma célula a partir de dois índices.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: A matriz: uma lista de listas.
Os objetivos desta aula. Entender a matriz como uma lista de listas (linhas empilhadas). Acessar um valor da matriz pelas coordenadas linha e coluna. Diferenciar a lista de uma dimensão da matriz de duas dimensões. Ler o valor de uma célula a partir de dois índices.
Veja o essencial, parte por parte.
Quando a fila não basta. A matriz guarda dados em duas dimensões: linhas e colunas, como uma tabela.
Duas coordenadas para cada valor. Na lista, um índice bastava: nomes[0] é o primeiro nome.
Linha e coluna não se invertem impunemente. matriz[coluna][linha] no lugar de matriz[linha][coluna] devolve a célula errada, muitas vezes sem erro visível.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Quando a fila não basta
A lista do curso básico é uma fila: os nomes da chamada, os preços do carrinho, uma coisa atrás da outra. Ela resolve muito, mas empaca quando o dado tem duas dimensões. Pense num boletim: cada aluno tem quatro notas, uma por bimestre. Você poderia jogar tudo numa lista gigante, mas como saber onde termina um aluno e começa o outro? E num tabuleiro de jogo da velha, com três linhas e três colunas, uma lista de nove posições esconde a estrutura de grade que dá sentido ao jogo. Para esses casos, a informação pede uma tabela de verdade, e a estrutura que representa uma tabela é a matriz.
A sacada da matriz é simples e elegante: em vez de uma lista de valores, uma lista de listas. Cada linha da tabela vira uma lista pequena, e a matriz é a lista que guarda essas linhas. Assim, o boletim vira uma lista em que cada item é a lista de notas de um aluno; o tabuleiro vira uma lista em que cada item é uma linha de três casas. A grade que você enxerga no papel existe de verdade dentro do programa, com as linhas empilhadas uma sobre a outra. E, como toda lista, cada nível tem posições numeradas, o que leva às coordenadas.
Duas coordenadas para cada valor
Na lista, um índice bastava: nomes[0] é o primeiro nome. Na matriz, você precisa de dois, porque o valor mora num cruzamento de linha e coluna. A convenção universal é linha primeiro, coluna depois: matriz[linha][coluna]. É a mesma lógica de achar a cadeira no cinema pela fila e pelo número, ou de dar um xeque-mate dizendo a casa pela coluna e pela linha. O primeiro colchete escolhe qual das listas internas (qual linha), e o segundo escolhe a posição dentro dela (qual coluna). Como nas listas do curso básico, a contagem nas linguagens reais começa em zero, então a primeira linha é a linha 0 e a primeira coluna é a coluna 0.
boletim <- [
[8, 7, 9, 6], // aluno 0
[5, 6, 4, 7], // aluno 1
[10, 9, 8, 9] // aluno 2
]
// nota do aluno 1 no 3º bimestre (coluna 2):
escreva(boletim[1][2]) // mostra 4
// nota do aluno 2 no 1º bimestre (coluna 0):
escreva(boletim[2][0]) // mostra 10Cada linha é a lista de notas de um aluno. boletim[1][2] é a linha 1 (segundo aluno), coluna 2 (terceiro bimestre).
🎮 Jogo da aula
Leia a célula certa
Use as coordenadas linha e coluna (começando em 0) para descobrir o valor que o programa mostra.
grade <- [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
escreva(grade[2][1])Linha e coluna não se invertem impunemente
O erro mais comum com matrizes é trocar a ordem das coordenadas. Escrever matriz[coluna][linha] quando queria matriz[linha][coluna] costuma não gerar erro nenhum, porque o cruzamento invertido ainda é uma célula válida da grade, só que a errada. Num boletim 3 por 4 (três alunos, quatro notas), pedir a nota[3][1] em vez de nota[1][3] estoura os limites e quebra, mas num quadrado, como um tabuleiro 3 por 3, o programa devolve um valor plausível e errado, o pior tipo de bug. A regra mental que não falha: primeiro em qual fileira, depois em qual posição da fileira. Linha antes, coluna depois, sempre.
Teste rápido
Por que uma matriz é descrita como uma lista de listas?
Perguntas frequentes
- Matriz e lista são a mesma coisa?
- Não. A lista tem uma dimensão (uma fila de valores, um índice) e a matriz tem duas (linhas e colunas, dois índices). A matriz é construída a partir de listas (é uma lista de listas), mas representa uma tabela, algo que a lista simples não faz bem. Cada uma serve a um tipo de dado.
- Por que a contagem começa em zero?
- É a convenção da maioria das linguagens, herdada das listas: a primeira posição é a de índice 0. Então numa matriz a primeira linha é a 0 e a primeira coluna é a 0. Pode parecer estranho no começo, mas vira automático com a prática, e é bom acostumar desde o pseudocódigo.
- A ordem é sempre linha antes de coluna?
- Sim, é a convenção padrão: matriz[linha][coluna]. Assim como cadeira de cinema é fila e número, e endereço de célula é linha e coluna. Trocar a ordem devolve a célula errada e é fonte de bug, principalmente em matrizes quadradas, onde o valor invertido existe e não dá erro.
- Todas as linhas precisam ter o mesmo tamanho?
- Nas matrizes retangulares clássicas, sim: toda linha tem o mesmo número de colunas, formando uma grade perfeita. Algumas linguagens permitem linhas de tamanhos diferentes (as chamadas listas irregulares), mas para tabelas, tabuleiros e planilhas o normal e o mais previsível é manter todas as linhas iguais.
- Dá para ter matriz de três dimensões?
- Dá: uma lista de matrizes vira uma estrutura 3D, útil para coisas como um cubo de dados ou vários tabuleiros. O acesso ganha um terceiro índice. Na prática do dia a dia, duas dimensões cobrem a maioria dos casos; três ou mais aparecem em áreas específicas, como gráficos e ciência de dados.
- Como isso aparece nas linguagens reais?
- Em Python, a forma mais comum é uma lista de listas, exatamente como no pseudocódigo. Outras linguagens têm arrays bidimensionais nativos. Bibliotecas especializadas oferecem matrizes otimizadas para cálculo. A ideia central de linhas, colunas e dois índices é a mesma em todas.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.