Stærðfræðilegur þáttur Linux Shell-forritunar - Hluti IV


Í þessari færslu mun ég fjalla um forskriftirnar frá stærðfræðilegu og tölulegu sjónarhorni. Þó að ég hafi sett inn flóknara handrit (Simple Calculator) í fyrri færslu, en á notendahluta var það erfitt að skilja og þess vegna hugsaði ég að láta ykkur læra hina gagnlegu hliðina á því að læra í litlum pökkum.

Fyrir þessa grein eru þrjár greinar af Shell Scripting Series birtar og þær eru:

  1. Skiljið Linux Shell og Basic Shell Scripting – Part I
  2. 5 skeljaforskriftir til að læra skeljaforritun – II. hluti
  3. Sigling í gegnum heim Linux BASH skrifta – hluti III

Byrjum frekara námsferlið með nokkrum nýjum spennandi skriftum, byrjum á stærðfræði skriftum:

Handrit 1: Viðbætur

Búðu til skrá „Addition.sh“ og chmod 755 við handritið eins og lýst er í fyrri færslu og keyrðu hana.

#!/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

Handrit 2: Frádráttur

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

Athugið: Hér skiptum við út expr og létum reikna stærðfræðilega útreikninga í skel.

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

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

Handrit 3: Margföldun

Hingað til hefðirðu haft gaman af því að læra handrit á svo auðveldan hátt, svo næst í tímaröð er margföldun.

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

Athugið: Já! Hér settum við ekki gildi margföldunar í breytu heldur gerðum það beint í úttaksyfirlýsingu.

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

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

Handrit 4: Skipting

Rétt! Næst er Division, og aftur er það mjög einfalt handrit. Athugaðu það sjálfur.

#!/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

Handrit 5: Tafla

Fínt! Hvað eftir þessar undirstöðu stærðfræðiaðgerðir. Skrifum handrit sem prentar töflu af hvaða tölu sem er.

#!/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

Handrit 6: EvenOdd

Við sem barn höfum alltaf gert útreikninga til að finna hvort talan sé odda eða slétt. Er ekki góð hugmynd að útfæra það í handriti.

#!/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

Handrit 7: Staðbundið

Næst er að finna þáttinn.

#!/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

Þú gætir nú slakað á með þeirri tilfinningu að það væri erfiðara að reikna út 12*11*10*9*7*7*6*5*4*3*2*1 en einfalt handrit eins og framleitt er hér að ofan. Hugsaðu um aðstæður þar sem þú þarft að finna 99! eða eitthvað þannig. Jú! Þetta handrit mun vera mjög vel við þessar aðstæður.

Handrit 8: Armstrong

Armstrong númer! Ohhh Þú gleymir hvað Armstrong númer er. Jæja, þriggja stafa Armstrong tala er heil tala þannig að summa teninga talna hennar er jöfn tölunni sjálfri. Til dæmis er 371 Armstrong tala þar sem 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

Handrit 9: Prime

Síðasta handritið er til að greina hvort tala er frumtala eða ekki.

#!/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”

Það er allt í bili. Í næstu grein okkar munum við fjalla um önnur stærðfræðiforrit í forritunarmálinu Shell Scripting. Ekki gleyma að nefna skoðanir þínar varðandi grein í athugasemdahlutanum. Líkaðu við og deildu okkur og hjálpaðu okkur að dreifa. Komdu á linux-console.net fyrir fréttir og greinar sem tengjast FOSS. Þangað til Fylgstu með.