Linux Kabuk Programlamanın Matematiksel Yönü - Bölüm IV


Bu yazıda Senaryoları Matematiksel ve Sayı açısından tartışacağım. Her ne kadar önceki gönderide daha karmaşık bir komut dosyası (Basit Hesap Makinesi) yayınlamış olsam da, kullanıcı açısından anlaşılması zordu ve bu nedenle sizlerin öğrenmenin diğer yararlı yönünü de öğrenmenizi sağlamayı düşündüm. küçük paketler.

Bu makaleden önce Shell Scripting Series'in üç makalesi yayınlandı ve bunlar:

  1. Linux Kabuğunu ve Temel Kabuk Komut Dosyasını Anlayın – Bölüm I
  2. Kabuk Programlamayı Öğrenmek için 5 Kabuk Komut Dosyası – Bölüm II
  3. Linux BASH Scripting Dünyasına Yolculuk – Bölüm III

Daha fazla öğrenme sürecine bazı yeni heyecan verici komut dosyalarıyla başlayalım, Matematik komut dosyalarıyla başlayalım:

Komut Dosyası 1: Eklemeler

Önceki gönderide açıklandığı gibi komut dosyasına “Addition.sh” ve chmod 755 dosyasını oluşturun ve çalıştırın.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(expr "$a" + "$b") 
echo $a + $b = $x
Örnek Çıktı
[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

Additions.sh'yi indirin

Senaryo 2: Çıkarma

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

Not: Burada ifade'yi değiştirdik ve matematiksel hesaplamanın kabukta yapılmasını sağladık.

Örnek Çıktı
[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

Substraction.sh'yi indirin

Senaryo 3: Çarpma

Şu ana kadar çok eğleneceksiniz, komut dosyalarını o kadar kolay bir şekilde öğreneceksiniz ki, kronolojik sırayla bir sonraki adım Çarpma'dır.

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

Not: Evet! Burada çarpma değerini bir değişkene koymadık, doğrudan çıktı ifadesinde gerçekleştirdik.

Örnek Çıktı
[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

Multiplication.sh'yi indirin

Senaryo 4: Bölüm

Sağ! Sırada Bölme var ve yine çok basit bir komut dosyası. Kendiniz kontrol edin.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a / $b = $(expr $a / $b)"
Örnek Çıktı
[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

Division.sh'yi indirin

Senaryo 5: Tablo

İyi! Peki bu temel matematik işlemlerinden sonra ne olacak? Herhangi bir sayının tablosunu yazdıran bir komut dosyası yazalım.

#!/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
Örnek Çıktı
[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

Table.sh'yi indirin

Komut Dosyası 6: ÇiftTek

Biz çocukken her zaman sayının tek mi çift mi olduğunu bulmak için hesaplamalar yaptık. Bunu senaryoya uygulamak iyi bir fikir olmaz mı?

#!/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
Örnek Çıktı
[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

EvenOdd.sh'yi indirin

Senaryo 7: Faktöriyel

Sırada Faktöriyel'i bulmak var.

#!/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
Örnek Çıktı
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Artık 12*11*10*9*7*7*6*5*4*3*2*1'i hesaplamanın yukarıda oluşturulan basit bir komut dosyasından daha zor olacağı hissiyle rahatlayabilirsiniz. . 99!'u veya buna benzer bir şeyi bulmanız gereken durumu düşünün. Elbette! Bu komut dosyası bu durumda çok kullanışlı olacaktır.

Factorial.sh'yi indirin

Senaryo 8: Armstrong

Armstrong Numarası! Ohhh Armstrong Sayısının ne olduğunu unutuyorsunuz. Üç basamaklı bir Armstrong sayısı, basamaklarının küplerinin toplamı sayının kendisine eşit olan bir tamsayıdır. Örneğin, 371 bir Armstrong sayısıdır çünkü 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
Örnek Çıktı
[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

Armstrong.sh'yi indirin

Senaryo 9: Başbakan

Son komut bir sayının asal olup olmadığını ayırt etmektir.

#!/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
Örnek Çıktı
[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Prime.sh'yi indirin

Şimdilik bu kadar. Bir sonraki yazımızda Shell Scripting programlama dilindeki diğer matematik programlarını ele alacağız. Yorum kısmında yazı ile ilgili görüşlerinizi belirtmeyi unutmayın. Bizi beğenip paylaşın ve yayılmamıza yardımcı olun. FOSS ile ilgili Haberler ve makaleler için linux-console.net'u ziyaret edin. O zamana kadar bizi izlemeye devam edin.