Ricerca nel sito web

Aspetti matematici della programmazione della shell Linux - Parte IV


In questo post parlerò delle Scripte dal punto di vista matematico e numero. Anche se ho pubblicato uno script più complesso (Simple Calculator) nel post precedente, ma da parte dell'utente era difficile da capire e quindi ho pensato di farvi imparare l'altro lato utile dell'apprendimento in piccoli pacchetti.

Prima di questo articolo, sono stati pubblicati tre articoli della Shell Scripting Series e sono:

  1. Comprendere la shell Linux e lo scripting di base della shell - Parte I
  2. 5 script di shell per imparare a programmare la shell – Parte II
  3. Navigando nel mondo di Linux BASH Scripting – Parte III

Iniziamo il processo di apprendimento ulteriore con alcuni nuovi entusiasmanti script, iniziando con gli script di matematica:

Copione 1: aggiunte

Crea un file "Addition.sh" e chmod 755 nello script come descritto nel post precedente ed eseguilo.

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

Scarica Addizioni.sh

Script 2: Sottrazione

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

Nota: qui abbiamo sostituito expr e abbiamo lasciato che il calcolo matematico venisse eseguito nella shell.

Uscita del campione
[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

Scarica Substraction.sh

Copione 3: Moltiplicazione

Finora ti divertirai moltissimo, imparando gli script in un modo così semplice, quindi il prossimo in ordine cronologico è la Moltiplicazione.

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

Nota: sì! Qui non abbiamo inserito il valore della moltiplicazione in una variabile ma lo abbiamo eseguito direttamente nell'istruzione di output.

Uscita del campione
[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

Scarica Multiplication.sh

Copione 4: Divisione

Giusto! Poi c'è Division, e anche in questo caso si tratta di uno script molto semplice. Controllalo tu stesso.

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

Scarica Division.sh

Copione 5: tabella

Bene! Cosa succede dopo queste operazioni matematiche di base. Scriviamo uno script che stampi una tabella con qualsiasi numero.

#!/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
Uscita del campione
[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

Scarica Table.sh

Copione 6: PariDispari

Da bambini abbiamo sempre fatto dei calcoli per sapere se il numero era pari o dispari. Non sarebbe una buona idea implementarlo nello script.

#!/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
Uscita del campione
[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

Scarica EvenOdd.sh

Copione 7: Fattoriale

Il prossimo è trovare il Fattoriale.

#!/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
Uscita del campione
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number 
12 
479001600

Ora puoi rilassarti con la sensazione che calcolare 12*11*10*9*7*7*6*5*4*3*2*1 sarebbe più difficile di un semplice script come quello prodotto sopra . Pensa alla situazione in cui hai bisogno di trovare 99! o qualcosa del genere. Sicuro! Questo script sarà molto utile in quella situazione.

Scarica Factorial.sh

Copione 8: Armstrong

Numero Armstrong! Ohhh Hai dimenticato cos'è un numero Armstrong. Ebbene un numero Armstrong di tre cifre è un numero intero tale che la somma dei cubi delle sue cifre è uguale al numero stesso. Ad esempio, 371 è un numero Armstrong poiché 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
Uscita del campione
[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

Scarica Armstrong.sh

Copione 9: Primo

L'ultimo script serve a distinguere se un numero è primo o meno.

#!/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
Uscita del campione
[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Scarica Prime.sh

È tutto per ora. Nel nostro prossimo articolo tratteremo altri programmi matematici nel linguaggio di programmazione Shell Scripting. Non dimenticare di menzionare le tue opinioni sull'articolo nella sezione Commenti. Metti mi piace, condividici e aiutaci a diffondere. Vieni a visitare linux-console.net per Notizie e articoli relativi a FOSS. Fino ad allora, restate sintonizzati.