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
- Os aplicativos de mapa, como o GPS, ajudam o carro de entregas a chegar à casa do cliente. O aplicativo compara dois…
- Lia organiza carrinhos, bonecas e blocos separando cada tipo, colocando-os em caixas e guardando as caixas na…
- Em um jogo, uma personagem controlada por IA precisa chegar a um tesouro sem bater nas paredes. Qual instrução ajuda a…
- Desenhe um algoritmo em pseudocódigo que, dada uma matriz M[N][M] com 0 (livre) e 1 (bloqueado), identifique todas as…
- Em um programa, Substring(codigo, início, quantidade) pega letras do texto a partir da posição indicada, e…
- Projete um algoritmo em pseudocódigo que, dadas as variáveis temperatura (inteiro ºC), ocupacao (inteiro, número 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
