Ir para o conteúdo principal

SpeedCrunch - uma calculadora científica de alta precisão

·2088 palavras·10 minutos·
Reviews Calculadora FOSS Linux Open Source
Autor
Francisco Bustamante
Um químico trabalhando com Ciência de Dados e Programação em Python.
Tabela de conteúdos

SpeedCrunch é um programa que se propõe ser uma calculadora científica de alta precisão, com uma interface simples, mas que é altamente personalizável.

Onde encontrar, licença e plataformas
#

O programa pode ser baixado diretamente do site do projeto, possuindo versões para Linux, Windows e MacOS. Usuários de distribuições Linux podem ainda verificar se a calculadora está disponível na loja de aplicativos e/ou repositório da distribuição, procedimento recomendado pelo próprio site do projeto. Por exemplo, usuários do Linux Mint, distribuição que uso e recomendo, podem baixar na loja de aplicativos procurando por “speedcrunch”

speedcrunch_loja_mint
Imagem da loja de aplicativos do Linux Mint mostrando o SpeedCrunch

De forma geral, usuários de distribuições baseadas em Debian podem instalar pelo terminal caso não tenham lojas de aplicativo:

sudo apt install speedcrunch

E no Fedora:

sudo yum install speedcrunch

A licença é GPL e é um programa gratuito FOSS: livre e de código-aberto.

Visão geral e funcionalidades
#

A visão inicial da calculadora é bem simples, uma entrada de texto na última linha e um espaço vazio onde um histórico das últimas contas e seus resultados serão exibidos.

speedcrunch_tela_inicial
Imagem da tela inicial do SpeedCrunch

Basta colocar as operações e apertar enter para que os resultados seja exibidos. Antes de apertar enter os resultados parciais são exibidos acima da barra de entrada.

speedcrunch_basico
Imagem de uma conta simples no SpeedCrunch

Existe tradução para português, está disponível no menu Settings -> Language…, mas recomendo veementemente que deixe em inglês para que possa praticar o idioma.

speedcrunch_idiomas
Imagem do menu de idiomas do SpeedCrunch

Convenhamos, o esquema de cores e a tela inicial não são muito convidativos. Vou começar mudando o tema da calculadora e aumentando um pouco a fonte. Siga os passos da animação abaixo e fique a vontade para selecionar outro tema e outra fonte:

speedcrunch_aparencia
Imagem do menu de aparência do SpeedCrunch

Agora fica mais fácil de enxergar o que estamos fazendo.

Como usual em calculadoras e planilhas em computadores, as operações básicas são inseridas pelas teclas +, -, * e /. Potências podem ser colocadas com dois asteriscos ou com o sinal circunflexo. E, assim como boa parte das calculadoras hoje em dia, o resultado da última operação fica armazenado em uma variável chamada ans que pode ser chamada simplesmente digitando seu nome. Acompanhe a animação:

speedcrunch_potencia_ans
Imagem de uma conta simples no SpeedCrunch com potência e uso da variável ans

Um grande acervo de constantes científicas
#

Agora vamos para as áreas onde a calculadora se destaca. Há mais de 100 constantes científicas embutidas no programa, com a quantidade correta de significativos e com os valores padrão para unidades do Sistema Internacional de medidas (SI). Você pode ativar um menu para exibir todas as constantes, separadas por categoria, e clicar duas vezes para selecionar uma. Vamos selecionar a constante de Avogadro:

speedcrunch_constantes
Imagem do menu de constantes do SpeedCrunch

Uma das coisas que mais gosto em SpeedCrunch é a possibilidade de trabalhar apenas em teclado, sem recorrer ao mouse. Isso economiza muito tempo. Ao se pressionar Ctrl + Espaço um pequeno menu se abre e é possível selecionar as constantes por ali. Repare na animação abaixo que adicionei um painel para mostrar as teclas que estão sendo pressionadas para selecionar novamente a constante de Avogadro mas agora utilizando apenas o teclado:

speedcrunch_constantes_teclado
Imagem do menu de constantes do SpeedCrunch com uso do teclado

Bem mais rápido, concorda?

Várias formas de representação numérica
#

Repare no histórico que a constante é guardada no programa na forma 6,022140857e23, mas o resultado está na forma por extenso. O SpeedCrunch, assim como diversas outras calculadoras, utiliza a letra e (o input também aceita a letra maiúscula E) como sinônimo de potência de 10. Usualmente em ciências se trabalha com notação científica. Logo, podemos configurar a calculadora para exibir os resultados dessa maneira, seguindo os passos abaixo. Repare que há ainda outras formas de exibição no menu, mais comuns para a aŕea de ciência da computação (binário, hexadecimal e octal). O atalho, para não precisar ir pelos menus, é apertar F5.

speedcrunch_notacao_cientfica
Imagem do menu de notação científica do SpeedCrunch

Algo que acho bem útil é aumentar um pouco a separação entre dígitos a cada três dígitos. Isso facilita a leitura quando há muitas casas decimais ou quando se precisa copiar os valores para o papel:

speedcrunch_digit_grouping
Imagem do menu de agrupamento de dígitos do SpeedCrunch

Guardando suas próprias constantes
#

Sou químico de formação e um tipo de conta que frequentemente preciso fazer é calcular a massa molar de um dado composto. Seria muito útil poder guardar o resultado para reutilizar quando necessário. Isso pode ser feito, criando uma constante e armazenando o valor nela. Vamos calcular o valor da massa molar do cloreto de sódio, NaCl, com os valores presentes na calculadora e armazenar em uma constante chamada NaCl:

speedcrunch_constante_usuario
Imagem de uma conta simples no SpeedCrunch com criação de constante

Veja que basta digitar NaCl agora que o valor é reconhecido.

Isso pode ser feito em qualquer situação. Por exemplo, o raio da Terra, na linha do Equador, é de 6378 km. Eu posso criar uma constante e armazenar esse valor. Mas aí entra uma questão que ainda não nos preocupamos: e as unidades?

Trabalhando com unidades
#

Quando falei sobre constantes anteriormente, mostrei o menu e que os valores armazenados originalmente no programa estão em unidades SI. Então, as massas molares dos elementos químicos, por exemplo, estão em g/mol. Por padrão, o SpeedCrunch não associa unidades com os valores, ficando ao encargo do usuário saber as unidades e cuidar para não fazer operações inválidas do ponto de vista de análise dimensional. No entanto, podemos associar explicitamente uma unidade a um dado valor. Por exemplo, vamos criar uma constante chamada r_terra_eq para armazenar o raio da Terra na linha do Equador citado anteriormente:

speedcrunch_constante_unidade
Imagem de uma conta simples no SpeedCrunch com criação de constante com unidade

Repare que basta escrever a unidade e, quando necessário, o prefixo, que a calculadora reconhece a unidade e ainda expressa o resultado na unidade base SI. E mais, a calculadora armazenou esse resultado como um valor associado a unidades de dimensão. Dessa forma conversões podem ser feitas com outras unidades que a calculadora reconhece usando a palavra in. Se quisermos, por exemplo, saber a quantos raios terrestre equivale 1 unidade astronômica, basta fazermos:

speedcrunch_conversao_unidade
Imagem de uma conta simples no SpeedCrunch com conversão de unidade

Ou seja, mais de 22 mil Terras cabem em uma unidade astronômica. Essa conversão só é possível pois ambas as unidades são de distância. O programa dá erro se uma conversão não válida for passada. Experimente!

Caso se incomode com o excesso de casas decimais no resultado, você pode limitar seguindo a animação abaixo, onde irei limitar a 8 dígitos, mais que o suficiente para boa parte dos casos:

speedcrunch_precision
Imagem de uma conta simples no SpeedCrunch com ajuste de precisão

E caso se incomode em ter que digitar por extenso as unidades, você pode associar as abreviações usuais a cada unidade. Por exemplo:

speedcrunch_abreviacao_unidades
Imagem de uma conta simples no SpeedCrunch com abreviação de unidades

A calculadora foi bem programada para fazer internamente conversões de unidade de forma a dar resultados que façam sentido. Vamos testar usando a boa e velha equação dos gases ideais. Lembrando das aulas de ciências, sabemos que 1 mol de um gás ideal nas Condições Normais de Temperatura e Pressão (CNTP, 1 atm e 0 °C que equivale a 273,15 K) possui volume de aproximadamente 22,4 litros. Lembrando:

$$ PV = nRT \therefore V = \frac{nRT}{P} $$

Temos o valor de R na calculadora mas ele está em unidades SI. Um dos poucos inconvenientes dessa calculadora é que os valores das constantes não trazem por padrão as unidades associadas, então vamos associar a unidade ao valor e armazenar o resultado em uma constante chamada R:

speedcrunch_R_unidade
Imagem de uma conta simples no SpeedCrunch com criação da constante R com unidade

Agora vamos associar a uma variável chamada V o resultado da conta que queremos. Repare que os valores estão sendo inseridos com as respectivas unidades:

speedcrunch_conta_V
Imagem de uma conta simples no SpeedCrunch com cálculo do volume de um mol de gás ideal

Atmosfera não é uma unidade SI, mas repare que a calculadora fez as devidas conversões e expressou o resultado na unidade SI, metro cúbico. Mas podemos facilmente solicitar a conversão para litro:

speedcrunch_V_liter
Imagem de uma conta simples no SpeedCrunch com conversão do volume para litro

Obtivemos o resultado esperado!

Funções
#

Aqueles mais atentos podem ter achado estranho anteriormente quando passei a temperatura já em Kelvin para calcular o volume do gás ideal. Se a calculadora lida com conversões, por que não colocar a temperatura em graus Celsius e deixar que a mesma converta para Kelvin?

Trata-se de uma limitação da calculadora. Na verdade, para ser justo, de boa parte das calculadoras disponíveis. Elas trabalham bem com conversões que podem ser feitas pela simples multiplicação de um fator de conversão. No entanto, não fazem a operação quando a conversão envolve operações de soma ou diferença. Na realidade, são poucas as conversões que não envolvem apenas um fator de conversão e dentre essas poucas se destacam as conversões de temperatura. Assim, a única unidade de temperatura que a calculadora reconhece é Kelvin, conforme explicado no guia da calculadora disponível no site do projeto.

Mas nada que não possamos resolver. E para resolver utilizaremos o conceito de função.

Primeiro, vamos ver as funções já presentes na calculadora. Há dezenas e podem ser acessadas pelo menu ou diretamente digitando o nome:

speedcrunch_funcoes
Imagem do menu de funções do SpeedCrunch

Repare na animação acima que podemos consultar as funções existentes pelo menu. Se clicarmos duas vezes em uma função, ela vai para a linha de entrada. Podemos também digitar o nome da função e utilizar diretamente, na animação usamos a função sqrt para calcular a raiz quadrada de 9.

Definindo suas próprias funções
#

Claro que podemos definir nossa própria função. Então, vamos definir uma função que calcule a temperatura em Kelvin a partir de uma temperatura em Celsius. Sabemos que a para converter de Celsius para Kelvin basta somar 273,15 ao valor em Celsius. Assim, vamos definir uma função T_kelvin(T_celsius) = (T_celsius + 273,15) kelvin. O “kelvin” após a operação entre parênteses é para que o resultado saia com a unidade associada, pois planejo usar o resultado depois. Vejamos:

speedcrunch_funcao_T_kelvin
Imagem de uma conta simples no SpeedCrunch com definição da função T_kelvin

Teste passando como argumento o valor 25. A resposta tem que ser 298,15 K.

Podemos também criar funções com mais de um argumento, bastando separá-los por ;. Assim, toda a conta anteriormente feita para calcular o volume de um mol de um gás ideal pode ser simplificada se criarmos uma função que receba a pressão, o número de mol e a temperatura, com suas respectivas unidades. Lembrando que já definimos R nesse tutorial com sua unidade no SI, então iremos aproveitá-lo na definição da nossa função, que chamaremos de V_ideal:

speedcrunch_funcao_V_ideal
Imagem de uma conta simples no SpeedCrunch com definição da função V_ideal

Repare na animação que podemos inclusive passar a função que criamos para converter de temperatura em Celsius para Kelvin, pois definimos a função com unidade.

A função fica salva para posterior uso sempre que precisar. Constantes, variáveis e funções criadas pelo usuário podem ser consultadas:

speedcrunch_criacoes_usuario
Imagem do menu de consulta às criações do usuário no SpeedCrunch

Avaliação geral, considerações finais e como colaborar com o projeto
#

SpeedCrunch é uma excelente calculadora científica para desktop, se diferenciando das demais por lidar com unidades e por ter destaque visual para palavras reservadas, funções e variáveis (syntax highlighting). É bastante personalizável, tendo muito mais opções além das mostradas aqui.

É excelente para estudantes que desejam confirmar se suas contas envolvendo conversões estão corretas. E, como docente, utilizo várias vezes em aula quando tenho projeção disponível para realizar contas com os alunos, especialmente pela facilidade de discutir operações com unidades, notação científica e até mesmo algarismos significativos.

No meu uso apenas sinto falta de as constantes armazenadas já não serem inseridas com suas unidades por padrão e de não ter como exportar as constantes e funções criadas (mas isso só afeta aqueles que usam mais de um computador, em casa e no trabalho, por exemplo). Seria ótimo também ter uma versão mobile.

No entanto, tais limitações são ínfimas. E devemos lembrar que se trata de um programa gratuito, o projeto se mantém por doações e você pode colaborar pelo site do projeto. Por ser de código-aberto também é possível colaborar com correções, dúvidas e sugestões no repositório do projeto.

Até a próxima!

Relacionados

Sobre