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:

  1. Ymmärrä Linux Shell ja Basic Shell Scripting - Osa I
  2. 5 Shell-komentosarjaa Shell-ohjelmoinnin oppimiseksi - osa II
  3. 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.