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
- Lia criou um caminho no tabuleiro. O tablet usa “andar 10 passos”, e o robô usa “andar 1 quadrado”. Por que Lia escreveu…
- Algoritmo: "Ler nota. Se nota >= 60 então imprimir 'Aprovado'. Senão imprimir 'Reprovado'." Qual será a saída para nota…
- Na sala, um algoritmo manda ler a temperatura. Se ela for maior que 30 graus, deve ligar o ventilador; caso contrário…
- Descreva em passos um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado, retorne todas as…
- Descreva um algoritmo em pseudocódigo que, dado n variáveis booleanas (dados de entrada), gere todas as 2^n combinações…
- Projete um algoritmo reativo (autômato) que filtra eventos duplicados recebidos de um sensor; cada evento tem campos…
🔎 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
