Skip to content

Work proposed in the discipline of Programming Languages ​​in which the student must choose two programming languages, preferably one interpreted and one compiled, to extract the maximum of 12x12 matrices from a spreadsheet with the quotations of some Brazilian stocks.

Notifications You must be signed in to change notification settings

fco3lho/inverseMatrix-calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Problema proposto

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.

Critério de escolha das linguagens

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.

Avaliação das linguagens

Python

  • Nível de segurança: Alto
  • Confiabilidade: Baixa
  • Paradigma da linguagem: Imperativo, orientado a objetos e funcional
  • Classe: Interpretado

C++

  • Nível de segurança: Baixo
  • Confiabilidade: Alto
  • Paradigma da linguagem: Orientado a objetos e procedural
  • Classe: Compilado

Metodologia

Python

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.

C++

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.

Conclusão

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.

Compilação e Execução em C++

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.

Execução em Python

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".

About

Work proposed in the discipline of Programming Languages ​​in which the student must choose two programming languages, preferably one interpreted and one compiled, to extract the maximum of 12x12 matrices from a spreadsheet with the quotations of some Brazilian stocks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published