Este repositório se refere à entrega do Exercício Programa da disciplina PMR3201 para engenharia mecatrônica, ministrada no primeiro semestre de 2022.
O repositório foi brevemente arquiteturado da seguinte maneira:
- .gitignore
- src/ - Pasta contendo as funções usadas no EP.
- encoding_functions.py - Funções de codificação e decodificação de texto.
- tree_functions.py - Funções relacionadas às árvores binárias.
- utils.py - Funções de utilidade geral.
- docs/
- Alice1.txt - Texto contendo o primeiro capítulo de Alice in Wonderland.
- abracadabra.txt - Texto contendo a palavra "ABRACADABRA".
- dickens.txt - Texto contendo a frase "it was the best of times it was the worst of times".
- enunciado.pdf - Enunciado do exercício.
- test.py
- main.py
- README.md
Função principal do exercício. Nela, você pode escolher entre duas opções:
- Codificar mensagem: lê um texto e o codifica de acordo com o algorítmo de huffman, escrevendo-o em outro arquivo, na forma de bytes.
- Decodificar mensagem: lê um arquivo codificado, na forma de bytes, e o traduz; escrevendo-o num arquivo de texto.
Dentro dessas ações, tanto os arquivos a serem lidos quanto os arquivos a serem escritos são determinados pelo usuário.
Ao digitar o nome do arquivo, precisa-se colocar a extensão (.txt para textos decodificados e .huf para textos codificados). Além disso, todos os arquivos a serem lidos e escritos estarão dentro da pasta /docs
do repositório.
Função de teste, que permite o usuário checar a codificação e decodificação da mensagem sem escrever ela em nenhum arquivo. Nela, você pode escolher entre três mensagens:
- abracadabra.txt
- dickens.txt
- Alice1.txt
Ao escolher, o programa printará o texto, sua codificação em binário e a tradução dessa codificação no terminal.
Para executar a função principal do projeto, basta rodar o comando:
python3 main.py
Já para executar os testes, basta rodar o comando:
python3 test.py