GeraProva GeraProva Provas com IA para professores do Brasil
Computação1ª sérieBNCC EM13CO03Média⏱ medio

Ao implementar um algoritmo que percorre uma matriz de registros 'dados' armazenada em memória row-major, qual…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO03

Identificar o comportamento dos algoritmos no que diz respeito ao consumo de recursos como tempo de execução, espaço de memória e energia, entre outros.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Ao implementar um algoritmo que percorre uma matriz de registros 'dados' armazenada em memória row-major, qual ordem de iteração tipicamente melhora o desempenho do cache?

  1. A) Usar laço externo sobre linhas e laço interno sobre colunas (percorrer linha a linha).
  2. B) Usar um laço duplo percorrendo todos os elementos aleatoriamente.
  3. C) Percorrer a matriz em ordem reversa, da última linha para a primeira.
  4. D) Iterar colunas primeiro, depois linhas, para melhor desempenho.
  5. E) Utilizar acesso sempre sequencial à matriz completa antes de qualquer laço.

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. Em memória row-major (ordem por linhas), os elementos de uma mesma linha ficam armazenados em posições de memória contíguas, uma após a outra, e a linha seguinte começa logo depois da anterior.
  2. Quando o laço externo percorre as linhas e o interno percorre as colunas, os acessos seguem exatamente a ordem em que os dados estão gravados na memória. Isso aproveita o princípio da localidade espacial: ao carregar um bloco (linha de cache) da memória, os elementos vizinhos que serão usados logo em seguida já estão no cache, reduzindo falhas de cache.
  3. Resolvendo por conta própria, a alternativa correta é a A, e ela coincide com o gabarito oficial.
  4. A alternativa B está errada, pois acessos aleatórios destroem a localidade espacial e aumentam as falhas de cache.
  5. A alternativa C está errada, pois a ordem reversa ainda percorre a memória de forma contínua, mas não é a ordem típica que melhora o cache; o que importa é a sequência ser a de armazenamento, e a reversa não é a ordem natural de row-major.
  6. A alternativa D está errada, pois percorrer colunas primeiro, em row-major, salta entre linhas e causa muitos acessos não contíguos, piorando o desempenho.
  7. A alternativa E está errada, pois não existe um 'acesso sequencial à matriz completa antes de qualquer laço'; essa frase não descreve um procedimento de iteração válido.

💡 Dica: Considere a ordem de acesso aos elementos da matriz.

Alternativa por alternativa

A Correta

Percorrer elementos na mesma linha consecutivamente usa a localidade espacial do row-major, reduzindo faltas de cache e melhorando desempenho.

B Erradaerro: Conceitual

O aluno acredita que embaralhar os acessos ajuda a distribuir a carga na memória, sem perceber que isso elimina a localidade espacial.

C Erradaerro: Conceitual

O aluno associa a ordem reversa a uma otimização, sem considerar que ela não segue a disposição contígua dos dados em row-major.

D Erradaerro: Conceituala que mais engana

O aluno supõe que a ordem colunas-linhas é mais eficiente por analogia com a leitura de tabelas, sem notar que em row-major as colunas de uma mesma linha estão contíguas.

Por que engana: Escolher a opção que sugere percorrer colunas primeiro, que pode resultar em um desempenho inferior devido ao acesso não sequencial à memória.

E Erradaerro: Interpretação

O aluno lê a palavra 'sequencial' como se bastasse ter acesso sequencial em algum momento, sem entender que o padrão de iteração dos laços é o que determina a localidade.

Raio-X da questão

Dificuldade Média
Bloom Aplicar
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

ordem de iteração matriz

📌 Objetivo

avaliacao

🧱 Pré-requisitos

ordem de iteração matriz

📚 Reveja

Revisar conceitos de acesso a matrizes em memória row-major.

⚠️ Erro mais comum

Escolher a opção que sugere percorrer colunas primeiro, que pode resultar em um desempenho inferior devido ao acesso não sequencial à memória.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.