Calculadora PyQt para cálculo com incertezas

A um ano atrás fiz um módulo em Python para usar o interpretador Python como uma espécie de MathLab e fazer as operações com incertezas, usadas no Laboratório de Física. A intenção era facilitar a execução dos cálculos, por parte dos alunos e assim poder focar mais no desenvolvimento dos conteúdos dos experimentos que aos cálculos em si. O Módulo tem sido usado neste último ano com relativo sucesso.

Uma extensão natural deste módulo é a criação de uma interface gráfica, customizada na forma de uma calculadora, que é o que apresento neste texto. A interface gráfica foi feita em PyQt e Python 2.6, sobre o Slackware64. Consegui executar com sucesso no Windows, com quase nenhuma alteração e disponibilizei um pacote zipado para este fim.

Instalação

Fiz a instalação apenas para o Slackware64, mas acredito que para funcionar em outras distribuições, basta descompactar o arquivo tgz na raiz do sistema. Abaixo segue a lista de arquivos que serão instalados no sistema:

/usr/lib/medidas/medidas.py
/usr/lib/medidas/Ui_calc.py
/usr/lib/medidas/images/calculator.png
/usr/lib/medidas/images/go-up.png
/usr/lib/medidas/images/go-down.png
/usr/bin/mcalc
/usr/share/applications/mcalc.desktop

A instalação no Slackware (ou 64) segue os comandos de sempre:

wget http://localhost/linux/python/medidas/medidas-1.0.9-noarch-1.tgz
[prompt]installpkg medidas-1.0.9-noarch-1.tgz

A imagem a seguir mostra a calculadora em funcionamento.

O link do aplicativo é instalado em Applications -> Education -> Mathematics -> mcalc, no menu do KDE.

Executando a calculadora no Windows

Para executar esta calculadora no Windows, você terá que instalar o Python-2.6 e o PyQt-Py2.6, já que toda a interface gráfica é em Qt. Baixe os pacotes abaixo e execute-os para instalar:

Se deixar a instalação padrão, os arquivos devem ser descomprimidos no diretório C:\Python26\. Caso altere este endereço, terá que mudar o arquivo mcalc.bat para apontar para a nova localização do Python. Em seguida baixe o pacote no endereço abaixo:

http://localhost/linux/python/medidas/medidas-1.0.6.zip

Em seguida descompacte-o em algum lugar de seu sistema. Para executar a calculadora, execute o script .bat em medidas/src/mcalc.bat. Exceto pelos ícones de dois botões (up e down) e o ícone do aplicativo, a calculadora funcionou muito bem.

Uma breve apresentação do MCalc

O MCalc é a interface gráfica para o módulo medidas.py. Essencialmente a interface gráfica apenas monta a linha e a envia para o interpretador Python, para avaliar a expressão.

Este aplicativo possui 6 memórias pré-definidas, nomeadas A a F, além de manter uma cópia da última operação, na telha Ans. Além dos botões convencionais de uma calculadora científica, o MCalc possui botões específicos para tratar com medidas e incertezas. São eles: Trunk, Xm e Med.

Nas linhas a seguir, farei uma breve descrição dos botões e da operação do MCalc.

Como uma calculadora padrão

O MCalc funciona como uma calculadora científica convencional, com as principais funções comuns a este tipo de equipamento. Sua operação segue os mesmos princípios das calculadoras Casio fx85 e semelhantes.

O display inferior é onde é feito a entrada dos dados, ficando o superior para apresentação da última linha digitada. As setas em verde, logo abaixo do display principal, controla o movimento lateral do cursor, seta para direita e para esquerda, ou rola entre as linhas digitadas, com as setas para cima e para baixo.

A intenção inicial era armazenar apenas as últimas 10 linhas digitadas, mas acabei deixando sem este limite. Com isto a MCalc deve registrar todas as linhas digitadas, desde o início de operação até o seu desligamento, quando este histórico será perdido.

Alguns botões funcionam como botão de estado, permanecendo pressionado até que outro botão seja pressionado ou até que seja pressionado novamente.

Atuam desta forma o botão Inv, para habilitar as funções inversas. Quando pressionado, este botão permanece baixado até que uma dos botões: sin, cos, tan, ^2, ^3, log ou ln, seja pressionado. Isto fará com que a MCalc chame a função inversa da função pressionada, ou seja: asin, acos, atan, sqrt, ^(1/3), 10^x ou e^x, respectivamente.

Bugs conhecidos

A versão para Windows é apenas uma adaptação, não existindo regras específicas declaradas para esta plataforma ainda. Por isto algumas atualizações de última hora, como a habilitação das funções hiperbólicas (senh, cosh e tanh), acabaram não sendo feitas nesta versão.

Além disto, é conhecido que a função trunk falha no truncamento de valores como (12,3 +- 0,95). Neste casos, o retorno da função será (12,0 +- 1,0), enquanto que o correto seria (12 +- 1).

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.