Descreva em pseudocódigo um algoritmo que recebe na variável 'dados' uma sequência de bytes ASCII e produz na…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar algoritmos clássicos de manipulação sobre listas.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva em pseudocódigo um algoritmo que recebe na variável 'dados' uma sequência de bytes ASCII e produz na saída 'codificado' usando run-length encoding (RLE). Explique também como representar o contador em bytes e como realizar a decodificação.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Pseudocódigo: func RLE_codificar(dados): codificado ? lista vazia i ? 0 enquanto i < comprimento(dados): byte ? dados[i] contador ? 1 enquanto i+contador < comprimento(dados) e dados[i+contador] = byte e contador < 255: contador ? contador + 1 fim enquanto anexar codificado (byte, contador) // representado como dois bytes: valor do caractere seguido do contador i ? i + contador fim enquanto retornar codificado func RLE_decodificar(codificado): dados ? lista vazia para cada par (byte, contador) em codificado: repetir contador vezes: anexar byte a dados retornar dados Representação do contador: - Usar 1 byte para o contador (0–255). Se uma sequência tiver comprimento >255, dividir em vários pares com o mesmo byte e contadores que somem ao total. Observações de projeto: - RLE é eficiente quando há repetições consecutivas; para textos sem repetições pode aumentar o tamanho. Para evitar ambiguidade, o formato deve definir claramente a ordem (byte, contador) e limitar o contador a 255 por par. Decodificação simplesmente lê pares e repete o byte conforme o contador. Para interoperabilidade, pode-se prefixar o fluxo com um cabeçalho que indique uso de RLE.
Explicação
O pseudocódigo apresentado descreve claramente a lógica de compressão e descompressão usando RLE, abordando tanto a codificação quanto a decodificação de forma sistemática. A representação do contador em um único byte permite lidar com sequências de até 255 caracteres consecutivos, enquanto a explicação sobre a divisão de sequências maiores garante a integridade dos dados. Além disso, as observações sobre eficiência e formato ajudam a entender as limitações e a aplicação prática do algoritmo.
Raio-X da questão
run-length encoding
avaliacao
pseudocódigo · codificação de dados
Revisar algoritmos de compressão e representação de dados.
O aluno pode confundir a lógica de contagem de caracteres, não implementando corretamente a parte do contador no algoritmo.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Descreva um algoritmo em pseudocódigo que receba na variável 'texto' (sequência de bytes) e aplique codificação por…
- Escreva um algoritmo em pseudocódigo que receba uma string (entrada) e devolva sua codificação por run-length encoding…
- Desenhe um algoritmo em pseudocódigo que receba na variável 'texto' (sequência de bytes ASCII) e produza duas saídas…
- Em pseudocódigo, descreva um algoritmo que recebe na variável 'imagem' uma matriz 8x8 de pixels binários e produz (a) a…
- Desenvolva um algoritmo em pseudocódigo que recebe a sequência de bytes na variável 'dados' e aplica bit stuffing para…
- Descreva, em pseudocódigo, um algoritmo que recebe uma sequência de até 12 caracteres na variável 'msg' e produz na…
🔎 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
