Descreva em pseudocódigo um algoritmo que recebe um vetor de strings cores[1..n] e constrói uma tabela de…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar conceitos iniciais de uma linguagem de programação na implementação de algoritmos escritos em linguagem corrente e/ou matemática.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva em pseudocódigo um algoritmo que recebe um vetor de strings cores[1..n] e constrói uma tabela de frequências (associando cada cor à sua contagem). Explique também como representar a tabela usando registros ou uma matriz e qual a complexidade esperada.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Pseudocódigo (usando dicionário/map para eficiência): 1. função Frequencia(cores[1..n]) 2. tabela := mapa vazio // chave: string, valor: inteiro 3. para i de 1 até n faça 4. se tabela.contém(cores[i]) então 5. tabela[cores[i]] := tabela[cores[i]] + 1 6. senão 7. tabela[cores[i]] := 1 8. fim se 9. fim para 10. retornar tabela 11. fim função Representação alternativa sem mapa: usar uma matriz R[k][2] onde cada linha guarda [valor, contagem]; ao processar cada cor, procura-se sequencialmente na coluna de valores e atualiza ou adiciona nova linha. A versão com mapa usa um registro implícito (par chave/valor) e proporciona tempo médio O(n) para n elementos; a versão com matriz sem índices auxiliares tem pior caso O(n^2) por buscas lineares. Exemplo: cores = ["vermelho","azul","vermelho"] ? tabela {"vermelho":2, "azul":1}.
Explicação
O pseudocódigo apresentado utiliza um mapa para armazenar as frequências de cada cor de forma eficiente, permitindo inserções e buscas rápidas. A representação alternativa com matriz é menos eficiente, pois requer buscas lineares para atualizar as contagens, resultando em maior complexidade no pior caso. A comparação entre as duas abordagens ilustra a importância de escolher a estrutura de dados adequada para otimizar o desempenho do algoritmo.
Raio-X da questão
algoritmo e complexidade
avaliacao
vetores e strings · pseudocódigo e algoritmos
Revisar conceitos de algoritmos e estruturas de dados.
O aluno pode confundir a estrutura de dados a ser utilizada, optando por uma lista simples ao invés de uma tabela de frequências.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Proponha um pseudocódigo que, dado um vetor de números inteiros obtido de uma amostra, construa uma tabela de…
- Escreva um algoritmo em pseudocódigo que, dado um vetor de respostas categóricas de uma pesquisa amostral, construa uma…
- Elabore um algoritmo em pseudocódigo que, dado um vetor de N números inteiros lidos do usuário, construa e imprima uma…
- Elabore um pseudocódigo que receba uma lista de n números inteiros e construa uma tabela de frequências (pares valor…
- Elabore um algoritmo em pseudocódigo que, dada uma amostra de notas (vetor de n valores entre 0 e 10), construa uma…
- Projete um algoritmo em pseudocódigo que, dado um vetor de N respostas categóricas (valores inteiros entre 1 e K)…
🔎 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
