Wyszukiwanie w witrynie

Matematyczny aspekt programowania w powłoce systemu Linux - część IV


W tym poście omówię Skrypty z punktu widzenia Matematycznego i Liczbowego. Chociaż w poprzednim poście zamieściłem bardziej złożony skrypt (Prosty kalkulator), ale dla użytkownika był on trudny do zrozumienia, dlatego pomyślałem, aby zachęcić was do poznania drugiej przydatnej strony uczenia się w małe paczki.

Przed tym artykułem opublikowano trzy artykuły z serii Shell Scripting, a są to:

  1. Zrozumienie powłoki systemu Linux i podstawowych skryptów powłoki — część I
  2. 5 skryptów powłoki do nauki programowania powłoki – część II
  3. Żeglowanie po świecie skryptów Linux BASH – część III

Rozpocznijmy dalszy proces nauki od kilku nowych, ekscytujących skryptów, zacznij od skryptów matematycznych:

Skrypt 1: Dodatki

Utwórz plik „Addition.sh” i chmod 755 do skryptu zgodnie z opisem w poprzednim poście i uruchom go.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(expr "$a" + "$b") 
echo $a + $b = $x
Przykładowe wyjście
[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

Pobierz Additions.sh

Skrypt 2: Odejmowanie

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

Uwaga: tutaj zastąpiliśmy wyrażenie i pozwoliliśmy, aby obliczenia matematyczne zostały wykonane w powłoce.

Przykładowe wyjście
[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

Pobierz Substraction.sh

Skrypt 3: Mnożenie

Jak dotąd, nauka skryptów w tak łatwy sposób sprawiłaby ci wiele frajdy, więc następnym krokiem w kolejności chronologicznej będzie Mnożenie.

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

Uwaga: tak! Tutaj nie umieściliśmy wartości mnożenia w zmiennej, ale wykonaliśmy ją bezpośrednio w instrukcji wyjściowej.

Przykładowe wyjście
[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

Pobierz plik Multiplication.sh

Scenariusz 4: Podział

Prawidłowy! Następny jest Division i znowu jest to bardzo prosty skrypt. Sprawdź to sam.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a / $b = $(expr $a / $b)"
Przykładowe wyjście
[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

Pobierz Division.sh

Skrypt 5: Tabela

Cienki! Co po tych podstawowych operacjach matematycznych. Napiszmy skrypt, który wypisze tabelę o dowolnym numerze.

#!/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
Przykładowe wyjście
[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

Pobierz Table.sh

Skrypt 6: ParzystyNieparzysty

Jako dziecko zawsze przeprowadzaliśmy obliczenia, aby sprawdzić, czy liczba jest nieparzysta, czy parzysta. Czy nie byłoby dobrym pomysłem zaimplementowanie tego w skrypcie?

#!/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
Przykładowe wyjście
[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

Pobierz EvenOdd.sh

Skrypt 7: Silnia

Następnym krokiem jest znalezienie silni.

#!/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
Przykładowe wyjście
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Możesz teraz zrelaksować się z poczuciem, że obliczenie 12*11*10*9*7*7*6*5*4*3*2*1 byłoby trudniejsze niż prosty skrypt przedstawiony powyżej . Pomyśl o sytuacji, w której musisz znaleźć 99! lub coś w tym rodzaju. Jasne! Skrypt ten będzie bardzo przydatny w takiej sytuacji.

Pobierz Factorial.sh

Scenariusz 8: Armstrong

Numer Armstronga! Och, zapomniałeś, czym jest liczba Armstronga. Cóż, trzycyfrowa liczba Armstronga jest liczbą całkowitą taką, że suma sześcianów jej cyfr jest równa samej liczbie. Na przykład 371 to liczba Armstronga, ponieważ 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
Przykładowe wyjście
[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

Pobierz Armstrong.sh

Scenariusz 9: Najwyższy

Ostatnim skryptem jest rozróżnienie, czy liczba jest pierwsza, czy nie.

#!/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
Przykładowe wyjście
[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Pobierz Prime.sh

To wszystko na teraz. W następnym artykule omówimy inne programy matematyczne w języku programowania Shell Scripting. Nie zapomnij wspomnieć o swoich opiniach na temat artykułu w sekcji komentarzy. Polub i udostępnij nas, a także pomóż nam się rozprzestrzeniać. Odwiedź witrynę linux-console.net, aby zapoznać się z wiadomościami i artykułami dotyczącymi firmy FOSS. Do tego czasu. Bądź na bieżąco.