Linux Shell -ohjelmoinnin matemaattinen näkökohta - osa IV
Tässä viestissä käsittelen skriptejä matemaattisesta ja numeronäkökulmasta. Vaikka olen kirjoittanut monimutkaisemman komentosarjan (yksinkertainen laskin) edelliseen viestiin, mutta käyttäjäosasta sitä oli vaikea ymmärtää, ja ajattelin saada sinut ihmiset oppimaan oppimisen toisen hyödyllisen puolen pienissä paketeissa.
Ennen tätä artikkelia julkaistaan kolme Shell Scripting -sarjan artikkelia, jotka ovat:
- Ymmärrä Linux Shell ja Basic Shell Scripting - Osa I
- 5 Shell-komentosarjaa Shell-ohjelmoinnin oppimiseksi - osa II
- Purjehdus Linuxin BASH-komentosarjojen maailmassa - osa III
Aloitetaan jatko-oppimisprosessi uusilla jännittävillä skripteillä, aloitetaan matematiikan skripteillä:
Skripti 1: Lisäykset
Luo tiedosto "Addition.sh" ja chmod 755 komentosarjaan edellisessä viestissä kuvatulla tavalla ja suorita se.
#!/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
Skripti 2: Vähentäminen
#!/bin/bash echo “Enter the First Number: ” read a echo “Enter the Second Number: ” read b x=$(($a - $b)) echo $a - $b = $x
Huomaa: Tässä korvattiin lauseke ja annettiin matemaattinen laskenta suorittaa kuoressa.
vi Substraction.sh chmod 755 Substraction.sh ./Substraction.sh “Enter the First Number: ” 13 “Enter the Second Number: ” 20 13 - 20 = -7
Skripti 3: Kertolasku
Toistaiseksi olisit nauttinut paljon ja oppinut komentosarjoja niin helposti, joten seuraava on kronologisessa järjestyksessä Kertolasku.
#!/bin/bash echo “Enter the First Number: ” read a echo “Enter the Second Number: ” read b echo "$a * $b = $(expr $a \* $b)"
Huomaa: Yup! Täällä emme laittaneet kertolaskun arvoa muuttujaan, vaan suoritimme sen suoraan tuloslausekkeeseen.
vi Multiplication.sh chmod 755 Multiplication.sh ./Multiplication.sh “Enter the First Number: ” 11 “Enter the Second Number: ” 11 11 * 11 = 121
Skripti 4: Jako
Aivan! Seuraava on Division, ja taas se on hyvin yksinkertainen komentosarja. Tarkista se itse.
#!/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
Skripti 5: Taulukko
Hieno! Mitä näiden matemaattisten perusoperaatioiden jälkeen. Kirjoitetaan komentosarja, joka tulostaa minkä tahansa luvun taulukon.
#!/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
Skripti 6: EvenOdd
Olemme lapsena aina suorittaneet laskutoimituksia selvittääkseen, onko luku pariton vai parillinen. Eikö ole hyvä idea toteuttaa se komentosarjassa.
#!/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
Skripti 7: Factorial
Seuraava on löytää 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
Voit nyt rentoutua tunne, että 12 * 11 * 10 * 9 * 7 * 7 * 6 * 5 * 4 * 3 * 2 * 1 laskeminen olisi vaikeampi kuin yksinkertainen komentosarja, kuten yllä on tuotettu. Ajattele tilannetta, jossa sinun on löydettävä 99! Tai jotain sellaista. Varma! Tämä käsikirjoitus on erittäin kätevä siinä tilanteessa.
Skripti 8: Armstrong
Armstrongin numero! Ohhh unohdat mikä Armstrong-luku on. No, Armstrongin kolminumeroinen luku on kokonaisluku siten, että sen numeroiden kuutioiden summa on yhtä suuri kuin itse luku. Esimerkiksi 371 on Armstrong-luku, koska 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
Skripti 9: Pääministeri
Viimeinen komento on erottaa onko numero alkuluku vai ei.
#!/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”
Tässä kaikki tältä erää. Seuraavassa artikkelissamme käsitellään muita matemaattisia ohjelmia komentosarjakomentosarjaohjelmointikielellä. Muista mainita mielipiteesi artikkelista Kommentti-osiossa. Tykkää ja jaa meitä ja auta meitä levittämään. Tule vierailemaan osoitteessa linux-console.net, josta löydät FOSS-uutisia ja artikkeleita. Siihen asti Pysy kuulolla.