Gabyk skript dilinde matematiki aňlatmalary hasaplamak - V bölüm


Adamlar, “Shell” skriptlerine düşünip, zerurlygyňyza görä arkaýyn ýazarsyňyz. Bu, gollanma dilini ulanyp, birneme çylşyrymly Matematiki amallary ýerine ýetirjek bu okuw sapagymyzyň soňky ýazgysy. “Shell Scripting” seriýasynyň soňky dört makalasy hronologiki taýdan.

  1. Linux Shell skript ýazuw diliniň esasy maslahatlaryna düşüniň - I bölüm
  2. Shell programmirlemesini öwrenmek üçin Linux täze doglan çagalar üçin 5 sany gabyk skripti - II bölüm
  3. Linux BASH skriptiniň dünýäsinde ýüzmek - III bölüm
  4. Linux Shell programmirlemegiň matematiki tarapy - IV bölüm

Fibonacci seriýasyndan başlalyň

Her bir san öňki iki sanyň jemi bolan sanlaryň nusgasy. Seriýa 0, 1, 1, 2, 3, 5, 8 …… Kesgitleme boýunça Fibonccai yzygiderliligindäki ilkinji iki san 0 we 1.

#!/bin/bash
echo "How many numbers do you want of Fibonacci series ?" 
  read total 
  x=0 
  y=1 
  i=2 
  echo "Fibonacci Series up to $total terms :: " 
  echo "$x" 
  echo "$y" 
  while [ $i -lt $total ] 
  do 
      i=`expr $i + 1 ` 
      z=`expr $x + $y ` 
      echo "$z" 
      x=$y 
      y=$z 
  done
 chmod 755 Fibonacci.sh
 ./Fibonacci.sh

How many numbers do you want of Fibonacci series ? 
10 
Fibonacci Series up to 10 terms :: 
0 
1 
1 
2 
3 
5 
8 
13 
21 
34

Kompýuteriň diňe ikilik formatda, ýagny “0” we “1” -de düşünýändigi bilen tanyş we köpümiziň onluk ikili öwrülişini öwrenmekden lezzet alýarys. Bu çylşyrymly amal üçin ýönekeý skript ýazmak hakda.

#!/bin/bash 

for ((i=32;i>=0;i--)); do 
        r=$(( 2**$i)) 
        Probablity+=( $r  ) 
done 

[[ $# -eq 0 ]] &echo -en "Decimal\t\tBinary\n" 
for input_int in [email ; do 
s=0 
test ${#input_int} -gt 11 &printf "%-10s\t" "$input_int" 

        for n in ${Probablity[@]}; do 

                if [[ $input_int -lt ${n} ]]; then 
                        [[ $s = 1 ]] && printf "%d" 0 
                else 
                        printf "%d" 1 ; s=1 
                        input_int=$(( $input_int - ${n} )) 
                fi 
        done 
echo -e 
done
 chmod 755 Decimal2Binary.sh
 ./Decimal2Binary.sh 1121

Decimal		Binary 
1121      	10001100001

Bellik: aboveokardaky skript, giriş wagtynda Girişi kabul edýär, bu, elbetde, kömekdir.

Gurlan “bc” buýrugy bir setir skriptinde onlugy ikile öwrüp biler. Terminalyňyzda işlediň.

 echo "obase=2; NUM" | bc

“NUM” -y onlukdan ikile öwürmek isleýän belgiňiz bilen çalyşyň. Mysal üçin,

 echo "obase=2; 121" | bc 

1111001

Geljekde, ikilik bahalary onluga öwürmek, ýokardaky skriptiň tersine işleýän skript ýazarys.

#!/bin/bash 
echo "Enter a number :" 
read Binary 
if [ $Binary -eq 0 ] 
then 
echo "Enter a valid number " 
else 
while [ $Binary -ne 0 ] 
do 
Bnumber=$Binary 
Decimal=0 
power=1 
while [ $Binary -ne 0 ] 
do 
rem=$(expr $Binary % 10 ) 
Decimal=$((Decimal+(rem*power))) 
power=$((power*2)) 
Binary=$(expr $Binary / 10) 
done 
echo  " $Decimal" 
done 
fi
 chmod 755 Binary2Decimal.sh
 ./Binary2Decimal.sh

Enter a number : 
11 
3

Bellik: aboveokardaky funksiýa terminalda bc buýrugy ýaly ýerine ýetirilip bilner.

 echo "ibase=2; BINARY" | bc

“BINARY” -ny ikilik belgisi bilen çalyşyň.

 echo "ibase=2; 11010101" | bc 

213

Şonuň ýaly-da, sekiz, altyburçlukdan onluk we tersine özüňiz ýazyp bilersiňiz. “Bc” buýrugyny ulanyp, ýokardaky netijäni terminalda ýerine ýetirmek.

 echo "obase=8; Decimal" | bc
 echo "obase=16; Decimal" | bc
 echo "ibase=8; Octal" | bc
 echo "ibase=16; Hexadecimal" | bc
 echo "ibase=2;obase=8 Binary" | bc

Düşündirişli gabyk skript dilinde ulanylýan umumy san synaglarynyň käbiri.

Test : INTEGER1 -eq INTEGER2
Meaning: INTEGER1 is equal to INTEGER2
Test : INTEGER1 -ge INTEGER2
Meaning: INTEGER1 is greater than or equal to INTEGER2
Test: INTEGER1 -gt INTEGER2
Meaning: INTEGER1 is greater than INTEGER2
Test:INTEGER1 -le INTEGER2
Meaning: INTEGER1 is less than or equal to INTEGER2
Test: INTEGER1 -lt INTEGER2
Meaning: INTEGER1 is less than INTEGER2
Test: INTEGER1 -ne INTEGER2
Meaning: INTEGER1 is not equal to INTEGER2

Bularyň hemmesi şu makala we makala seriýasy. Bu, “Shell script” seriýasynyň iň soňky makalasy we bu ýerde ripazuw dili boýunça hiç bir makalanyň mundan beýläk bolmajakdygyny aňlatmaýar, diňe gabyk skriptiniň gollanmasynyň gutarandygyny we haçan-da bir gezek gyzykly bir mowzuk tapanymyzda ýa-da sizden sorag tapsaňyz, seriýasyny şu ýerden dowam etdirmäge şat bolarys.

Sagdyn, sazlanan we Tecmint-e birikdiriň. Soonakyn wagtda başga bir gyzykly mowzuk bilen gelerin, adamlar okamagy halarsyňyz. Gymmat pikirleriňizi Teswirler bölüminde paýlaşyň.