Elabore um algoritmo (pseudocódigo ou código em Python) que, dada uma amostra de números inteiros, construa…
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
Elabore um algoritmo (pseudocódigo ou código em Python) que, dada uma amostra de números inteiros, construa uma tabela de frequências contendo: valor, frequência absoluta, frequência relativa e frequência acumulada; e ainda gere um histograma simples (texto ou gráfico). No enunciado, descreva como trata valores ausentes, a ordenação dos valores e estime a complexidade temporal do método. Aplique sua solução à amostra: [3, 1, 2, 3, 4, 2, 3, 1].
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Resposta modelo — abordagem e solução exemplo: 1) Estratégia: contar ocorrências com um dicionário (hash map), ignorar valores ausentes (None/NaN) e, ao final, ordenar as chaves para apresentar a tabela e o histograma. Complexidade: contagem O(n); ordenação das chaves O(k log k) onde k é o número de valores distintos; custo total O(n + k log k) (pior caso k˜n ? O(n log n)). 2) Pseudocódigo: - entrada: lista A - remover/ignorar valores nulos de A - criar mapa contagens vazio - para cada x em A: contagens[x] += 1 - total = comprimento de A - chaves = lista ordenada de contagens.keys() - freq_acumulada = 0 - para v em chaves: abs = contagens[v] rel = abs / total freq_acumulada += rel imprimir linha: v, abs, rel (arred.), freq_acumulada (arred.) - gerar histograma simples: para cada v em chaves imprimir v + '|' + '*' * round(abs * escala) 3) Exemplo em Python (conciso): A = [3,1,2,3,4,2,3,1] A = [x for x in A if x is not None] from collections import Counter c = Counter(A) total = len(A) keys = sorted(c.keys()) acc = 0.0 for v in keys: abs_f = c[v] rel = abs_f / total acc += rel print(f"{v}\t{abs_f}\t{rel:.3f}\t{acc:.3f}") # Histograma ASCII scale = 10 / max(c.values()) for v in keys: bars = '*' * int(c[v] * scale) print(f"{v}: {bars} ({c[v]})") 4) Saída esperada para a amostra: Valor Abs Rel Acum 1 2 0.250 0.250 2 2 0.250 0.500 3 3 0.375 0.875 4 1 0.125 1.000 Histograma (ex.): 1: ***** (2) 2: ***** (2) 3: ******* (3) 4: ** (1) Observações: escolher escala do histograma para legibilidade; para grandes amostras usar binning (classes) e/ou bibliotecas (matplotlib/pandas) para gráficos; se preferir imputar valores ausentes, justificar método e recalcular total.
Explicação
A solução apresentada utiliza um dicionário para contar as ocorrências de cada número, garantindo eficiência na contagem e simplicidade na manipulação dos dados. A ordenação das chaves permite a apresentação clara da tabela de frequências, enquanto o histograma textual proporciona uma visualização intuitiva das frequências absolutas. A abordagem também considera a complexidade temporal, garantindo que o algoritmo seja escalável e eficiente para diferentes tamanhos de amostras.
Raio-X da questão
tabela de frequências
avaliacao
estruturas de dados · algoritmos básicos
Revisar conceitos de frequência absoluta, relativa e acumulada.
O aluno pode esquecer de incluir a frequência relativa ou acumulada na tabela, focando apenas na frequência absoluta.
ciencia_tecnologia
criatividade
cientifico
Questões parecidas com resolução
- Escreva um pseudocódigo usando um único laço de repetição para construir a tabela de frequências absolutas e relativas…
- Projete um algoritmo em linguagem de alto nível que, a partir de uma lista de números inteiros obtida por amostragem…
- Projete um algoritmo em pseudocódigo que, a partir de uma amostra de dados numéricos (lista), construa uma tabela de…
- Elabore um algoritmo em pseudocódigo que, dada uma lista amostra de n números inteiros, construa uma tabela com…
- Você recebeu uma amostra de valores numéricos coletados por pesquisa (lista A). Elabore um algoritmo em pseudocódigo…
- Descreva um algoritmo em pseudocódigo que, dada uma lista de valores numéricos de uma amostra, construa a tabela de…
🔎 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
