Esse projeto tem o objetivo de mostrar ao usuário o gráfico gerado apartir da Conjectura de Collatz que é calculado através do número inicial fornecido pelo usuário.
- Na linguagem C, criamos a função na qual é calculado os valores da conjectura a partir do número inicial
- Esse código foi exportado como uma library com extensão
.so
e para gerar o arquivo.so
utilizamos o próprio GCC - Já em Python, usamos a biblioteca
ctypes
para auxiliar na importação da biblioteca em C e uso de suas funções - no arquivo
plot.py
chamamos a funçãocalculate
que retorna um ponteiro para inteiro indicando a primeira posição do array que contém o tamanho total do array, e assim podemos saber em python o quanto devemos percorrer esse ponteiro para obter todos os números gerados - Também no arquivo
plot.py
usamos a libmatplotlib
para realizar o plot dos dados em um gráfico, o eixo X corresponde a contagem de números gerados e o eixo Y corresponde aos números gerados propriarmente. - Por fim, chamamos a função
freeArray
exportada pela lib em C para liberar esse espaço de memória após seu uso, passando como parâmetro o ponteiro inicial.
Pré requisitos:
- GCC instalado
- GNU Make instalado (normalmente ele acompanha na instalação do GCC)
- Python >= 2.7
- PIP >= 22.0
Executando
// na pasta do projeto
pip install ctypes
pip install matplotlib
make
python plot.py
Fernanda Kipper |
Vinicius Perruzi |