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
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
função recursiva em pseudocódigo
avaliacao
função recursiva · estruturas de dados
Revisar conceitos de recursão e estruturas de dados em listas.
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.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete em pseudocódigo uma função recursiva subsequencias(L) que recebe uma lista L de inteiros e retorna a lista de…
- Projete em pseudocódigo um algoritmo recursivo compress_consecutivos(L) que recebe uma lista L e retorna uma nova lista…
- Projete em pseudocódigo uma função recursiva remover_unicos(L) que recebe uma lista L de inteiros e retorna uma nova…
- Projete em pseudocódigo uma função recursiva permutar(L) que recebe uma lista L com n elementos distintos e retorna uma…
- Projete em pseudocódigo uma função recursiva separar_indices(L) que recebe uma lista L e retorna duas listas: elementos…
- Projete em pseudocódigo uma função recursiva maximo(L) que recebe uma lista não vazia de inteiros e retorna o maior…
🔎 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
