Hiển thị các bài đăng có nhãn Lập trình Shell. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Lập trình Shell. Hiển thị tất cả bài đăng

Thứ Tư, 13 tháng 11, 2013

Shell: Viết script tính tổng S = 1 + ½ + 1/3 + ¼ + ... + 1/n (n nguyên, nhập từ bàn phím)


clear
echo "n="
read n
i=1
s=0
while [ $i -le $n ]
do
  x=$(echo "scale=4; 1 / $i" | bc)
  s=$(echo "scale=4; $s + $x" | bc)
  i=`expr $i + 1`
done
echo "tong la: $s"
[Tải mã nguồn]


Shell: Viết script tính can chi của năm dương lịch.

clear
echo "nam bang"
read nam
case `expr $nam % 10` in
    0)can="canh" ;;
    1)can="tan" ;;
    2)can="nham" ;;
    3)can="quy" ;;
    4)can="giap" ;;
    5)can="at" ;;
    6)can="binh" ;;
    7)can="dinh" ;;
    8)can="mau" ;;
    9)can="ky" ;;
esac
case `expr $nam % 12` in
    0)chi="than." ;;
    1)chi="dau." ;;
    2)chi="tuat." ;;
    3)chi="hoi." ;;
    4)chi="ty." ;;
    5)chi="suu." ;;
    6)chi="dan." ;;
    7)chi="mao." ;;
    8)chi="thin." ;;
    9)chi="ti." ;;
    10)chi="ngo." ;;
    11)chi="mui." ;;
esac
echo "$can - $chi"
[Tải mã nguồn]


Shell: Viết Script tính tổng các số lẻ từ 1-n (n nguyên, nhập từ bàn phím)

clear
echo "n="
read n
i=1
tong=0
while [ $i -lt $n ]
do
  if [ `expr $i % 2` -ne 0 ]; then
      tong=`expr $tong + $i`
  fi
  i=`expr $i + 1`
done
echo "tong la: $tong"
[Tải mã nguồn]


Shell: Viết chương trình Shell giải phương trình bậc nhất : Ax + B = 0 (a, b nguyên, nhập từ bàn phím)


clear
echo "Chuong trinh giai phuong trinh bac nhat"
echo "Nhap gia tri a = "
read a
echo "Nhap gia tri b = "
read b

if [ $a -eq 0 ];then
            if [ $b -eq 0 ];then
                        echo "Phuong trinh vo so nghiem"
            else
                        echo "Phuong trinh vo nghiem"
            fi
else
            x=$(echo "scale=3; (-$b)/$a" | bc)
            echo "Phuong trinh co 1 nghiem x = $x"
fi
[Tải mã nguồn chương trình]


Thứ Bảy, 9 tháng 11, 2013

Shell: Viết Script giải hệ phương trình bậc nhất 2 ẩn.

Ax + By = C
A1x + B1y = C1


hpt(){
          D=$(echo "scale=3; $1 * $5 - $2 * $4" | bc)
          Dx=$(echo "scale=3; $3 * $5 - $2 * $6" | bc)
          Dy=$(echo "scale=3; $1 * $6 - $3 * $4" | bc)
          if [ $D -ne 0 ];then
                   x1=$(echo "scale=3; $Dx/$D" | bc)
                   x2=$(echo "scale=3; $Dy/$D" | bc)
                   echo "Phuong trinh co nghiem duy nhat: x = ($x1,$x2)."
          elif [ $D -eq 0 ] && [ $Dx -eq 0 ] && [ $Dy -eq 0 ];then
                   echo "Phuong trinh vo so nghiem"
          else
                   echo "Phuong trinh vo nghiem"
          fi
}

hpt $1 $2 $3 $4 $5 $6

#Lưu ý: khi chạy admin@ubuntu~#/demo/bai1.sh  4 3 8 5 1 6

[TẢI MÃ NGUỒN]


Thứ Sáu, 8 tháng 11, 2013

Shell: Viết script in ra chuỗi đảo ngược từ chuỗi ban đầu.

Ví dụ: Chuỗi ban đầu: 123. Chuỗi đảo ngược: 321.
clear
echo -e -n "Nhap chuoi:\t"
read sau
h=${#sau}
until [ $h -le 0 ]
do     
          echo -n `expr substr $sau $h 1`
          h=$(($h - 1))
done
echo -e "\n"




Shell: Viết script tính tổng các chữ số của 1 số nguyên được nhập vào từ bàn phím.

clear
t=1
while [ $t -eq 1 ]
do
          clear
          echo -e -n "Nhap so:\t"
          read so

          if [ ${#so} -eq 3 ]; then
                   a=$(($so % 10))
                   b=$((($so / 10) % 10))
                   c=$((($so / 100) % 10))
                   echo -en "Tong cac ky so la: `expr $a + $b + $c`"
          else
                   echo -en "\nNhap so trong pham vi tu 100 -> 999."
          fi
         
          while [ $t -ne 0 ]
          do
                   echo -en "\nBan co muon tiep tuc? (Nhap 0 hoac 1)\t"
                   read t
                   if [ $t -eq 1 ];then
                             break
                   fi
          done
done


Shell: Viết script tìm số lớn nhất, nhỏ nhất trong 3 số được nhập từ dòng lệnh

clear
declare -a a
a=( [0]=$1 [1]=$2 [2]=$3 )
max=${a[0]}
min=${a[0]}
l=${#a[*]}
for ((i=0;i<$l;i++))
do
          if [ $max -le ${a[i]} ];then
                   max=${a[i]}
          else
                   min=${a[i]}
          fi
done
echo "Phan tu lon nhat la: $max"
echo "Phan tu nho nhat la: $min"

#Chạy lệnh:” admin@ubuntu~#/demo/test.sh 5 2 9 


Thứ Hai, 21 tháng 10, 2013

Shell: Viết chương trình Shell vẽ hình tam giác cân


# Lập trình Shell: Viết chương trình Shell vẽ hình tam giác cân
#!/bin/sh
echo "Chuong trinh ve hinh tam gia can dat"
height=$1
ktrang=$1
for ((i=1;i<=height;i++))
do
          for ((kt=ktrang; kt>=1; kt--))
          do
                   echo -n " "
          done

          for ((j=1; j<=i; j++))
          do
                   echo -n "* "
          done
          ktrang=$(($ktrang-1))
          echo ""       
done
echo "The end"

exit 0


Shell: Viết chương trình Shell giải phương trình bậc hai : ax2 + bx + c = 0 (a, b, c nhập từ bàn phím)


#Viết chương trình Shell giải phương trình bậc hai : ax2 + bx +c =0 với các tham số a, b, c nhập từ bàn #phím. và kết quả chính xác đến 2 chữ số.
Tải mã nguồn chương trình

#!/bin/bash
echo -n "Nhap a= "
read a
echo -n "Nhap b= "
read b
echo -n "Nhap c= "
read c

delta=$(echo "$b^2 - 4*$a*$c" | bc)
if [ $delta -lt 0 ] then
     echo "pt vo nghiem"
elif [ "$delta" -eq 0 ] then
     echo -n "pt co nghiem kep x= "
     x=$(echo "scale=2; -$b/(2*$a)" | bc)
     echo "$x"
else
     echo "phuong trinh co 2 nghiem"
     x1=$(echo "scale=2; -($b + sqrt($delta))/(2*$a)" | bc)
     echo "x1= $x1"
     x2=$(echo "scale=2; -($b - sqrt($delta))/(2*$a)" | bc)
     echo "x2= $x2"
fi
exit 0

Tải mã nguồn chương trình