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:
- Skiljið Linux Shell og Basic Shell Scripting – Part I
- 5 skeljaforskriftir til að læra skeljaforritun – II. hluti
- 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ð.