GeraProva GeraProva Provas com IA para professores do Brasil
Computação5º anoBNCC EF15CO05Difícil⏱ longo

Descreva um algoritmo em pseudocódigo que receba na variável 'texto' (sequência de bytes) e aplique…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO05

Codificar a informação de diferentes formas, entendendo a importância desta codificação para o armazenamento, manipulação e transmissão em dispositivos computacionais.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Descreva um algoritmo em pseudocódigo que receba na variável 'texto' (sequência de bytes) e aplique codificação por comprimento de repetições (RLE) para compactar sequências consecutivas de bytes idênticos. Explique quando essa codificação reduz o tamanho dos dados e quando pode aumentar, considerando armazenamento e transmissão em rede.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Resposta modelo (pseudocódigo e justificativa): Pseudocódigo: saida ? lista vazia i ? 0 n ? comprimento(texto) while i < n: valor ? texto[i] cont ? 1 while i+cont < n and texto[i+cont] = valor and cont < 255: cont ? cont + 1 append(saida, cont) // byte de contagem append(saida, valor) // byte do valor repetido i ? i + cont return saida Observações e justificativa: - A codificação grava pares (contagem, valor); limite a 255 para caber em um byte; runs maiores são divididos em blocos. - Vantagem: reduz tamanho quando o dado contém longas sequências repetidas (por exemplo, faixas sólidas em imagens ou arquivos RLE-friendly), diminuindo bytes transmitidos e exigência de armazenamento. - Desvantagem: para dados sem repetições (texto aleatório ou imagens com muito ruído) há overhead de um byte extra por símbolo, podendo aumentar o tamanho. Por isso, antes da transmissão é útil medir a taxa de compressão e escolher enviar RLE apenas se for eficiente. - Para transmissão em rede considere incluir cabeçalho com tamanho original e método de escape para distinguir dados de controle; RLE é simples e de baixo custo computacional, mas nem sempre é a melhor opção para fluxos heterogêneos.

Explicação

O pseudocódigo apresentado implementa a codificação RLE de forma eficiente, agrupando bytes idênticos e armazenando a contagem e o valor em pares, o que é ideal para dados com sequências longas de repetições. A explicação sobre quando a compressão é vantajosa ou desvantajosa destaca a importância de avaliar o tipo de dado antes de aplicar a técnica, considerando o potencial aumento de tamanho em dados sem repetições. Além disso, menciona a necessidade de um cabeçalho para transmissão em rede, o que demonstra uma compreensão abrangente da aplicação prática do algoritmo.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

codificação RLE

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos e pseudocódigo · codificação de dados

📚 Reveja

Revisar conceitos de algoritmos e compressão de dados.

⚠️ Erro mais comum

O aluno pode descrever um algoritmo que não considera corretamente as sequências de bytes, resultando em uma codificação ineficiente.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Codificação da informação

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.