Vyhledávání na webu

Matematický aspekt programování Linux Shell - část IV


V tomto příspěvku budu diskutovat o Skriptech z matematického a číslaho hlediska. I když jsem v předchozím příspěvku zveřejnil složitější skript (Jednoduchá kalkulačka), ale ze strany uživatele to bylo obtížné pochopit, a proto jsem se rozhodl přimět vás, abyste se naučili druhou užitečnou stránku učení v malé balíčky.

Před tímto článkem byly publikovány tři články z Shell Scripting Series, a to:

  1. Pochopte Linux Shell a základní skriptování Shell – část I
  2. 5 Shell skriptů pro výuku Shell programování – část II
  3. Plavba světem Linuxu BASH Scripting – část III

Začněme další proces učení několika novými vzrušujícími skripty, začněme skripty Matematika:

Skript 1: Dodatky

Vytvořte soubor „Addition.sh“ a chmod 755 do skriptu, jak je popsáno v předchozím příspěvku, a spusťte jej.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(expr "$a" + "$b") 
echo $a + $b = $x
Ukázkový výstup
[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

Stáhnout Additions.sh

Scénář 2: Odčítání

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

Poznámka: Zde jsme nahradili výraz a nechali jsme matematický výpočet provést v shellu.

Ukázkový výstup
[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

Stáhněte si Substraction.sh

Skript 3: Násobení

Zatím by vás bavilo učit se skripta tak snadným způsobem, takže další v chronologickém pořadí je Násobení.

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

Poznámka: Ano! Zde jsme nevložili hodnotu násobení do proměnné, ale provedli jsme ji přímo ve výstupním příkazu.

Ukázkový výstup
[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

Stáhněte si Multiplication.sh

Scénář 4: Rozdělení

Že jo! Další je Division a opět se jedná o velmi jednoduchý skript. Zkontrolujte si to sami.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a / $b = $(expr $a / $b)"
Ukázkový výstup
[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

Stáhněte si Division.sh

Skript 5: Tabulka

Pokuta! Co po těchto základních matematických operacích. Pojďme napsat skript, který vytiskne tabulku libovolného čísla.

#!/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
Ukázkový výstup
[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

Stáhněte si Table.sh

Scénář 6: SudýLichý

Jako dítě jsme vždy prováděli výpočty, abychom zjistili, zda je číslo liché nebo sudé. Nebylo by dobré to implementovat do skriptu.

#!/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
Ukázkový výstup
[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

Stáhněte si EvenOdd.sh

Scénář 7: Faktor

Další je najít 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
Ukázkový výstup
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Nyní můžete odpočívat s pocitem, že výpočet 12*11*10*9*7*7*6*5*4*3*2*1 by byl obtížnější než jednoduchý skript, jak je vytvořen výše . Představte si situaci, kdy potřebujete najít 99! nebo něco podobného. Tak určitě! Tento skript bude v této situaci velmi užitečný.

Stáhněte si Factorial.sh

Scénář 8: Armstrong

Číslo Armstrong! Ohhh Zapomněl jsi, co je Armstrongovo číslo. Armstrongovo číslo se třemi číslicemi je celé číslo takové, že součet mocnin jeho číslic se rovná samotnému číslu. Například 371 je Armstrongovo číslo, protože 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
Ukázkový výstup
[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

Stáhněte si Armstrong.sh

Scénář 9: Prime

Posledním skriptem je rozlišit, zda je číslo prvočíslo nebo 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
Ukázkový výstup
[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Stáhněte si Prime.sh

To je prozatím vše. V našem dalším článku se budeme zabývat dalšími matematickými programy v programovacím jazyce shell Scripting. Nezapomeňte uvést svůj názor na článek v sekci Komentáře. Lajkujte a sdílejte nás a pomozte nám šířit. Navštivte linux-console.net, kde najdete Novinky a články týkající se FOSS. Do té doby zůstaňte naladěni.