O trabalho proposto na disciplina de Linguagens de Programação baseia-se em escolher duas linguagens de programação para resolver o problema proposto, de coletar dados de uma planilha em forma de matriz 12x12 linha por linha na planilha, e calcular a matriz inversa de cada matriz coletada.
Foram escolhidas as linguagens de programação Python, que é uma linguagem popular e de fácil aprendizagem, e C++, que é uma linguagem teoricamente rápida e que me senti mais apto para solucionar o problema proposto.
- Nível de segurança: Alto
- Confiabilidade: Baixa
- Paradigma da linguagem: Imperativo, orientado a objetos e funcional
- Classe: Interpretado
- Nível de segurança: Baixo
- Confiabilidade: Alto
- Paradigma da linguagem: Orientado a objetos e procedural
- Classe: Compilado
Em Python, para a resolução do problema, foram usadas as bibliotecas pandas
e numpy
, para realizar a leitura da planilha, criação de matrizes e calcular as matrizes inversas.
Inicialmente, foi criada uma variável que recebe a leitura da planilha, uma outra variável que para a criação da planilha 12x12 e uma variável de iteração. Logo após, o programa entra em um laço de repetição que coleta as colunas selecionadas na linha que a variável de iterador estiver no momento do laço. Possuindo a matriz 12x12 completa, pode-se calcular a matriz inversa usando a função linalg.inv()
do numpy
.
Em C++, para a resolução do problema, foram usadas apenas bibliotecas padrões do C++ para leitura do arquivo.
O cálculo completo foi feito de forma manual, utilizando o método de Gauss-Jordan, e sem a utilização de biblioteca de terceiros onde foi criada apenas uma função, chamada de calculateInverse()
para calcular a matriz inversa da matriz que o programa está executando naquele momento.
Observação: Devido a dificuldade que a linguagem propõe, os dados do arquivo .xls
foram passados para um arquivo .txt
para ser feita a leitura de forma mais fácil e correta.
Comparando as duas linguagem escolhidas, podemos dizer que Python ganhou disparadamente, por sua facilidade e velocidade compara a C++ nesse caso. Em questão de linhas de código, Python ficou com 42 linhas e C++ com 230 linhas, e em questão de tempo, para Python executar todas as 6187 matrizes, gastou em média 24 segundos e para executar uma matriz, C++ gastou 4.26 segundos, ou seja, C++ cumpriu o esperado de ser uma linguagem rápida e de alta confiança, com o programador podendo ver tudo o que está acontecendo, diferente de Python que não é possível ver o que a função usada para calcular a matriz inversa faz.
Na pasta cplusplus
, possui um arquivo Makefile que realiza todo o procedimento de compilação e execução. Abra o diretório da pasta no terminar e siga os comandos abaixo:
Comando | Função |
make clean |
Apaga a última compilação realizada contida na pasta build. |
make |
Executa a compilação do programa utilizando o g++, e o resultado vai para a pasta build. |
make run |
Executa o programa da pasta build após a realização da compilação. |
Após abrir a pasta python
no terminal, siga os passos abaixo para executar o programa.
Comando | Função |
python3 main.py |
Irá executar o código escrito em "main.py". |