Projete um algoritmo em pseudocódigo e justifique a escolha de tipos de dado para representar a frequência…
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 e justifique a escolha de tipos de dado para representar a frequência (presente/ausente) em N aulas por aluno: compare usar um array de booleanos com usar um inteiro como bitmask, cite vantagens, limitações e inclua um exemplo de pseudocódigo para cada abordagem.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Abordagem 1 — array de booleanos: - Tipo: array<bool> freq[0..N-1] - Vantagens: leitura e atualização direta, legível, sem operações bitwise. - Limitações: ocupa mais memória por elemento. Pseudocódigo: para i de 0 até N-1: se entrada[i] == 'P' então freq[i] := true senão freq[i] := false contagem := 0 para i de 0 até N-1: se freq[i] então contagem := contagem + 1 Retorna contagem Abordagem 2 — bitmask (inteiro): - Tipo: inteiro sem sinal (ou vários inteiros se N > tamanho da palavra) - Vantagens: muito eficiente em memória e operações vetoriais (bitwise), bom para transmitir ou armazenar compactado. - Limitações: menos legível, operações de teste/atualização exigem bitwise, limite pelo tamanho da palavra (32/64 bits) ou necessidade de estrutura adicional. Pseudocódigo (N = bits de inteiro): bitmask := 0 para i de 0 até N-1: se entrada[i] == 'P' então bitmask := bitmask OR (1 << i) contagem := 0 para i de 0 até N-1: se (bitmask AND (1 << i)) ? 0 então contagem := contagem + 1 Retorna contagem Recomendação: use array de booleanos quando a prioridade for clareza e operações frequentes por posição; use bitmask quando for crítico reduzir memória ou melhorar performance em operações bitwise e N couber na representação ou puder ser segmentado em blocos.
Explicação
A resposta apresenta duas abordagens distintas para representar a frequência de alunos em aulas, detalhando as vantagens e limitações de cada uma, o que permite ao leitor entender as implicações de cada escolha. O uso de pseudocódigo para ambas as abordagens ilustra claramente como implementar as soluções, facilitando a compreensão prática. A recomendação final ajuda a direcionar a escolha da abordagem mais adequada com base nas necessidades específicas do problema.
Raio-X da questão
tipos de dados em algoritmos
avaliacao
tipos de dados em algoritmos · lógica de programação
Revisar conceitos de arrays e bitmasks em programação.
O aluno pode confundir a utilização de arrays com bitmasks, não reconhecendo as limitações de cada abordagem em termos de eficiência e clareza.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Um colégio registra presença de N alunos em D dias. Cada registro inclui campos (id_aluno, dia, presente). Descreva com…
- Descreva, em pseudocódigo, um algoritmo que utilize uma matriz de registros 'turma' (linhas = fileiras, colunas =…
- Projete um algoritmo em pseudocódigo que receba uma matriz de registros 'presenca' (linhas = alunos, colunas = dias) com…
- Descreva em pseudocódigo um algoritmo que recebe um conjunto de registros de alunos (nome, idade em anos, nota final com…
- Em um algoritmo, qual o tipo de dado mais apropriado para a variável 'contador' que registra o número de alunos…
- Projete um algoritmo em pseudocódigo que recebe uma coleção heterogênea de dados escolares (nomes, notas numéricas e…
🔎 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
