Matematični vidik programiranja lupine Linuxa - IV. Del


V tem prispevku bom razpravljal o skriptih z matematičnega in številskega vidika. Čeprav sem v prejšnjem prispevku objavil bolj zapleten skript (preprost kalkulator), toda uporabniškega dela je bilo težko razumeti, zato sem mislil, da se boste naučili druge koristne strani učenja v majhnih paketih.

Pred tem člankom so objavljeni trije članki Shell Scripting Series, in sicer:

  1. Razumevanje Linux Shell in Basic Shell Scripting - I. del
  2. 5 skriptov lupine za učenje programiranja lupine - 2. del
  3. Jadranje po svetu Linux BASH skript - III. del

Začnimo nadaljnji učni proces z nekaj novimi zanimivimi skripti, začnimo s skriptami iz matematike:

Skripta 1: Dodatki

Ustvarite datoteko “Addition.sh” in chmod 755 v skriptu, kot je opisano v prejšnjem prispevku, in jo zaženite.

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

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

Skripta 2: Substrakcija

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

Opomba: Tu smo zamenjali izraz in pustili matematični izračun v lupini.

 vi Substraction.sh
 chmod 755 Substraction.sh
 ./Substraction.sh

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

Skripta 3: Množenje

Doslej bi veliko uživali in se skriptov učili na tako enostaven način, zato je naslednje v kronološkem zaporedju množenje.

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

Opomba: Ja! Tukaj vrednosti množenja nismo postavili v spremenljivko, ampak smo jo izvedli neposredno v izhodni stavek.

 vi Multiplication.sh
 chmod 755 Multiplication.sh
 ./Multiplication.sh

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

Skripta 4: Delitev

Prav! Naslednja je Divizija in spet gre za zelo preprost scenarij. Preverite sami.

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

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

Skripta 5: Tabela

V redu! Kaj po teh osnovnih matematičnih operacijah. Naj napišemo skript, ki natisne tabelo katere koli številke.

#!/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
 vi Table.sh
 chmod 755 Table.sh
 ./Table.sh

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

Skripta 6: EvenOdd

Kot otrok smo vedno izračunavali, ali je število liho ali sodo. Ali ne bi bilo dobro, če bi to izvedli v scenariju.

#!/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
 vi EvenOdd.sh
 chmod 755 EvenOdd.sh
 ./EvenOdd.sh

Enter The Number 
12 
is a Even Number
 ./EvenOdd.sh

Enter The Number 
11 
is a Odd Number

Skripta 7: Faktor

Naslednje je najti 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
 vi Factorial.sh
 chmod 755 Factorial.sh
 ./Factorial.sh

Enter The Number 
12 
479001600

Zdaj se lahko sprostite z občutkom, da bi bilo izračunavanje 12 * 11 * 10 * 9 * 7 * 7 * 6 * 5 * 4 * 3 * 2 * 1 težje od preprostega skripta, kot je opisano zgoraj. Pomislite na situacijo, ko bi morali najti 99! ali nekaj takega. Seveda! Ta scenarij bo v tej situaciji zelo priročen.

Skripta 8: Armstrong

Armstrongova številka! Ohhh pozabiš, kaj je Armstrongova številka. No, Armstrongova številka treh številk je celo število, tako da je vsota kock njegovih številk enaka samemu številu. Na primer, 371 je Armstrongova številka, saj je 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
 vi Armstrong.sh
 chmod 755 Armstrong.sh
 ./Armstrong.sh

Enter A Number 
371 
371 
Armstrong
 ./Armstrong.sh

Enter A Number 
123 
36 
Not Armstrong

Skripta 9: Prime

Zadnji skript je razločiti, ali je število prosto ali 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
 vi Prime.sh
 chmod 755 Prime.sh
 ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

To je vse za zdaj. V naslednjem članku bomo obravnavali druge matematične programe v programskem jeziku lupine Scripting. Ne pozabite omeniti svojih pogledov na članek v oddelku za komentarje. Všečkajte in delite nas in nam pomagajte pri širjenju. Obiščite linux-console.net za novice in članke v zvezi s FOSS. Do takrat ostanite z nami.