Поиск по сайту:

Математический аспект программирования оболочки Linux. Часть IV


В этом посте я буду обсуждать Sскрипты с математической и числовой точки зрения. Хотя в предыдущем посте я разместил более сложный скрипт (Простой калькулятор), но со стороны пользователя его было трудно понять, и поэтому я решил побудить вас изучить другую полезную сторону обучения в маленькие пакеты.

До этой статьи были опубликованы три статьи из Серии сценариев Shell:

  1. Понимание оболочки Linux и базовых сценариев оболочки – часть I
  2. 5 сценариев оболочки для изучения программирования оболочки – часть II
  3. Путешествуя по миру сценариев BASH для Linux – часть III

Давайте начнем процесс дальнейшего обучения с нескольких новых интересных сценариев. Начнем со сценариев Математика:

Сценарий 1: Дополнения

Создайте файл «Addition.sh» и chmod 755 для сценария, как описано в предыдущем посте, и запустите его.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(expr "$a" + "$b") 
echo $a + $b = $x
Пример вывода
[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

Скачать Дополнения.sh

Сценарий 2: Вычитание

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

Примечание. Здесь мы заменили expr и позволили математическим расчетам выполняться в оболочке.

Пример вывода
[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

Сценарий 3: Умножение

Пока что вам будет очень приятно изучать сценарии таким простым способом, поэтому следующим в хронологическом порядке является Умножение.

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

Примечание. Да! Здесь мы не помещали значение умножения в переменную, а выполняли его непосредственно в операторе вывода.

Пример вывода
[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

Сценарий 4: Разделение

Верно! Далее идет Division, и это опять же очень простой скрипт. Проверьте это сами.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a / $b = $(expr $a / $b)"
Пример вывода
[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

Сценарий 5: Таблица

Отлично! Что после этих основных математических операций. Давайте напишем скрипт, который печатает таблицу любого числа.

#!/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
Пример вывода
[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

Сценарий 6: EvenOdd

Мы в детстве всегда проводили вычисления, чтобы определить, четное или нечетное число. Не будет ли хорошей идеей реализовать это в скрипте.

#!/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
Пример вывода
[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

Сценарий 7: Факториал

Далее нужно найти факториал.

#!/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
Пример вывода
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Теперь вы можете расслабиться, чувствуя, что вычислить 12*11*10*9*7*7*6*5*4*3*2*1 будет сложнее, чем простой сценарий, представленный выше. . Подумайте о ситуации, когда вам нужно найти 99! или что-то в этом роде. Конечно! Этот скрипт будет очень удобен в этой ситуации.

Скачать Factorial.sh

Сценарий 8: Армстронг

Номер Армстронга! Оооо, вы забыли, что такое номер Армстронга. Итак, трехзначное число Армстронга — это целое число, такое, что сумма кубов его цифр равна самому числу. Например, 371 — это число Армстронга, поскольку 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
Пример вывода
[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

Сценарий 9: Прайм

Последний скрипт предназначен для определения того, является ли число простым или нет.

#!/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
Пример вывода
[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Скачать Prime.sh

Это все на данный момент. В нашей следующей статье мы рассмотрим другие математические программы на языке программирования оболочки Scripting. Не забудьте упомянуть свое мнение о статье в разделе комментариев. Поставьте лайк, поделитесь нами и помогите нам распространиться. Посетите linux-console.net, чтобы узнать новости и статьи, касающиеся FOSS. А пока оставайтесь с нами.