O objetivo deste trabalho é a implementação de um algoritmo para compactação de dados repetidos.
Uma das técnicas que podem ser usadas para compactar um vetor é a Run Length Encoded, ou Codificação pelo Comprimento da Sequência. Neste técnica, uma sequência de dados iguais em um vetor é substituída por uma instância deste dado seguida de um número que define a quantidade de vezes que este dados se repete. Por exemplo, aplicando RLE à sequência XXXXXXXXXXYYYYYYY, deve-se obter X10Y7.
No presente trabalho, a entrada do algoritmo deverá ser um vetor de caracteres, de um tamanho conhecido previamente. Como saída, o algoritmo deve gerar a compactação RLE do vetor, em um novo vetor, alocado dinamicamente. Neste vetor, a quantidade de repetições de cada dado deve ser armazenada como um unsigned char, ou seja um inteiro de 1 (um) byte. Com isto, sequências de mais de 255 caracteres deverão ser codificadas em duas ou mais partes.
Os trabalhos são em duplas ou individuais. A pasta do projeto deve ser compactada em um arquivo .zip e este deve ser submetido pelo Moodle até a data e hora especificadas.
Não envie .rar, .7z, .tar.gz - apenas .zip.
O código deve estar identado corretamente (o Code::Blocksfazissoautomaticamente).
A nota do trabalho depende da apresentação deste no laboratório, na data marcada. Trabalhos entregues mas não apresentados terão sua nota anulada automaticamente. Durante a apresentação será avaliado o domínio da resolução do problema, podendo inclusive ser possível invalidar o trabalho quando constatada a falta de conhecimento sobre o código implementado.
A cópia parcial ou completa do trabalho terá como conseqüência a atribuição de nota ZERO ao trabalho dos alunos envolvidos. A verificação de cópias é feita inclusive entre turmas.
A cópia de código ou algoritmos existentes da Internet também não é permitida. Se alguma idéia encontrada na rede for utilizada na implementação, sua descrição e referência deve constar no artigo.