domingo, 21 de enero de 2018

Calculadora matemática en nuestro terminal de comandos en Ubuntu


Hola señores, os traigo este post para hablaros de la calculadora del terminal de comandos.
Si amigos, si queréis hacer cualquier operación aritmética no hace falta que ejecutéis un programa con interfaz gráfica.
Hay una pequeña aplicación que se ejecuta en el mismo terminal de comandos que se llama "bc" y viene ya instalada por defecto en la distribución Ubuntu.



Como he comentado anteriormente podéis realizar cualquier operación aritmética, funciones trigonométricas, declarar variables, definir todo tipo de funciones.
De echo "bc" no es una simple calculadora, se define como un lenguaje que admite números de precisión arbitrarios con ejecución interactiva de enunciados. Tiene algunas similitudes en la sintaxis con el lenguaje de programación C. Una biblioteca matemática estándar está disponible por opción en la línea de comando. Si se solicita, la biblioteca matemática se define antes de procesar cualquier archivo. "bc" comienza procesando el código de todos los archivos enumerados en la línea de comandos en el orden indicado. Después de que se hayan procesado todos los archivos, "bc" lee desde la entrada estándar. Todo el código se ejecuta a medida que se lee.

Voy a enseñaros unos pequeños ejemplos en imágenes:

Abrimos una terminal de comandos y ejecutamos la aplicación "bc":

$ bc


Una vez ejecutado el programa queda a la espera de entrada de datos.
Vamos a por las operaciones aritméticas básicas:
Escribiremos 5+6 y pulsaremos enter para que nos imprima el resultado.


Vamos a utilizar los paréntesis para agrupar operaciones y usaremos la suma(+), la resta (-), la multiplicación (*), la división (/), la potencia (^), el resto de una división (%) y la raíz cuadrada (sqrt).
(5*4)+(sqrt(4))+(8/4)+(43-11)+(7%6)+(2^2) pulsamos enter y obtendremos el resultado.


Utilizaremos el punto para los decimales, y el comando "scale" para definir el número de decimales mostrados en los resultados.


 También podemos definir variables.

Para salir de la aplicación escribiremos "quit", evidentemente al salir de la aplicación vamos a perder todas las variables definidas.
Si volvemos a entrar en la aplicación "bc", pero esta vez escribimos:
$ bc -l

Cargaremos la biblioteca matemática de "bc" y ahora podremos operar con una serie de funciones trigonométricas: Seno de x s(x), Coseno de x c(x), Arco tangente de x a(x), Logaritmo natural de x l(x), Exponencial de x e(x), función de Bessel de orden n en x j(n,x).


La función Tangente de x no está definida en la biblioteca de bc, ningún problema, vamos a definirla nosotros. Sabemos que Tangente es el Seno/Coseno.


Vamos a probar la función que hemos definido.
 

Comprobamos que funciona perfectamente. Ahora queremos guardar esta función que nosotros hemos creado en una librería o archivo nuestro. Ya que en cuando salgamos de la aplicación "bc" vamos a perderla.
¿Como lo hacemos?, pues abrimos cualquier editor de texto, como puede ser el Vim, el nano, o el editor gráfico gedit y hacéis un copia y pega de la función que habéis creado y guardáis el archivo con el nombre que queráis pero con extensión .bc. Este archivo debe de encontrarse en el directorio donde ejecutéis la aplicación "bc" para que lo reconozca. A continuación unas imágenes del proceso:




Ahora volvemos a ejecutar la aplicación "bc", pero además queremos cargar nuestro archivo o librería de funciones creado por nosotros. Entonces escribiremos en la terminal:

$ bc -l miFuncionTang.bc

Os vuelvo a recalcar que el archivo, en mi caso miFuncionTang.bc, debe de encontrarse en el mismo directorio donde ejecutamos la aplicación "bc" para que lo reconozca, sinó deberemos escribirle la ruta donde se encuentra.
Ejemplo gráfico:


También podemos ejecutar condicionales if y los bucles for y while.

Primero definiré mis funciones con condicionales if y con los bucles for y while y las guardaré en mi archivo "miFuncionTang.bc", como en la imagen siguiente:


Ahora vamos a ejecutar el programa "bc" cargando mi archivo de funciones y probaremos cada una de las tres funciones definidas con todas las opciones posibles. En mi caso he creado unas funciones donde se calcula el factorial de un número en los distintos bucles y condicionales. Y aquí la imagen del resultado:


En Linux das una patada a una piedra y te salen 100 programas preinstalados que no sabías ni que existían y además de gran utilidad.

Espero os sirva de utilidad este pequeño programa y nos vemos en el próximo artículo.
Saludos.

No hay comentarios:

Publicar un comentario

Gracias por participar en este blog.