GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF08CO02Difícil⏱ medio

— Achei que era so contar as pastas, mas cada pasta tem outras dentro — reclamou uma voluntaria ao organizar o…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF08CO02

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

— Achei que era so contar as pastas, mas cada pasta tem outras dentro — reclamou uma voluntaria ao organizar o acervo digital de uma radio comunitaria. Para economizar internet, eles querem estimar quantos arquivos (audios e textos) serao enviados. Cada pasta guarda dois dados: (1) qtd, o numero de arquivos diretamente dentro dela; (2) sub, a lista de subpastas. O acervo esta assim: Acervo: qtd=2, sub=[Reportagens, Trilhas] Reportagens: qtd=3, sub=[Ribeira, Feira] Ribeira: qtd=4, sub=[] Feira: qtd=0, sub=[] Trilhas: qtd=1, sub=[Aberturas, Efeitos] Aberturas: qtd=2, sub=[] Efeitos: qtd=3, sub=[] Eles decidiram automatizar a contagem com uma funcao recursiva total(p), que devolve o total de arquivos dentro da pasta p, somando tambem o que estiver em todas as subpastas, em qualquer profundidade. Com base no texto, identifique a definicao de total(p) que, por recursao, calcula corretamente o total de arquivos e faz total(Acervo)=15.

  1. A) total(p): se p.sub==[] retorna p.qtd; senao retorna p.qtd + 1 + soma(total(s) para s em p.sub)
  2. B) total(p): se p.sub==[] retorna 0; senao retorna p.qtd + soma(total(s) para s em p.sub)
  3. C) total(p): se p.sub==[] retorna p.qtd; senao retorna soma(total(s) para s em p.sub)
  4. D) total(p): se p.sub==[] retorna p.qtd; senao retorna p.qtd + soma(total(s) para s em p.sub)
  5. E) total(p): se p.qtd==0 retorna 0; senao retorna p.qtd + soma(total(s) para s em p.sub)

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. Calcule o total real do acervo. Reportagens tem 3 arquivos diretos, mais Ribeira (4) e Feira (0), totalizando 7. Trilhas tem 1 arquivo direto, mais Aberturas (2) e Efeitos (3), totalizando 6. Acervo tem 2 diretos, mais 7 e 6, dando 15. Passo 2: A definicao precisa, em cada pasta, somar os arquivos diretos (p.qtd) com o total de cada subpasta, e parar quando nao houver subpastas (p.sub vazio), retornando apenas p.qtd. Passo 3: Testar a alternativa D: Ribeira retorna 4, Feira retorna 0, Reportagens retorna 3+4+0=7, Aberturas retorna 2, Efeitos retorna 3, Trilhas retorna 1+2+3=6 e Acervo retorna 2+7+6=15. Esta correta. Passo 4: Por que as outras estao erradas. A: soma 1 para cada pasta com subpastas, o que nao existe no enunciado, e daria 18 em vez de 15. B: as pastas folha retornam 0 em vez de p.qtd, perdendo os arquivos das pastas sem subpastas, e daria 6. C: ignora os arquivos diretos de cada pasta que tem subpastas, e daria 9. E: parece funcionar neste exemplo, mas a condicao p.qtd==0 esta errada, pois uma pasta com qtd=0 e subpastas com arquivos retornaria 0 indevidamente; por exemplo, X (qtd=0, sub=[Y]) com Y (qtd=5) daria 0 e nao 5. Passo 5: Como o gabarito oficial e D, concordo com ele.

💡 Dica: Analise a definição recursiva e verifique a soma dos arquivos incluindo subpastas.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

Acredita que cada subpasta acrescenta um arquivo extra ou um contador de pastas ao total, somando um 1 a cada pasta que tem subpastas.

Por que engana: Confundir a soma dos arquivos diretos com a soma total incluindo subpastas, ou esquecer de somar a quantidade da pasta atual.

B Erradaerro: Conceitual

Entende que uma pasta sem subpastas nao tem arquivos a contar e retorna 0, esquecendo que os arquivos diretos de pastas folha (como Ribeira e Aberturas) devem ser contados.

C Erradaerro: Procedimental

Confunde o total de uma pasta com o total de suas subpastas e descarta os arquivos diretos (p.qtd) das pastas que possuem subpastas, como Acervo e Reportagens.

D Correta

Usa caso-base (sem subpastas) e, no caso recursivo, soma os arquivos da pasta aos totais das subpastas, resultando 15 no Acervo.

E Erradaerro: Procedimental

Usa como caso base a condicao de a pasta ter zero arquivos diretos, mas isso ignora que uma pasta com qtd=0 pode ter subpastas com arquivos; assim, a pasta Feira funciona por acaso, mas a logica geral falha.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
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✍️ situacional🧩 consolidacao
🎯 Conceito central

função recursiva, contagem arquivos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

função recursiva básica · estrutura de dados em árvore

📚 Reveja

Estude funções recursivas e estruturas de dados em árvore.

⚠️ Erro mais comum

Confundir a soma dos arquivos diretos com a soma total incluindo subpastas, ou esquecer de somar a quantidade da pasta atual.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

Questões parecidas com resolução

Todas as questões de Programação - Programação com listas e recursão

🔎 Resolver outra questão

Cole o enunciado e veja a resolução passo a passo, a alternativa correta e por que as outras estão erradas.

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.