Matematički aspekt Linux shell programiranja - IV dio


U ovom postu ću raspravljati o Skriptovima sa stanovišta matematike i broja. Iako sam postavio složeniju skriptu (Jednostavan kalkulator) u prethodnom postu, ali sa strane korisnika je bilo teško razumjeti i stoga sam mislio da vas natjeram da naučite drugu korisnu stranu učenja u mali paketi.

Prije ovog članka objavljena su tri članka Shell Scripting Series i to su:

  1. Razumjeti Linux ljusku i osnovnu shell skriptu – I dio
  2. 5 Shell skripti za učenje shell programiranja – II dio
  3. Plovidba kroz svijet Linux BASH skriptiranja – III dio

Započnimo dalji proces učenja s nekim novim uzbudljivim skriptama, počnite sa matematičkim skriptama:

Skripta 1: Dodaci

Kreirajte fajl “Addition.sh” i chmod 755 za skriptu kao što je opisano u prethodnom postu i pokrenite ga.

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

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

Preuzmite Additions.sh

Skripta 2: Oduzimanje

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

Napomena: Ovdje smo zamijenili expr i pustili da se matematički proračun izvodi u ljusci.

Sample Output
[root@tecmint ~]# vi Substraction.sh
[root@tecmint ~]# chmod 755 Substraction.sh
[root@tecmint ~]# ./Substraction.sh

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

Preuzmite Substraction.sh

Skripta 3: Množenje

Do sada biste mnogo uživali, učeći skripte na tako lak način, tako da je sljedeće po hronološkom redu Množenje.

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

Napomena: Da! Ovdje nismo stavili vrijednost množenja u varijablu, već smo je izvršili direktno u izlaznoj izjavi.

Sample Output
[root@tecmint ~]# vi Multiplication.sh
[root@tecmint ~]# chmod 755 Multiplication.sh
[root@tecmint ~]# ./Multiplication.sh

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

Preuzmite Multiplication.sh

Skripta 4: Divizija

Tačno! Sljedeća je Division, i opet je vrlo jednostavna skripta. Provjerite sami.

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

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

Preuzmite Division.sh

Skripta 5: Tabela

Fino! Što nakon ovih osnovnih matematičkih operacija. Hajde da napišemo skriptu koja ispisuje tabelu bilo kojeg broja.

#!/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
Sample Output
[root@tecmint ~]# vi Table.sh
[root@tecmint ~]# chmod 755 Table.sh
[root@tecmint ~]# ./Table.sh

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

Preuzmite Table.sh

Skripta 6: EvenOdd

Mi kao djeca uvijek smo vršili računanje kako bismo utvrdili da li je broj neparan ili paran. Zar ne bi bila dobra ideja implementirati to u skriptu.

#!/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
Sample Output
[root@tecmint ~]# vi EvenOdd.sh
[root@tecmint ~]# chmod 755 EvenOdd.sh
[root@tecmint ~]# ./EvenOdd.sh

Enter The Number 
12 
is a Even Number
[root@tecmint ~]# ./EvenOdd.sh

Enter The Number 
11 
is a Odd Number

Preuzmite EvenOdd.sh

Skripta 7: Faktorski

Sljedeće je pronaći faktorijal.

#!/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
Sample Output
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Sada se možete opustiti s osjećajem da bi izračunavanje 12*11*10*9*7*7*6*5*4*3*2*1 bilo teže od jednostavne skripte kao što je gore navedeno . Razmislite o situaciji u kojoj trebate pronaći 99! ili nešto slično. Naravno! Ova skripta će biti od velike pomoći u toj situaciji.

Preuzmite Factorial.sh

Skripta 8: Armstrong

Armstrongov broj! Ohhh Zaboravljate šta je Armstrong broj. Pa, Armstrongov broj od tri cifre je cijeli broj takav da je zbir kubova njegovih cifara jednak samom broju. Na primjer, 371 je Armstrongov broj od 3**3 + 7**3 + 1**3=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
Sample Output
[root@tecmint ~]# vi Armstrong.sh
[root@tecmint ~]# chmod 755 Armstrong.sh
[root@tecmint ~]# ./Armstrong.sh

Enter A Number 
371 
371 
Armstrong
[root@tecmint ~]# ./Armstrong.sh

Enter A Number 
123 
36 
Not Armstrong

Preuzmite Armstrong.sh

Skripta 9: Prime

Posljednja skripta je da razlikuje da li je broj prost ili ne.

#!/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
Sample Output
[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Preuzmite Prime.sh

To je sve za sada. U našem sljedećem članku ćemo pokriti druge matematičke programe u programskom jeziku shell Scripting. Ne zaboravite navesti svoje stavove o članku u odjeljku za komentare. Lajkujte i podijelite nas i pomozite nam da se širimo. Posjetite linux-console.net za Novosti i članke koji se odnose na FOSS. Do tada Ostanite sa nama.