ການຄິດໄລ່ການສະແດງອອກທາງຄະນິດສາດໃນພາສາສະຄິບ Shell - ພາກ V
ທ່ານປະຊາຊົນຈະຮູ້ສຶກສະບາຍໃຈ, ເຂົ້າໃຈ Shell Scripts ແລະຂຽນໃຫ້ຄ່ອງແຄ້ວ, ຕາມຄວາມຕ້ອງການຂອງທ່ານ. ນີ້ແມ່ນບົດຂຽນສຸດທ້າຍຂອງຊຸດການສອນນີ້, ເຊິ່ງພວກເຮົາຈະໄດ້ປະຕິບັດການປະຕິບັດງານທາງຄະນິດສາດທີ່ສັບສົນເລັກນ້ອຍໂດຍໃຊ້ພາສາຂຽນ. ສີ່ບົດຂຽນສຸດທ້າຍຂອງຊຸດ Shell Scripting ເຊິ່ງເປັນແບບເກົ່າ ໆ .
<
ໃຫ້ເລີ່ມຕົ້ນດ້ວຍ Fibonacci Series
ຮູບແບບຂອງຕົວເລກທີ່ແຕ່ລະຕົວເລກແມ່ນຜົນລວມຂອງສອງຕົວເລກກ່ອນ ໜ້າ. ຊຸດແມ່ນ 0, 1, 1, 2, 3, 5, 8 ……ຕາມ ຄຳ ນິຍາມ, ສອງໂຕ ທຳ ອິດໃນ ລຳ ດັບ Fibonccai ແມ່ນ 0 ແລະ 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
ທ່ານຄຸ້ນເຄີຍກັບຄວາມຈິງທີ່ວ່າຄອມພິວເຕີ້ເຂົ້າໃຈພຽງແຕ່ໃນຮູບແບບຖານສອງ, ເຊັ່ນ, 0 0 ແລະ '1' ແລະພວກເຮົາສ່ວນຫຼາຍມັກຮຽນຮູ້ການປ່ຽນແປງຂອງ Decimal ເປັນ Binary. ແນວໃດກ່ຽວກັບການຂຽນບົດຂຽນງ່າຍໆ ສຳ ລັບການປະຕິບັດງານທີ່ສັບສົນນີ້.
#!/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
ໝາຍ ເຫດ: ບົດຂຽນຂ້າງເທິງຍອມຮັບເອົາການປ້ອນຂໍ້ມູນເຂົ້າໃນເວລາແລ່ນເຊິ່ງແນ່ນອນວ່າມັນເປັນການຊ່ວຍເຫຼືອ.
ດີ ຄຳ ສັ່ງທີ່ບໍ່ມີຕົວຕົນສາມາດປ່ຽນເປັນທົດສະນິຍົມເປັນຖານສອງໃນບົດຂຽນຂອງເສັ້ນດຽວ. ດໍາເນີນການ, ຢູ່ປາຍຂອງທ່ານ.
echo "obase=2; NUM" | bc
ທົດແທນ ‘NUM’ ດ້ວຍ ຈຳ ນວນ, ທີ່ທ່ານຕ້ອງການປ່ຽນຈາກ Decimal ເປັນ Binary. ຍົກຕົວຢ່າງ,
echo "obase=2; 121" | bc 1111001
ຕໍ່ໄປພວກເຮົາຈະຂຽນຄິບທີ່ເຮັດ ໜ້າ ທີ່ກົງກັນຂ້າມກັບອັກສອນຂ້າງເທິງ, ການປ່ຽນຄຸນຄ່າຖານສອງເປັນທະສະນິຍົມ.
#!/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
ໝາຍ ເຫດ: ໜ້າ ທີ່ຂ້າງເທິງນີ້ສາມາດປະຕິບັດໄດ້ຢູ່ປາຍທາງໂດຍໃຊ້ ຄຳ ສັ່ງ 'bc' ດັ່ງ.
echo "ibase=2; BINARY" | bc
ທົດແທນ ‘BINARY’ ດ້ວຍ ໝາຍ ເລກຖານສອງ, ເບິ່ງ,
echo "ibase=2; 11010101" | bc 213
ເຊັ່ນດຽວກັນທ່ານສາມາດຂຽນການປ່ຽນໃຈເຫລື້ອມໃສຈາກ octal, hexadecimal ກັບອັດຕານິຍົມແລະກົງກັນຂ້າມກັບຕົວທ່ານເອງ. ການເຮັດໃຫ້ຜົນ ສຳ ເລັດຂອງຜົນໄດ້ຮັບຂ້າງເທິງນີ້ຢູ່ປາຍທາງໂດຍໃຊ້ ຄຳ ສັ່ງ 'bc' ແມ່ນ.
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
ບາງສ່ວນຂອງການທົດສອບຕົວເລກທົ່ວໄປທີ່ໃຊ້ໃນພາສາສະຄິບແກະດ້ວຍ ຄຳ ອະທິບາຍແມ່ນ.
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
ນັ້ນແມ່ນທັງ ໝົດ ສຳ ລັບບົດຂຽນນີ້, ແລະຊຸດຂອງບົດຂຽນ. ນີ້ແມ່ນບົດຂຽນສຸດທ້າຍຂອງ Shell Script Series ແລະມັນບໍ່ໄດ້ ໝາຍ ຄວາມວ່າຈະບໍ່ມີບົດຄວາມໃດກ່ຽວກັບພາສາ Scripting ອີກຕໍ່ໄປ, ມັນພຽງແຕ່ ໝາຍ ຄວາມວ່າການສອນແບບແກະສະຫຼັກຂອງຫອຍແມ່ນສິ້ນສຸດລົງແລະທຸກຄັ້ງທີ່ພວກເຮົາພົບຫົວຂໍ້ທີ່ ໜ້າ ສົນໃຈທີ່ຄວນຮູ້ຫລື ຄຳ ຖາມຈາກທ່ານ, ພວກເຮົາຍິນດີທີ່ຈະສືບຕໍ່ຊຸດຈາກນີ້.
ມີສຸຂະພາບແຂງແຮງ, ຕິດຕາມແລະເຊື່ອມຕໍ່ກັບ Tecmint. ໄວໆນີ້ຂ້າພະເຈົ້າຈະມາພ້ອມກັບຫົວຂໍ້ທີ່ ໜ້າ ສົນໃຈອີກຢ່າງ ໜຶ່ງ, ພວກເຈົ້າຈະມັກອ່ານ. ແບ່ງປັນຄວາມຄິດທີ່ມີຄຸນຄ່າຂອງທ່ານໃນພາກຄໍາເຫັນ.