GeraProva GeraProva Provas com IA para professores do Brasil
Computação2ª sérieBNCC EM13CO03Difícil⏱ medio

Uma equipe desenvolve uma central meteorológica para regiões remotas. O microcontrolador do equipamento possui…

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

Uma equipe desenvolve uma central meteorológica para regiões remotas. O microcontrolador do equipamento possui apenas 1 kB de RAM, e o programa precisa calcular o fatorial de um número n, com n igual ou menor que 20. Para realizar essa tarefa, a equipe considera cinco abordagens: um algoritmo recursivo, que chama fatorial(n-1) até alcançar o caso-base; uma estrutura de repetição com um acumulador; uma tabela pré-calculada, armazenada em um array com 21 posições; um algoritmo com memoização, que guarda os resultados já calculados em um array; e uma biblioteca que mantém em memória uma lista dos fatoriais necessários. Na análise, deve-se considerar o espaço adicional ocupado durante o cálculo, sem contar o armazenamento do próprio código do programa. Com base no texto, qual abordagem apresenta o menor consumo de memória adicional para calcular o fatorial, sem exceder a RAM disponível?

  1. A) Algoritmo recursivo que chama fatorial(n−1) até alcançar o caso-base.
  2. B) Algoritmo com memoização que guarda resultados em um array.
  3. C) Biblioteca que mantém em memória uma lista dos fatoriais necessários.
  4. D) Estrutura de repetição com um acumulador.
  5. E) Tabela pré-calculada armazenada em um array com 21 posições.

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. O problema pede a abordagem com menor memória adicional durante o cálculo, sem contar o código do programa. Passo 2: Na estrutura de repetição com acumulador, usa-se apenas um número fixo de variáveis (n, o acumulador e o contador), ou seja, o consumo extra é constante, independentemente de n. Passo 3: Na recursão, cada chamada fatorial(n-1) empilha um novo quadro na pilha de execução, e para n = 20 surgem até 20 quadros pendentes, o que cresce com n. Passo 4: A tabela pré-calculada ocupa 21 posições fixas de memória, um gasto constante, mas maior que o de duas ou três variáveis. Passo 5: A memoização exige um array que armazena resultados já calculados, também ocupando espaço fixo e ainda com lógica extra de controle. Passo 6: A biblioteca mantém em memória uma lista de fatoriais necessários, o que tende a ser o maior consumo, pois inclui estruturas e sobrecarga do próprio mecanismo. Passo 7: Assim, a alternativa A é errada, pois a recursão consome memória de pilha que cresce com n; a B é errada, pois o array de memoização ocupa espaço extra; a C é errada, pois a lista da biblioteca carrega sobrecarga adicional; a E é errada, pois a tabela de 21 posições ocupa memória fixa desnecessária. Conclusão: a alternativa D é a correta e coincide com o gabarito oficial.

💡 Dica: Compare o uso de memória de cada método considerando o limite de RAM.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno acredita que a recursão é a forma mais econômica por não criar arrays nem estruturas auxiliares, esquecendo que cada chamada ocupa um quadro na pilha de execução que se acumula até o caso-base.

Por que engana: Confundir que tabelas pré-calculadas sempre usam menos memória que algoritmos iterativos, sem considerar o tamanho da tabela.

B Erradaerro: Conceitual

O aluno supõe que a memoização, por reduzir o número de cálculos, também reduz a memória, sem perceber que o array de resultados ocupa espaço adicional proporcional a n.

C Erradaerro: Senso comum

O aluno acha que uma biblioteca pronta é otimizada e, por isso, usa menos memória, ignorando a sobrecarga de manter uma lista completa de fatoriais em RAM.

D Correta

A estrutura de repetição utiliza apenas um acumulador e variáveis de controle, mantendo consumo de memória adicional constante, independentemente do valor de n. A recursão precisa manter várias chamadas na pilha, enquanto a tabela pré-calculada, a memoização e a lista da biblioteca exigem espaço para armazenar vários resultados.

E Erradaerro: Procedimental

O aluno considera que uma tabela pré-calculada é a solução mais rápida e, portanto, a mais simples, sem comparar que 21 posições fixas ocupam mais memória do que simples variáveis de um laço.

Raio-X da questão

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

consumo de memória em algoritmos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos recursivos e iterativos · estrutura de dados array

📚 Reveja

estude estruturas de repetição e uso eficiente de memória em algoritmos

⚠️ Erro mais comum

Confundir que tabelas pré-calculadas sempre usam menos memória que algoritmos iterativos, sem considerar o tamanho da tabela.

🌎 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.