BNCC
21 questões
Questões BNCC EF08CO01
Construir soluções de problemas usando a técnica de recursão e automatizar tais soluções usando uma linguagem de programação.
Texto oficial da habilidade, conferido palavra por palavra contra a Base Nacional Comum Curricular — BNCC_Computacao.pdf, página 52. Extração confirmada por dois processos independentes.
Descrição da habilidade EF08CO01
Construir soluções de problemas usando a técnica de recursão e automatizar tais soluções usando uma linguagem de programação.
Séries
8º ano
Matérias
Computação
Assuntos
Programação - Programação com listas e recursão
Unidades temáticas relacionadas
Pensamento computacional
Questões relacionadas a EF08CO01
Questão 1 · Objetiva
Uma banca de feira registra em uma lista o preço de cada cesta vendida durante a manhã. Para calcular o total arrecadado, foi criada a função abaixo, ainda incompleta.
funcao somar(vendas, posicao)
se __________
retorne __________
fim_se
retorne vendas[posicao] + somar(vendas, posicao + 1)
fim_funcao
A primeira chamada é somar(vendas, 0).
Qual preenchimento faz a função somar todos os valores da lista usando recursão, sem tentar acessar uma posição inexistente?
funcao somar(vendas, posicao)
se __________
retorne __________
fim_se
retorne vendas[posicao] + somar(vendas, posicao + 1)
fim_funcao
A primeira chamada é somar(vendas, 0).
Qual preenchimento faz a função somar todos os valores da lista usando recursão, sem tentar acessar uma posição inexistente?
Questão 2 · Objetiva
Pesquisadores acompanham a qualidade da água em estações de um rio e precisam automatizar a leitura dos sensores. No mapa simplificado, a estação A se liga a B e C; B se liga a D; C se liga a D; e D se liga novamente a B. O programa deve exibir cada estação uma única vez. Foi proposto o procedimento abaixo:
visitar(estação)
exibir estação
para cada ligação que sai da estação
visitar(estação de destino)
Ao executar o procedimento a partir de A, as chamadas entre algumas estações podem continuar sem encerrar a varredura.
Analise o mapa e o procedimento e identifique a alteração que permite concluir a varredura sem repetir chamadas indefinidamente.
visitar(estação)
exibir estação
para cada ligação que sai da estação
visitar(estação de destino)
Ao executar o procedimento a partir de A, as chamadas entre algumas estações podem continuar sem encerrar a varredura.
Analise o mapa e o procedimento e identifique a alteração que permite concluir a varredura sem repetir chamadas indefinidamente.
Questão 3 · Objetiva
— A proposta sobre a praça recebeu respostas dentro de outras respostas — observou a mediadora da plataforma de participação cidadã. Para localizar sugestões repetidas, o sistema deve ler cada mensagem e também todas as respostas ligadas a ela. Como uma resposta pode receber novas respostas, não se sabe antecipadamente quantos níveis haverá em cada conversa.
A programadora criou o procedimento verificar(mensagem). Primeiro, ele registra o texto da mensagem recebida. Depois, para cada resposta ligada a ela, executa novamente verificar(resposta). Assim, o mesmo procedimento é usado tanto nas mensagens iniciais quanto nas respostas em qualquer nível da conversa.
Analise o procedimento descrito e identifique a regra necessária para que ele percorra todas as conversas sem continuar executando chamadas desnecessárias.
A programadora criou o procedimento verificar(mensagem). Primeiro, ele registra o texto da mensagem recebida. Depois, para cada resposta ligada a ela, executa novamente verificar(resposta). Assim, o mesmo procedimento é usado tanto nas mensagens iniciais quanto nas respostas em qualquer nível da conversa.
Analise o procedimento descrito e identifique a regra necessária para que ele percorra todas as conversas sem continuar executando chamadas desnecessárias.
Questão 4 · Objetiva
— Os relatos gravados pelos moradores estão distribuídos em muitas pastas — observou a responsável pelo acervo digital de um centro cultural. Algumas pastas guardam arquivos de áudio, enquanto outras contêm novas pastas, formando níveis diferentes de organização. Para reunir os nomes de todos os arquivos, foi criado o procedimento em uma linguagem de programação:
def catalogar(pasta):
exibir_arquivos(pasta)
if CONDICAO:
return
for subpasta in pasta.subpastas:
catalogar(subpasta)
O procedimento deve mostrar os arquivos da pasta recebida e continuar a busca em cada pasta interna, sem deixar de registrar conteúdos que estejam em níveis mais profundos.
Analise o procedimento e identifique a condição que representa o caso-base para encerrar cada ramo da busca sem impedir o registro dos arquivos.
def catalogar(pasta):
exibir_arquivos(pasta)
if CONDICAO:
return
for subpasta in pasta.subpastas:
catalogar(subpasta)
O procedimento deve mostrar os arquivos da pasta recebida e continuar a busca em cada pasta interna, sem deixar de registrar conteúdos que estejam em níveis mais profundos.
Analise o procedimento e identifique a condição que representa o caso-base para encerrar cada ramo da busca sem impedir o registro dos arquivos.
Questão 5 · Objetiva
— O painel do mutirão de conserto do centro comunitário está “escondendo” trabalho — reclamou a coordenadora ao ver o relatório do aplicativo.
No app, cada serviço pode ser dividido em subtarefas. Por exemplo, “Revisar som do auditório” pode virar “trocar cabos” e “testar caixas”; e “testar caixas” ainda pode virar “testar esquerda” e “testar direita”. Ou seja, uma tarefa pode ter uma lista de subtarefas, e cada subtarefa pode ter outras, sem limite de níveis.
O relatório precisa mostrar quantas tarefas serão executadas no total, contando a tarefa principal e todas as subtarefas em qualquer profundidade. A equipe percebeu que contar “só dois níveis” funciona em alguns casos, mas falha quando alguém detalha mais o serviço. Por isso, decidiram automatizar a contagem com uma função recursiva.
Analise a necessidade descrita e identifique o algoritmo em pseudocódigo que calcula corretamente o total de tarefas, contando a própria tarefa e todas as subtarefas, independentemente da profundidade.
No app, cada serviço pode ser dividido em subtarefas. Por exemplo, “Revisar som do auditório” pode virar “trocar cabos” e “testar caixas”; e “testar caixas” ainda pode virar “testar esquerda” e “testar direita”. Ou seja, uma tarefa pode ter uma lista de subtarefas, e cada subtarefa pode ter outras, sem limite de níveis.
O relatório precisa mostrar quantas tarefas serão executadas no total, contando a tarefa principal e todas as subtarefas em qualquer profundidade. A equipe percebeu que contar “só dois níveis” funciona em alguns casos, mas falha quando alguém detalha mais o serviço. Por isso, decidiram automatizar a contagem com uma função recursiva.
Analise a necessidade descrita e identifique o algoritmo em pseudocódigo que calcula corretamente o total de tarefas, contando a própria tarefa e todas as subtarefas, independentemente da profundidade.
Questão 6 · Objetiva
— Achou a gravação de 1998? — perguntou a técnica da rádio comunitária, enquanto organizava o acervo no computador.
O estagiário explicou que os áudios estão guardados em pastas e subpastas: na pasta “Raiz” há o arquivo “abertura.mp3” (3 min) e a pasta “Entrevistas”, que contém o arquivo “saude.wav” (5 min) e a pasta “Festas”, com “junina.mp3” (2 min) e “aniversario.mp3” (4 min). Ele tentou somar as durações com um laço, mas percebeu que só funcionava no primeiro nível e esquecia os arquivos que estavam mais “fundos”.
Para automatizar a soma em qualquer profundidade, ele escreveu a função abaixo, mas deixou uma lacuna:
func somaDuracao(pasta):
total = 0
para cada item em pasta:
se item é arquivo: total = total + item.duracao
se item é pasta: total = total + ???
retorna total
Analise a função do texto e identifique a substituição de ??? que permite somar a duração total dos áudios, mesmo quando há subpastas dentro de subpastas.
O estagiário explicou que os áudios estão guardados em pastas e subpastas: na pasta “Raiz” há o arquivo “abertura.mp3” (3 min) e a pasta “Entrevistas”, que contém o arquivo “saude.wav” (5 min) e a pasta “Festas”, com “junina.mp3” (2 min) e “aniversario.mp3” (4 min). Ele tentou somar as durações com um laço, mas percebeu que só funcionava no primeiro nível e esquecia os arquivos que estavam mais “fundos”.
Para automatizar a soma em qualquer profundidade, ele escreveu a função abaixo, mas deixou uma lacuna:
func somaDuracao(pasta):
total = 0
para cada item em pasta:
se item é arquivo: total = total + item.duracao
se item é pasta: total = total + ???
retorna total
Analise a função do texto e identifique a substituição de ??? que permite somar a duração total dos áudios, mesmo quando há subpastas dentro de subpastas.
Questão 7 · Objetiva
— 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.
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.
Questão 8 · Objetiva
Ao organizar as fotos do campeonato do bairro, Lia criou um programa para separar imagens por ano, mês e dia. Primeiro, ele abre a pasta principal. Se encontrar outra pasta dentro dela, faz a mesma tarefa nessa nova pasta. Quando encontra uma imagem, registra o nome e segue adiante. O processo só termina quando não resta nenhuma pasta para abrir. Depois de testar, Lia percebeu que o mesmo conjunto de instruções serviu para pastas grandes e pequenas, sem precisar escrever uma rotina diferente para cada caso.
Considere o texto-base e identifique a característica da solução criada por Lia que permite tratar pastas dentro de pastas até o final do processo.
Considere o texto-base e identifique a característica da solução criada por Lia que permite tratar pastas dentro de pastas até o final do processo.
Gere provas alinhadas à habilidade EF08CO01
Monte provas, atividades e planos de aula alinhados à BNCC em segundos com o GeraProva.
Ver planos