Em um algoritmo que armazena uma matriz de registros 'tab' em um vetor linear em row-major com n colunas, qual…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Criar soluções de problemas para os quais seja adequado o uso de listas para descrever suas informações e automatizá-las usando uma linguagem de programação, empregando ou não a recursão como uma técnica de resolver o problema.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em um algoritmo que armazena uma matriz de registros 'tab' em um vetor linear em row-major com n colunas, qual fórmula calcula o índice linear do elemento tab[i][j]?
- A) Índice linear = j * n + i
- B) Índice linear = i - j
- C) Índice linear = i * n + j
- D) Índice linear = n * n + (i + j)
- E) Índice linear = i + j
✅ Resposta correta: alternativa C
Resolução passo a passo
- Em row-major (ordem por linhas), todos os elementos da linha 0 vêm primeiro, depois todos os da linha 1, e assim por diante. Cada linha tem n elementos, pois a matriz tem n colunas.
- Para chegar à linha i (começando em 0), precisamos pular i linhas completas, o que equivale a i * n elementos.
- Dentro da linha i, a coluna j (também começando em 0) está deslocada de j posições a partir do início da linha.
- Somando os dois deslocamentos, obtemos o índice linear = i * n + j, que é a alternativa C, coincidindo com o gabarito oficial.
- A alternativa A está errada, pois troca os papéis de linha e coluna (usa j * n, que é a fórmula de column-major com i como coluna). A alternativa B está errada, pois subtrai em vez de considerar o deslocamento por linhas e colunas. A alternativa D está errada, pois multiplica n por n, o que não corresponde ao tamanho de uma linha. A alternativa E está errada, pois soma i e j sem considerar que cada linha ocupa n posições.
💡 Dica: Considere a estrutura da matriz e a fórmula de acesso.
Alternativa por alternativa
O aluno inverte os papéis de linha e coluna, aplicando a fórmula de column-major (percorrer por colunas) em vez de row-major, e multiplica j por n como se n fosse o número de linhas.
Por que engana: Confundir a ordem de multiplicação e adição na fórmula do índice linear, resultando em um cálculo incorreto.
O aluno acredita que o índice linear pode ser obtido por uma subtração simples entre linha e coluna, sem entender que o mapeamento depende do tamanho de cada linha.
No armazenamento row-major, cada linha contém n elementos; para chegar à linha i somam-se i blocos de n, depois avança-se j posições dentro da linha, resultando em i*n + j.
O aluno confunde o número de colunas com o número total de elementos da matriz, multiplicando n por n, e soma a posição j sem entender que o deslocamento por linha usa apenas n.
O aluno supõe que linha e coluna podem ser somadas diretamente para obter a posição, ignorando que cada linha contém n elementos e, portanto, o deslocamento de linha deve ser multiplicado por n.
Raio-X da questão
índice linear de matriz
avaliacao
indexação de matrizes · vetores e matrizes
Revisar a representação de matrizes em memória e o cálculo de índices.
Confundir a ordem de multiplicação e adição na fórmula do índice linear, resultando em um cálculo incorreto.
ciencia_tecnologia
tomada_decisao
abstrato
Questões parecidas com resolução
- Dada uma matriz de registros M com R linhas e C colunas (indexação base 0), qual fórmula calcula o índice linear do…
- Qual é a complexidade temporal para acessar diretamente um elemento matriz[i][j] em um algoritmo que usa índices válidos…
- Em um algoritmo que percorre uma matriz de registros 'matrizDados' usando variáveis índice i e j para acessar elementos…
- Assinale a alternativa que representa uma maneira de acessar um elemento de uma matriz em programação.
- Ao implementar um algoritmo que percorre uma matriz de registros 'dados' armazenada em memória row-major, qual ordem de…
- Ao escrever um algoritmo que soma todos os valores em uma matriz 5x5 de inteiros, qual estrutura de controle é mais…
Todas as questões de Programação - Programação com listas e recursão
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
