Linux|Unix: Haciendo operaciones

Este es un post bastante rápido donde les explico cómo hacer algunas operaciones en el prompt del sistema operativo. Veamos cómo se puede realizar esto de manera muy fácil.

Este comando existe tanto en Linux como en Unix, pero al parecer está más limitado en este último sistema operativo, sugiero revisar la ayuda de este a través del comando man.

Entrando y saliendo de la herramienta

Para realizar estas operaciones, usaremos el comando bc de Linux, herramienta muy útil para realizarlas de manera fácil.

Primero para ejecutarla sólo hay que teclear el comando seguido de un Enter: con lo que se verá algo como lo siguiente:

orlando_olguin|ooo-laptop|~ $ 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'.

Para salir de la herramienta, sólo hay que teclear el comando quit:

quit
orlando_olguin|ooo-laptop|~ $

Para entrar sin el mensaje de la versión y datos de copyright, se puede usar la opción -q al iniciar:

orlando_olguin|ooo-laptop|~ $ bc -q

10*2
20

quit
orlando_olguin|ooo-laptop|~ $

Realizando operaciones aritméticas

En esta, sólo se tiene que teclear la operación a realizar seguida de un Enter.

Se pueden agregar más Enter para separar las operaciones.

Se pueden tener espacios entre los operadores y los números sin problema:

orlando_olguin|ooo-laptop|~ $ 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'.

1 + 2
3

3-5
-2

-2* -2
4

2^10
1024

4/2.5
1

Configurando decimales

¿Notaron que la última operación imprimió sólo un entero? Esto se puede arreglar fácilmente con el comando:

scale=no_decimales

Así, la misma operación se verá como sigue:

scale=2
4/2.5
1.60

Reglas de precedencia de operadores

Como todo programa para este tipo de operaciones, las reglas de precedencia de operadores se respeta:

14+5*2
24

(14+5)*2
38

Funciones

De manera natural, viene la función de raíz cuadrada configurada al momento de entrar a la herramienta:

sqrt (10)
3.16

Sin embargo al entrar con la opción -l, configura la función scale a 20 decimales y se activan las funciones:

s (x) – Seno del ángulo x que está en radianes.
c (x) – Coseno del ángulo x que está en radianes.
a (x) – Arcotangente del ángulo x que está en radianes.
l (x) – Logaritmo natural de x.
e (x) – Valor exponencial de x.
j (n,x) – Función Bessel de un entero de orden n de x.

Estas funciones con las operaciones básicas que ya se vieron, pueden hacer que generemos distintas funciones trigonométricas:

s(90)                   <- Seno de 90
.89399666360055789051

c(90)                   <- Coseno de 90
-.44807361612917015236

a(90)                   <- Arcotangente de 90
1.55968567289728914662

s(90) / c(90)           <- Tangente de 90
-1.99520041220824202529

c(90) / s(90)           <- Cotangente de 90
-.50120278338015325014

(s(90) / c(90)) / s(90) <- Secante de 90
-2.23177612785779633480

(c(90) / s(90)) / c(90) <- Cosecante de 90
1.11857240716370829984

l(10)                   <- Logaritmo natural de 10
2.30258509299404568401

e(10)                   <- e a la 10
22026.46579480671651695790

Uso de variables

Se pueden usar variables también configurándolas con valores y resultados de operaciones, haciendo también operaciones con ellas, el formato es:

variable=valor

Por ejemplo:

a=10
a
10

b=2

a+b
12

a/b
5.00000000000000000000

x=90

s(x)
.89399666360055789051

Adicionales

Como no lo he necesitado, no he documentado más opciones que tiene esta útil herramienta, les sugiero ver el comando man para este, para ver temas como:

  • Condicionales.
  • Ciclos.
  • Definición de funciones personales.
  • Programación.

Ejecución en línea

Como parte final, se pueden realizar las mismas operaciones como comando en línea sin tener que entrar a la herramienta, con el apoyo del comando echo:

orlando_olguin|ooo-laptop|~ $ echo 10+2 | bc
12

orlando_olguin|ooo-laptop|~ $ echo 9/2 | bc
4

orlando_olguin|ooo-laptop|~ $ echo "scale=5; 9/2; s(90)" | bc -l
4.50000
.89399

Si la información de este post te ha sido de utilidad o quieres que agregue algo más, deja por favor un comentario, contestaré a la brevedad.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: