https://github.com/fernanda-kipper/integration-c-python
This repository has the aim to provide an easy example of integrating two programming languages (C and Python)
https://github.com/fernanda-kipper/integration-c-python
Last synced: 2 months ago
JSON representation
This repository has the aim to provide an easy example of integrating two programming languages (C and Python)
- Host: GitHub
- URL: https://github.com/fernanda-kipper/integration-c-python
- Owner: Fernanda-Kipper
- Created: 2022-10-19T11:02:29.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-21T13:06:44.000Z (almost 3 years ago)
- Last Synced: 2025-01-12T14:25:45.295Z (9 months ago)
- Language: Python
- Size: 12.7 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Conjectura de Collatz 📊
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.### Integração C & Python
- 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ção `calculate` 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 lib `matplotlib` 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.### Como rodar
**Pré requisitos:**
- GCC instalado
- GNU Make instalado (normalmente ele acompanha na instalação do GCC)
- Python >= 2.7
- PIP >= 22.0**Executando**
```bash
// na pasta do projeto
pip install ctypes
pip install matplotlibmake
python plot.py
```### Colaboradores 🤝