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:
- Razumevanje Linux Shell in Basic Shell Scripting - I. del
- 5 skriptov lupine za učenje programiranja lupine - 2. del
- 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.