Matematinis Linux apvalkalo programavimo aspektas – IV dalis


Šiame įraše aptarsiu Sskriptus matematiniu ir skaičiumi požiūriu. Nors ankstesniame įraše paskelbiau sudėtingesnį scenarijų (Paprasta skaičiuoklė), tačiau naudotojui jį buvo sunku suprasti, todėl maniau, kad jūs, žmonės, išmoktumėte kitą naudingą mokymosi pusę. maži paketėliai.

Prieš šį straipsnį buvo paskelbti trys Shell Scripting Series straipsniai ir jie yra:

  1. Supraskite „Linux Shell“ ir pagrindinį apvalkalo scenarijų – I dalis
  2. 5 apvalkalo scenarijai, skirti mokytis apvalkalo programavimo – II dalis
  3. Plaukimas per Linux BASH scenarijų pasaulį – III dalis

Pradėkime tolesnį mokymosi procesą nuo keleto naujų įdomių scenarijų, pradėkite nuo matematikos scenarijų:

1 scenarijus: papildymai

Sukurkite failą „Addition.sh“ ir chmod 755 prie scenarijaus, kaip aprašyta ankstesniame įraše, ir paleiskite jį.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(expr "$a" + "$b") 
echo $a + $b = $x
Pavyzdžio išvestis
[root@tecmint ~]# vi Additions.sh
[root@tecmint ~]# chmod 755 Additions.sh
[root@tecmint ~]# ./Additions.sh

“Enter the First Number: ” 
12 
“Enter the Second Number: ” 
13 
12 + 13 = 25

Atsisiųskite Additions.sh

2 scenarijus: atimtis

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(($a - $b)) 
echo $a - $b = $x

Pastaba: čia pakeitėme expr ir leidome atlikti matematinį skaičiavimą apvalkalu.

Pavyzdžio išvestis
[root@tecmint ~]# vi Substraction.sh
[root@tecmint ~]# chmod 755 Substraction.sh
[root@tecmint ~]# ./Substraction.sh

“Enter the First Number: ” 
13 
“Enter the Second Number: ” 
20 
13 - 20 = -7

Atsisiųskite Substraction.sh

3 scenarijus: daugyba

Kol kas jums labai patiko, nes taip lengvai mokotės scenarijus, todėl chronologine tvarka sekantis yra Daugyba.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a * $b = $(expr $a \* $b)"

Pastaba: taip! Čia daugybos reikšmės neįdėjome į kintamąjį, bet atlikome ją tiesiogiai išvesties sakinyje.

Pavyzdžio išvestis
[root@tecmint ~]# vi Multiplication.sh
[root@tecmint ~]# chmod 755 Multiplication.sh
[root@tecmint ~]# ./Multiplication.sh

“Enter the First Number: ” 
11 
“Enter the Second Number: ” 
11 
11 * 11 = 121

Atsisiųskite Multiplication.sh

4 scenarijus: padalijimas

Teisingai! Kitas yra Padalijimas ir vėlgi tai labai paprastas scenarijus. Patikrinkite patys.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a / $b = $(expr $a / $b)"
Pavyzdžio išvestis
[root@tecmint ~]# vi Division.sh
[root@tecmint ~]# chmod 755 Division.sh
[root@tecmint ~]# ./Division.sh

“Enter the First Number: ” 
12 
“Enter the Second Number: ” 
3 
12 / 3 = 4

Atsisiųskite Division.sh

5 scenarijus: lentelė

gerai! Kas po šių pagrindinių matematinių veiksmų. Parašykime scenarijų, kuris atspausdins bet kokio skaičiaus lentelę.

#!/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
Pavyzdžio išvestis
[root@tecmint ~]# vi Table.sh
[root@tecmint ~]# chmod 755 Table.sh
[root@tecmint ~]# ./Table.sh

“Enter The Number upto which you want to Print Table: ” 
29 
58 
87 
116 
145 
174 
203 
232 
261 
290

Atsisiųskite Table.sh

6 scenarijus: EvenOdd

Vaikystėje visada skaičiavome, ar skaičius nelyginis, ar lyginis. Ar nebūtų gera idėja tai įgyvendinti pagal scenarijų.

#!/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
Pavyzdžio išvestis
[root@tecmint ~]# vi EvenOdd.sh
[root@tecmint ~]# chmod 755 EvenOdd.sh
[root@tecmint ~]# ./EvenOdd.sh

Enter The Number 
12 
is a Even Number
[root@tecmint ~]# ./EvenOdd.sh

Enter The Number 
11 
is a Odd Number

Atsisiųskite EvenOdd.sh

7 scenarijus: Faktinis

Kitas yra rasti faktorių.

#!/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
Pavyzdžio išvestis
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Dabar galite atsipalaiduoti jausdami, kad apskaičiuoti 12*11*10*9*7*7*6*5*4*3*2*1 būtų sunkiau nei paprastą scenarijų, kaip aprašyta aukščiau. . Pagalvokite apie situaciją, kai reikia rasti 99! ar kažką panašaus. Žinoma! Šis scenarijus bus labai naudingas tokioje situacijoje.

Atsisiųskite Factorial.sh

8 scenarijus: Armstrongas

Armstrongo numeris! Ohhh, jūs pamiršote, kas yra Armstrongo numeris. Na, Armstrongo trijų skaitmenų skaičius yra toks sveikasis skaičius, kad jo skaitmenų kubelių suma yra lygi pačiam skaičiui. Pavyzdžiui, 371 yra Armstrongo skaičius, nes 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
Pavyzdžio išvestis
[root@tecmint ~]# vi Armstrong.sh
[root@tecmint ~]# chmod 755 Armstrong.sh
[root@tecmint ~]# ./Armstrong.sh

Enter A Number 
371 
371 
Armstrong
[root@tecmint ~]# ./Armstrong.sh

Enter A Number 
123 
36 
Not Armstrong

Atsisiųskite Armstrong.sh

9 scenarijus: pagrindinis

Paskutinis scenarijus skirtas atskirti, ar skaičius yra pirminis, ar 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
Pavyzdžio išvestis
[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Atsisiųskite Prime.sh

Tai kol kas viskas. Kitame mūsų straipsnyje apžvelgsime kitas matematines programas apvalkalo scenarijų programavimo kalba. Nepamirškite komentarų skiltyje paminėti savo nuomonę apie straipsnį. Pamėgti ir dalintis mumis ir padėk mums skleistis. Apsilankykite adresu linux-console.net, kur rasite naujienų ir straipsnių, susijusių su FOSS. Iki tol Sekite naujienas.