Linuxi kesta programmeerimise matemaatiline aspekt - IV osa
Selles postituses käsitlen skripte matemaatilisest ja numbrilisest vaatenurgast. Ehkki olen eelmisse postitusse postitanud keerukama skripti (lihtsa kalkulaatori), oli kasutaja poolt seda keeruline mõista ja seetõttu mõtlesin panna teid inimesi õppima väikest pakettides õppimise teist kasulikku külge.
Enne seda artiklit avaldatakse kolm Shelli skriptimissarja artiklit ja need on:
- Mõistke Linuxi Shelli ja põhilisi Shelli skripte - I osa
- 5 Shelli skripti, et õppida Shelli programmeerimist - II osa
- Purjetamine läbi Linuxi BASH-skriptide maailma - III osa
Alustame edasist õppeprotsessi mõne uue põneva skriptiga, alustage matemaatika skriptidest:
1. skript: täiendused
Looge skriptile fail „Addition.sh” ja chmod 755, nagu on kirjeldatud eelmises postituses, ja käivitage see.
#!/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
2. skript: lahutamine
#!/bin/bash echo “Enter the First Number: ” read a echo “Enter the Second Number: ” read b x=$(($a - $b)) echo $a - $b = $x
Märkus: Siin asendasime lauset ja lasime matemaatilise arvutuse teostada koorega.
vi Substraction.sh chmod 755 Substraction.sh ./Substraction.sh “Enter the First Number: ” 13 “Enter the Second Number: ” 20 13 - 20 = -7
3. skript: korrutamine
Siiani oleksite palju rõõmu tundnud ja skripte nii lihtsalt õppinud, seega on kronoloogilises järjekorras järgmine Korrutamine.
#!/bin/bash echo “Enter the First Number: ” read a echo “Enter the Second Number: ” read b echo "$a * $b = $(expr $a \* $b)"
Märkus: jah! Siin me ei pannud korrutamise väärtust muutujasse, vaid sooritasime selle otse väljundlauses.
vi Multiplication.sh chmod 755 Multiplication.sh ./Multiplication.sh “Enter the First Number: ” 11 “Enter the Second Number: ” 11 11 * 11 = 121
4. skript: jaotus
Õige! Järgmine on jagamine ja jällegi väga lihtne skript. Kontrollige seda ise.
#!/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
5. skript: tabel
Hästi! Mis pärast neid matemaatilisi põhitoiminguid. Võimaldab kirjutada skripti, mis prindib mis tahes arvu tabeli.
#!/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
6. skript: EvenOdd
Oleme lapsena alati arvutusi teinud, et leida, kas arv on paaritu või paaritu. Kas pole hea mõte seda skriptis rakendada?
#!/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
Stsenaarium 7: Faktorial
Järgmine on leida 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
Nüüd võite lõõgastuda tundega, et 12 * 11 * 10 * 9 * 7 * 7 * 6 * 5 * 4 * 3 * 2 * 1 arvutamine oleks keerulisem kui ülaltoodud lihtne skript. Mõelge olukorrale, kus peate leidma 99! või midagi sellist. Muidugi! See skript on selles olukorras väga mugav.
Stsenaarium 8: Armstrong
Armstrongi number! Ohhh, unustate, mis see Armstrongi number on. Noh, Armstrongi kolmekohaline arv on täisarv, nii et tema numbrite kuubikute summa võrdub arvuga ise. Näiteks on 371 Armstrongi arv, kuna 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
9. skript: peaminister
Viimane skript on teha vahet, kas number on algarv või mitte.
#!/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”
Praeguseks kõik. Järgmises artiklis käsitleme teisi matemaatilisi programme shelliskriptide programmeerimiskeeles. Ärge unustage kommentaaride jaotises mainida oma seisukohti seoses artikliga. Meeldib ja jaga meid ning aitab meil levida. Tule külastama veebisaiti linux-console.net, kus leiate FOSSiga seotud uudiseid ja artikleid. Siiani püsige lainel.