¿Hay algo como esto que admita operaciones básicas, algunas funciones integradas como atan(), y posiblemente funciones personalizadas a través de secuencias de comandos?
bcy dcson las 2 calculadoras que usaré a menudo cuando necesite acceso desde una terminal.
Ejemplos
$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
Luego puede escribir sus preguntas:
2
2
5+5
10
Cuando haya terminado, puede salir con un Ctrl+ C.
Prueba de conducción
Estas calculadoras son bastante ricas en funciones.
escalada
scale=5
193 * 1/3
64.33333
ecuaciones
principal=100
ir = 0.05
years = 5
futurevalue = principal * (1 + ir)^years
futurevalue
127.62800
$ calc
C-style arbitrary precision calculator (version 2.12.4.4)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
; 10+10
20
; 8*6-4
44
; 8*(6-4)
16
;
Puede usar las flechas arriba / abajo para ver los comandos anteriores y también tiene ayuda interactiva.
; help
Te da esto:
For more information while running calc, type help followed by one of the
following topics:
topic description
----- -----------
intro introduction to calc
overview overview of calc
help this file
assoc using associations
builtin builtin functions
command top level commands
config configuration parameters
custom information about the custom builtin interface
define how to define functions
environment how environment variables effect calc
errorcodes calc generated error codes
expression expression sequences
file using files
history command history
interrupt how interrupts are handled
list using lists
mat using matrices
...
Como esta no es una pregunta específica de Ubuntu, ¿tal vez se vincule a calc upstream en lugar de al paquete de Ubuntu?
mattdm
@mattdm - gracias agregó ese enlace, dejé el otro enlace simplemente porque estaba enlazando a una página de manual en calc, no necesariamente el paquete ubuntu.
slm
6
Hay muchas respuestas a su pregunta ...
Los simples que podrías hacer en el shell.
$ echo $((8*(6-4)))
16
Como un programa dedicado existe bc.
$ echo "8*(6-4)" | bc
16
Funciones personalizadas a través de secuencias de comandos? Bueno, los scripts de shell y bc los tienen, de alguna manera. Depende de qué tan lejos quieras llevarlo.
¿Por qué no Python? Es facil de aprender.
$ python
>>> from math import atan
>>> 8*(6-4)+atan(0)
16.0
De hecho, he estado usando Python para esto últimamente, pero esa es la razón por la que quiero algo más. Se vuelve molesto tener que importar algo para cada función. Esperaba más algo autónomo, como Speedcrunch ( i.imgur.com/Cn6GejG.png ), pero obviamente la línea de comando.
Lucas Phillips
1
Puede resolver el problema de importación definiendo la variable de entorno PYTHONSTARTUP y preimportando cosas en el archivo señalado por la variable.
mkc
5
En zsh:
$ autoload zcalc # best in ~/.zshrc
$ zcalc
1> 8*(6-4)
16
2> $1*2
32
Aquí hay un pequeño truco de bash que te permitirá hacer operaciones aritméticas simples directamente en la línea de comandos.
alias calc='set -o noglob; docalc'
function docalc { perl -e "print STDOUT $*, \"\\n\""; set +o noglob; }
Entonces puedes hacer, por ejemplo,
calc 3 * 15 + 5
Lamentablemente no funciona bien con paréntesis. (Si no recuerdo mal, puedes hacer que tcsh los acepte también, pero no podría persuadir a bash para que lo haga).
PD. Puede confiar en bash para la aritmética, reemplazando la perlllamada con echo $(( $* )); pero eso le dará división entera para 5/6, etc. La aritmética de Perl es más útil.
Alternativa: si lo único que necesita es carne de res con pitón import math, el siguiente es su amigo:
% alias calc='python -i -c "from math import *"'
% calc
>>> 5 * atan(0.25)
$ python3
> from math import *
> 213/53*exp(0.8)/asin(3)
9.645423462356044
Tenga la ventaja de que puede escribir todo, ya hay muchas funciones (también podría importar cmathsi necesita números complejos), no necesita establecer ninguna precisión para la mayoría de los casos y Python ya está instalado en la mayoría de las instalaciones de Linux.
Python 3.x es mejor para una calculadora genérica que Python 2.x, porque Python 3.x realiza divisiones de coma flotante si el resultado no es un int.
$ python3
> 3/2
1.5
$ python2
> 3/2
1
El principal inconveniente, al menos para mí, es que los flotadores no se imprimen en la notación científica si no son muy grandes o pequeños, sin una cadena de formato:
Hay muchas respuestas a su pregunta ...
Los simples que podrías hacer en el shell.
Como un programa dedicado existe
bc
.Funciones personalizadas a través de secuencias de comandos? Bueno, los scripts de shell y bc los tienen, de alguna manera. Depende de qué tan lejos quieras llevarlo.
¿Por qué no Python? Es facil de aprender.
fuente
En
zsh
:fuente
Insecto tiene versiones basadas en web y en terminal:
fuente
Maxima CAS :
HTH
fuente
Aquí hay un pequeño truco de bash que te permitirá hacer operaciones aritméticas simples directamente en la línea de comandos.
Entonces puedes hacer, por ejemplo,
Lamentablemente no funciona bien con paréntesis. (Si no recuerdo mal, puedes hacer que tcsh los acepte también, pero no podría persuadir a bash para que lo haga).
PD. Puede confiar en bash para la aritmética, reemplazando la
perl
llamada conecho $(( $* ))
; pero eso le dará división entera para5/6
, etc. La aritmética de Perl es más útil.Alternativa: si lo único que necesita es carne de res con pitón
import math
, el siguiente es su amigo:fuente
Otra forma es usar un intérprete como Python 3:
Tenga la ventaja de que puede escribir todo, ya hay muchas funciones (también podría importar
cmath
si necesita números complejos), no necesita establecer ninguna precisión para la mayoría de los casos y Python ya está instalado en la mayoría de las instalaciones de Linux.Python 3.x es mejor para una calculadora genérica que Python 2.x, porque Python 3.x realiza divisiones de coma flotante si el resultado no es un int.
El principal inconveniente, al menos para mí, es que los flotadores no se imprimen en la notación científica si no son muy grandes o pequeños, sin una cadena de formato:
fuente