Projete um algoritmo em pseudocódigo que receba uma lista de nomes (strings) como dado de entrada e devolva…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Projete um algoritmo em pseudocódigo que receba uma lista de nomes (strings) como dado de entrada e devolva uma lista de pares (nome, índice) onde índices são inteiros consecutivos começando em 0 atribuídos na ordem da primeira ocorrência. Explique a escolha de estruturas e a complexidade.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Pseudocódigo: 1. function mapear_nomes(lista): 2. mapa ? dicionário vazio 3. resultado ? lista vazia 4. índice ? 0 5. for nome in lista: 6. if nome not in mapa: 7. mapa[nome] ? índice 8. índice ? índice + 1 9. resultado.append((nome, mapa[nome])) 10. return resultado Escolha e complexidade: - Uso de dicionário (hash map) evita duplicatas e permite consulta/atribuição média O(1). - O algoritmo percorre a lista uma vez: tempo O(m), onde m é o número de nomes na lista. Espaço extra O(k) para o dicionário, sendo k o número de nomes únicos.
Explicação
O pseudocódigo utiliza um dicionário para armazenar os nomes e seus respectivos índices, garantindo que cada nome seja associado ao seu índice apenas na primeira ocorrência. Isso permite que a busca e a inserção sejam feitas de forma eficiente, em média O(1), enquanto o loop que percorre a lista garante que a complexidade total do algoritmo seja linear em relação ao número de nomes. A escolha de estruturas é adequada para evitar duplicatas e otimizar o tempo de execução.
Raio-X da questão
algoritmo em pseudocódigo
avaliacao
estruturas de dados · pseudocódigo
Revisar conceitos de estruturas de dados e complexidade de algoritmos.
O aluno pode confundir a ordem de inserção dos nomes com a ordem de saída dos índices, atribuindo índices incorretos.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete um algoritmo em pseudocódigo que receba uma lista de nomes de alunos (entrada de dados) e retorne uma lista de…
- Descreva como um algoritmo pode ser utilizado para organizar uma lista de alunos por nome. Inclua a estrutura de dados…
- Problema de programação: dada uma lista de nomes, crie um programa que conte a frequência de cada nome e apresente em…
- Projete um algoritmo em pseudocódigo que receba uma lista L de n inteiros e retorne uma nova lista em que todos os…
- Descreva como você criaria um algoritmo para organizar uma lista de nomes de alunos por ordem alfabética. Inclua o tipo…
- Projete em pseudocódigo um algoritmo que receba uma lista de nomes de alunos (dados) e retorne a mesma lista sem…
🔎 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
