GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF69CO03Difícil⏱ longo

Projete em pseudocódigo uma função recursiva agrupar_por_inicial(L) que recebe uma lista L de nomes (strings)…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO03

Descrever com precisão a solução de um problema, construindo o programa que implementa a solução descrita.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete em pseudocódigo uma função recursiva agrupar_por_inicial(L) que recebe uma lista L de nomes (strings) e retorna uma lista de registros {inicial, nomes} onde 'nomes' contém, na ordem original, todos os nomes que começam com a mesma letra. Explique o caso base, a etapa recursiva e dê o resultado para L = ['Ana','Arthur','Beatriz','Bruno','Alice'].

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Modelo de solução (pseudocódigo): func agrupar_por_inicial(L): se L == [] então retorne [] senao nome := primeiro(L) ini := primeira_letra(nome) rest := agrupar_por_inicial(resto(L)) // procurar registro com inicial ini em rest se existe R em rest tal que R.inicial == ini então R.nomes := concatenar([nome], R.nomes) retorne rest senao retorne concatenar([{inicial: ini, nomes: [nome]}], rest) Explicação do caso base: vazio retorna lista vazia. Etapa recursiva: reduz o problema retirando o primeiro nome, agrupa o resto recursivamente e injeta o nome atual no registro correto (cria novo se necessário), preservando ordem por inicial. Exemplo para ['Ana','Arthur','Beatriz','Bruno','Alice']: resultado possível (ordem de grupos conforme primeira ocorrência) = [ {inicial:'A', nomes:['Ana','Arthur','Alice']}, {inicial:'B', nomes:['Beatriz','Bruno']} ].

Explicação

A solução apresentada utiliza recursão para processar a lista de nomes, garantindo que cada nome seja agrupado de acordo com sua inicial. O caso base trata a situação em que a lista está vazia, retornando uma lista vazia, enquanto a etapa recursiva organiza os nomes em registros, preservando a ordem original. O exemplo fornecido ilustra claramente como os nomes são agrupados corretamente, demonstrando a eficácia do algoritmo.

Raio-X da questão

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

função recursiva em pseudocódigo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

função recursiva · estruturas de dados

📚 Reveja

Revisar conceitos de recursão e estruturas de dados em listas.

⚠️ Erro mais comum

O aluno pode confundir a lógica de recursão, não definindo corretamente o caso base e a chamada recursiva, resultando em loops infinitos ou erros de lógica.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Programação - Linguagem de programaçã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

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.