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:
- Zrozumienie powłoki systemu Linux i podstawowych skryptów powłoki — część I
- 5 skryptów powłoki do nauki programowania powłoki – część II
- Ż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.