Aspecto matemático de la programación de shell de Linux - Parte IV


En esta publicación discutiré los guiones desde el punto de vista matemático y numérico. Aunque publiqué un script más complejo (Calculadora simple) en la publicación anterior, pero por parte del usuario era difícil de entender y, por lo tanto, pensé en hacer que la gente aprenda el otro lado útil del aprendizaje en paquetes pequeños.

Antes de este artículo, se publicaron tres artículos de Shell Scripting Series y son:

  1. Comprender el shell de Linux y la secuencia de comandos básica del shell - Parte I
  2. 5 scripts de Shell para aprender a programar en Shell - Parte II
  3. Navegando por el mundo de las secuencias de comandos BASH de Linux - Parte III

Comencemos el proceso de aprendizaje adicional con algunos nuevos y emocionantes guiones, empecemos con los guiones de Matemáticas:

Guión 1: Adiciones

Cree un archivo "Addition.sh" y chmod 755 en el script como se describe en la publicación anterior y ejecútelo.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(expr "$a" + "$b") 
echo $a + $b = $x
[[email protected] ~]# vi Additions.sh
[[email protected] ~]# chmod 755 Additions.sh
[[email protected] ~]# ./Additions.sh

“Enter the First Number: ” 
12 
“Enter the Second Number: ” 
13 
12 + 13 = 25

Guión 2: Sustracción

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(($a - $b)) 
echo $a - $b = $x

Nota: Aquí reemplazamos expr y dejamos que el cálculo matemático se realice en shell.

[[email protected] ~]# vi Substraction.sh
[[email protected] ~]# chmod 755 Substraction.sh
[[email protected] ~]# ./Substraction.sh

“Enter the First Number: ” 
13 
“Enter the Second Number: ” 
20 
13 - 20 = -7

Guión 3: Multiplicación

Hasta ahora estarías disfrutando mucho, aprendiendo guiones de una manera tan fácil, por lo que el siguiente en orden cronológico es la Multiplicación.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a * $b = $(expr $a \* $b)"

Nota: ¡Sí! Aquí no pusimos el valor de la multiplicación en una variable, sino que lo realizamos directamente en la declaración de salida.

[[email protected] ~]# vi Multiplication.sh
[[email protected] ~]# chmod 755 Multiplication.sh
[[email protected] ~]# ./Multiplication.sh

“Enter the First Number: ” 
11 
“Enter the Second Number: ” 
11 
11 * 11 = 121

Guión 4: División

¡Derecha! Lo siguiente es División, y nuevamente es un guión muy simple. Compruébelo usted mismo.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a / $b = $(expr $a / $b)"
[[email protected] ~]# vi Division.sh
[[email protected] ~]# chmod 755 Division.sh
[[email protected] ~]# ./Division.sh

“Enter the First Number: ” 
12 
“Enter the Second Number: ” 
3 
12 / 3 = 4

Guión 5: Tabla

¡Multa! ¿Qué pasa después de estas operaciones matemáticas básicas? Vamos a escribir un guión que imprima una tabla de cualquier número.

#!/bin/bash
echo “Enter The Number upto which you want to Print Table: ” 
read n 
i=1 
while [ $i -ne 10 ] 
do 
i=$(expr $i + 1) 
table=$(expr $i \* $n) 
echo $table 
done
[[email protected] ~]# vi Table.sh
[[email protected] ~]# chmod 755 Table.sh
[[email protected] ~]# ./Table.sh

“Enter The Number upto which you want to Print Table: ” 
29 
58 
87 
116 
145 
174 
203 
232 
261 
290

Guión 6: EvenOdd

Nosotros, de niños, siempre hemos realizado cálculos para saber si el número es par o impar. ¿No sería una buena idea implementarlo en un script?

#!/bin/bash
echo "Enter The Number" 
read n 
num=$(expr $n % 2) 
if [ $num -eq 0 ] 
then 
echo "is a Even Number" 
else 
echo "is a Odd Number" 
fi
[[email protected] ~]# vi EvenOdd.sh
[[email protected] ~]# chmod 755 EvenOdd.sh
[[email protected] ~]# ./EvenOdd.sh

Enter The Number 
12 
is a Even Number
[[email protected] ~]# ./EvenOdd.sh

Enter The Number 
11 
is a Odd Number

Guión 7: Factorial

Lo siguiente es encontrar el factorial.

#!/bin/bash 
echo "Enter The Number" 
read a 
fact=1 
while [ $a -ne 0 ] 
do 
fact=$(expr $fact \* $a) 
a=$(expr $a - 1) 
done 
echo $fact
[[email protected] ~]# vi Factorial.sh
[[email protected] ~]# chmod 755 Factorial.sh
[[email protected] ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Ahora puede relajarse con la sensación de que calcular 12 * 11 * 10 * 9 * 7 * 7 * 6 * 5 * 4 * 3 * 2 * 1 sería más difícil que un simple guión como el producido anteriormente. ¡Piense en la situación en la que necesita encontrar 99! o algo así. ¡Seguro! Este script será muy útil en esa situación.

Guión 8: Armstrong

¡Número Armstrong! Ohhh Olvidas lo que es un número Armstrong. Bueno, un número Armstrong de tres dígitos es un entero tal que la suma de los cubos de sus dígitos es igual al número en sí. Por ejemplo, 371 es un número de Armstrong ya que 3 ** 3 + 7 ** 3 + 1 ** 3 u003d 371.

#!/bin/bash 
echo "Enter A Number" 
read n 
arm=0 
temp=$n 
while [ $n -ne 0 ] 
do 
r=$(expr $n % 10) 
arm=$(expr $arm + $r \* $r \* $r) 
n=$(expr $n / 10) 
done 
echo $arm 
if [ $arm -eq $temp ] 
then 
echo "Armstrong" 
else 
echo "Not Armstrong" 
fi
[[email protected] ~]# vi Armstrong.sh
[[email protected] ~]# chmod 755 Armstrong.sh
[[email protected] ~]# ./Armstrong.sh

Enter A Number 
371 
371 
Armstrong
[[email protected] ~]# ./Armstrong.sh

Enter A Number 
123 
36 
Not Armstrong

Guión 9: Prime

El último guión consiste en distinguir si un número es primo o no.

#!/bin/bash 
echo “Enter Any Number”
read n
i=1
c=1
while [ $i -le $n ]
do
i=$(expr $i + 1)
r=$(expr $n % $i)
if [ $r -eq 0 ]
then
c=$(expr $c + 1)
fi
done
if [ $c -eq 2 ]
then
echo “Prime”
else
echo “Not Prime”
fi
[[email protected] ~]# vi Prime.sh
[[email protected] ~]# chmod 755 Prime.sh
[[email protected] ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Eso es todo por ahora. En nuestro próximo artículo cubriremos otros programas matemáticos en el lenguaje de programación shell Scripting. No olvide mencionar sus opiniones sobre el artículo en la sección de comentarios. Me gusta y comparte con nosotros y ayúdanos a difundir Visite tecmint.com para ver noticias y artículos relacionados con el software libre. Hasta entonces Estén atentos.