Cálculos aritméticos en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

La línea de comandos de Linux ofrece herramientas poderosas para realizar cálculos aritméticos. Una de las calculadoras más versátiles disponibles en Linux es bc (Calculadora Básica), que permite a los usuarios realizar operaciones matemáticas tanto simples como complejas directamente desde la terminal.

En este laboratorio (LabEx), aprenderás cómo utilizar el comando bc para realizar diversos cálculos aritméticos en Linux. Comenzarás con operaciones básicas y progresivamente avanzarás hacia expresiones más complejas. Las habilidades que adquirirás serán útiles para la escritura de scripts, el procesamiento de datos y la resolución eficiente de problemas computacionales en un entorno Linux.

Al final de este laboratorio (LabEx), serás capaz de:

  • Realizar operaciones aritméticas básicas utilizando bc
  • Manejar expresiones matemáticas complejas con múltiples operaciones
  • Utilizar variables y controlar la precisión en los cálculos
  • Crear scripts que automatizan cálculos matemáticos

Comencemos a explorar las capacidades de la calculadora bc de Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/bc("Arithmetic Calculations") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/bc -.-> lab-271229{{"Cálculos aritméticos en Linux"}} linux/touch -.-> lab-271229{{"Cálculos aritméticos en Linux"}} linux/chmod -.-> lab-271229{{"Cálculos aritméticos en Linux"}} linux/cd -.-> lab-271229{{"Cálculos aritméticos en Linux"}} linux/apt -.-> lab-271229{{"Cálculos aritméticos en Linux"}} linux/nano -.-> lab-271229{{"Cálculos aritméticos en Linux"}} end

Aritmética básica con bc

En este paso, aprenderemos cómo utilizar el comando bc para realizar operaciones aritméticas básicas en Linux. El comando bc es una poderosa herramienta de cálculo que te permite realizar cálculos directamente desde la terminal.

Instalación de bc

Primero, asegúrate de que la calculadora bc esté instalada en tu sistema:

sudo apt-get update
sudo apt-get install -y bc

Deberías ver una salida que indique el proceso de instalación. Una vez instalado, puedes verificar que funciona escribiendo:

bc --version

Deberías ver información sobre la versión de la calculadora bc.

Creación de un script simple de suma

Ahora, creemos un script simple para realizar una operación de suma utilizando bc:

  1. Navega al directorio del proyecto:
cd ~/project
  1. Crea un nuevo archivo de script llamado simple_calc.sh:
touch simple_calc.sh
  1. Abre el archivo con el editor nano:
nano simple_calc.sh
  1. Añade el siguiente contenido al archivo:
#!/bin/zsh

## Suma simple utilizando bc
echo "20 + 5" | bc
  1. Guarda el archivo presionando Ctrl+O, luego Enter, y sal de nano con Ctrl+X.

  2. Haz el script ejecutable:

chmod +x simple_calc.sh
  1. Ejecuta el script:
./simple_calc.sh

Deberías ver la siguiente salida:

25

Esto demuestra cómo bc toma la expresión "20 + 5" como entrada y produce el resultado 25.

Comprensión de cómo funciona bc

El comando bc es una calculadora orientada a tuberías (pipeline). Utilizamos el símbolo de tubería (|) para enviar expresiones a bc para su evaluación. La sintaxis básica es:

echo "expression" | bc

También puedes probar otras operaciones básicas:

echo "10 - 3" | bc ## Resta
echo "4 * 6" | bc  ## Multiplicación
echo "15 / 3" | bc ## División

Ejecuta estos comandos en tu terminal para ver los resultados:

echo "10 - 3" | bc
echo "4 * 6" | bc
echo "15 / 3" | bc

La salida debería ser:

7
24
5

Cálculos de punto flotante con bc

En este paso, aprenderemos cómo realizar cálculos de punto flotante utilizando la calculadora bc. Por defecto, bc realiza aritmética de enteros, pero podemos utilizar el parámetro scale para controlar la precisión decimal.

Comprensión del parámetro scale

El parámetro scale en bc determina el número de decimales que se utilizarán en los cálculos. Veamos cómo funciona:

  1. Prueba este comando para realizar una división sin establecer la escala:
echo "5 / 2" | bc

La salida será:

2

Observa que el resultado se trunca a un entero, no se redondea.

  1. Ahora, establezcamos una escala para obtener un resultado más preciso:
echo "scale=2; 5 / 2" | bc

La salida será:

2.50

scale=2 le indica a bc que calcule el resultado con 2 decimales.

Creación de un script para cálculos complejos

Creemos un script que demuestre el uso de scale y realice cálculos más complejos:

  1. Navega al directorio del proyecto si no estás ya allí:
cd ~/project
  1. Crea un nuevo archivo de script llamado complex_calc.sh:
touch complex_calc.sh
  1. Abre el archivo con el editor nano:
nano complex_calc.sh
  1. Añade el siguiente contenido al archivo:
#!/bin/zsh

## Cálculo complejo utilizando bc con escala
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Resultado: $result"

Este script:

  • Establece la escala en 2 decimales
  • Realiza una multiplicación: 10.5 * 4.2
  • Realiza una división: 5.5 / 2
  • Calcula una potencia: 3^2 (3 elevado a la potencia de 2)
  • Combina estas operaciones con sumas y restas
  • Almacena el resultado en una variable llamada result
  • Imprime el resultado con una etiqueta descriptiva
  1. Guarda el archivo presionando Ctrl+O, luego Enter, y sal de nano con Ctrl+X.

  2. Haz el script ejecutable:

chmod +x complex_calc.sh
  1. Ejecuta el script:
./complex_calc.sh

Deberías ver una salida similar a:

Resultado: 46.35

Desglosemos el cálculo:

  • 10.5 * 4.2 = 44.1
  • 5.5 / 2 = 2.75
  • 3^2 = 9
  • 44.1 - 2.75 + 9 = 50.35

Espera, el resultado esperado debería ser 50.35, pero obtuvimos 46.35. Esto se debe a que el cálculo en el script necesita ser corregido. Vamos a arreglarlo:

nano complex_calc.sh

Actualiza el cálculo:

#!/bin/zsh

## Cálculo complejo utilizando bc con escala
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Resultado: $result"

## Desglosando el cálculo
part1=$(echo "scale=2; 10.5 * 4.2" | bc)
part2=$(echo "scale=2; 5.5 / 2" | bc)
part3=$(echo "3^2" | bc)

echo "Parte 1 (10.5 * 4.2): $part1"
echo "Parte 2 (5.5 / 2): $part2"
echo "Parte 3 (3^2): $part3"
echo "Final: $part1 - $part2 + $part3 = $(echo "scale=2; $part1 - $part2 + $part3" | bc)"

Guarda los cambios y ejecuta el script de nuevo:

./complex_calc.sh

Este script actualizado mostrará el desglose de cada parte del cálculo, lo que facilita la comprensión de cómo se obtiene el resultado final.

Trabajando con variables en bc

En este paso, aprenderemos cómo utilizar variables dentro de bc para hacer nuestros cálculos más flexibles y poderosos. La calculadora bc nos permite definir variables y reutilizarlas en múltiples cálculos.

Usando variables en bc de forma interactiva

Primero, exploremos cómo usar variables directamente en el modo interactivo de bc:

  1. Inicia la calculadora bc en modo interactivo:
bc
  1. Define una variable y realiza cálculos con ella:
x = 10
x + 5
x * 2

Deberías ver:

15
20
  1. Puedes definir múltiples variables y usarlas juntas:
y = 7
x + y
x * y

La salida será:

17
70
  1. Sal del modo interactivo presionando Ctrl+D o escribiendo quit.

Creando un script con variables de bc

Ahora, creemos un script que demuestre el uso de variables en cálculos de bc:

  1. Navega al directorio del proyecto si no estás ya allí:
cd ~/project
  1. Crea un nuevo archivo de script llamado variable_calc.sh:
touch variable_calc.sh
  1. Abre el archivo con el editor nano:
nano variable_calc.sh
  1. Añade el siguiente contenido al archivo:
#!/bin/zsh

## Script para demostrar el uso de variables en bc

## Definir valores de entrada
radius=5
height=10

## Calcular el volumen del cilindro (π * r² * h)
volume=$(echo "scale=2; 3.14159 * $radius * $radius * $height" | bc)

## Calcular el área de la superficie del cilindro (2π * r² + 2π * r * h)
surface_area=$(echo "scale=2; 2 * 3.14159 * $radius * $radius + 2 * 3.14159 * $radius * $height" | bc)

## Mostrar resultados
echo "Propiedades del cilindro con radio $radius y altura $height:"
echo "Volumen: $volume unidades cúbicas"
echo "Área de la superficie: $surface_area unidades cuadradas"

Este script:

  • Define variables para el radio y la altura de un cilindro
  • Calcula el volumen utilizando la fórmula π _ r² _ h
  • Calcula el área de la superficie utilizando la fórmula 2π _ r² + 2π _ r * h
  • Muestra los resultados con las unidades adecuadas
  1. Guarda el archivo presionando Ctrl+O, luego Enter, y sal de nano con Ctrl+X.

  2. Haz el script ejecutable:

chmod +x variable_calc.sh
  1. Ejecuta el script:
./variable_calc.sh

Deberías ver una salida similar a:

Propiedades del cilindro con radio 5 y altura 10:
Volumen: 785.39 unidades cúbicas
Área de la superficie: 471.23 unidades cuadradas

Usando variables dentro de bc

También podemos definir y usar variables completamente dentro de bc utilizando un enfoque de múltiples líneas. Creemos otro script para demostrar esto:

  1. Crea un nuevo archivo:
nano bc_variables.sh
  1. Añade el siguiente contenido:
#!/bin/zsh

## Script para demostrar el uso de variables dentro de bc

bc << EOF
scale=2
radius = 5
height = 10
pi = 3.14159

## Calcular el volumen del cilindro
volume = pi * radius^2 * height
print "Volumen: ", volume, " unidades cúbicas\n"

## Calcular el área de la superficie del cilindro
surface_area = 2 * pi * radius^2 + 2 * pi * radius * height
print "Área de la superficie: ", surface_area, " unidades cuadradas\n"
EOF

Este script:

  • Utiliza un "here document" (EOF) para enviar múltiples líneas a bc
  • Define todas las variables dentro de bc mismo
  • Realiza cálculos utilizando estas variables
  • Utiliza el comando print en bc para mostrar los resultados
  1. Guarda el archivo, hazlo ejecutable y ejecútalo:
chmod +x bc_variables.sh
./bc_variables.sh

La salida debería ser similar al script anterior, pero demuestra un enfoque diferente para usar variables con bc.

Creación de un script práctico de calculadora con bc

En este último paso, crearemos un script de calculadora más práctico que reúna todos los conceptos que hemos aprendido. Este script permitirá a los usuarios realizar diversos cálculos seleccionando opciones de un menú.

Construcción de una calculadora interactiva

Creemos un script que funcione como una calculadora interactiva:

  1. Navega al directorio del proyecto si no estás ya allí:
cd ~/project
  1. Crea un nuevo archivo de script llamado calculator.sh:
touch calculator.sh
  1. Abre el archivo con el editor nano:
nano calculator.sh
  1. Añade el siguiente contenido al archivo:
#!/bin/zsh

## Script de calculadora interactiva utilizando bc

## Función para calcular el área de un círculo
calculate_circle_area() {
  read -p "Ingrese el radio del círculo: " radius
  area=$(echo "scale=2; 3.14159 * $radius * $radius" | bc)
  echo "El área del círculo con radio $radius es: $area unidades cuadradas"
}

## Función para calcular el área de un rectángulo
calculate_rectangle_area() {
  read -p "Ingrese la longitud del rectángulo: " length
  read -p "Ingrese el ancho del rectángulo: " width
  area=$(echo "scale=2; $length * $width" | bc)
  echo "El área del rectángulo con longitud $length y ancho $width es: $area unidades cuadradas"
}

## Función para resolver la ecuación cuadrática ax² + bx + c = 0
solve_quadratic() {
  read -p "Ingrese el coeficiente a: " a
  read -p "Ingrese el coeficiente b: " b
  read -p "Ingrese el coeficiente c: " c

  ## Calcular el discriminante
  discriminant=$(echo "scale=4; ($b * $b) - (4 * $a * $c)" | bc)

  ## Verificar el discriminante
  if (($(echo "$discriminant < 0" | bc -l))); then
    echo "La ecuación no tiene soluciones reales (discriminante < 0)"
  elif (($(echo "$discriminant == 0" | bc -l))); then
    ## Una solución
    x=$(echo "scale=4; -$b / (2 * $a)" | bc)
    echo "La ecuación tiene una solución: x = $x"
  else
    ## Dos soluciones
    x1=$(echo "scale=4; (-$b + sqrt($discriminant)) / (2 * $a)" | bc -l)
    x2=$(echo "scale=4; (-$b - sqrt($discriminant)) / (2 * $a)" | bc -l)
    echo "La ecuación tiene dos soluciones:"
    echo "x1 = $x1"
    echo "x2 = $x2"
  fi
}

## Bucle principal del programa
while true; do
  echo ""
  echo "===== Menú de la calculadora BC ====="
  echo "1. Calcular el área de un círculo"
  echo "2. Calcular el área de un rectángulo"
  echo "3. Resolver la ecuación cuadrática (ax² + bx + c = 0)"
  echo "4. Salir"
  echo ""

  read -p "Ingrese su elección (1-4): " choice

  case $choice in
    1) calculate_circle_area ;;
    2) calculate_rectangle_area ;;
    3) solve_quadratic ;;
    4)
      echo "Saliendo de la calculadora. ¡Adiós!"
      exit 0
      ;;
    *) echo "Opción no válida. Inténtelo de nuevo." ;;
  esac
done

Este script:

  • Define funciones para diferentes tipos de cálculos
  • Proporciona una interfaz de menú para que el usuario seleccione el cálculo deseado
  • Utiliza bc para todas las operaciones matemáticas
  • Maneja fórmulas matemáticas más complejas como la ecuación cuadrática
  1. Guarda el archivo presionando Ctrl+O, luego Enter, y sal de nano con Ctrl+X.

  2. Haz el script ejecutable:

chmod +x calculator.sh
  1. Ejecuta el script de la calculadora:
./calculator.sh
  1. Prueba cada opción del menú:
    • Elige la opción 1 e ingresa un radio para calcular el área de un círculo
    • Elige la opción 2 e ingresa la longitud y el ancho para calcular el área de un rectángulo
    • Elige la opción 3 e ingresa los coeficientes para resolver una ecuación cuadrática (prueba a=1, b=5, c=6)
    • Elige la opción 4 para salir de la calculadora

Por ejemplo, si eliges la opción 3 e ingresas a=1, b=5, c=6, deberías ver una salida similar a:

La ecuación tiene dos soluciones:
x1 = -2.0000
x2 = -3.0000

Este script interactivo demuestra cómo se puede incorporar bc en programas más complejos para resolver una variedad de problemas matemáticos.

Resumen

En este laboratorio, has aprendido cómo utilizar la calculadora de línea de comandos bc en Linux para realizar diversas operaciones aritméticas.

A continuación, se presenta un resumen de lo que has logrado:

  1. Operaciones aritméticas básicas:

    • Instalaste y verificaste la calculadora bc
    • Creaste un script simple para realizar sumas
    • Aprendiste cómo utilizar el operador de tubería (pipe) para enviar expresiones a bc
    • Practicaste operaciones básicas como suma, resta, multiplicación y división
  2. Cálculos de punto flotante:

    • Utilizaste el parámetro scale para controlar la precisión decimal
    • Creaste un script para cálculos más complejos que involucran múltiples operaciones
    • Comprendiste el orden de las operaciones y cómo utilizar paréntesis para controlar el flujo de cálculo
  3. Trabajo con variables:

    • Utilizaste variables de shell en cálculos de bc
    • Exploraste el modo interactivo de bc para definir y utilizar variables
    • Creaste scripts que utilizan variables para cálculos más flexibles
    • Aprendiste cómo utilizar "here documents" para operaciones de bc de múltiples líneas
  4. Aplicaciones prácticas:

    • Construiste un script de calculadora interactiva con una interfaz de menú
    • Implementaste cálculos geométricos comunes
    • Resolviste ecuaciones más complejas como las fórmulas cuadráticas
    • Combinaste todos los conceptos aprendidos en una aplicación útil

Estas habilidades te permiten realizar operaciones matemáticas de manera eficiente en la línea de comandos de Linux y automatizar cálculos en tus scripts. La calculadora bc es una herramienta poderosa que puede manejar todo, desde aritmética simple hasta fórmulas matemáticas complejas, lo que la convierte en una utilidad esencial para administradores de sistemas, desarrolladores y analistas de datos que trabajan en un entorno Linux.

A medida que sigas trabajando con Linux, descubrirás que combinar herramientas de línea de comandos como bc con scripting de shell puede ayudarte a resolver una amplia gama de problemas de manera más eficiente.