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.
- Linux Shell skript ýazuw diliniň esasy maslahatlaryna düşüniň - I bölüm
- Shell programmirlemesini öwrenmek üçin Linux täze doglan çagalar üçin 5 sany gabyk skripti - II bölüm
- Linux BASH skriptiniň dünýäsinde ýüzmek - III bölüm
- 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ň.