Chủ Nhật, 18 tháng 5, 2014

[Shell Linux] Bài giải thi giữa học kỳ Lập Trình Shell 2014


Các bài giải sau mang tính chất tham khảo:

Câu 1: Câu này mình đã có đăng trong mấy bài cũ rồi, nên không giải nữa.

Câu 2:
#!/bin/bash
read -p "Nhap gia tri n: " n
PS3="Xin chon menu: "
menu=("Tong_1_toi_n" "Tich_1_toi_n" "1-2+3-4+5" "Exit")
select chon in "${menu[@]}"
do
case $chon in
"Tong_1_toi_n")
        tong=0
        for i in `seq 1 $n`
        do
                tong=$(( $tong + $i ))
        done
        echo "tong bang: " $tong
;;
"Tich_1_toi_n")
        tich=1
        for j in `seq 1 $n`
        do
                ((tich=$tich \* $j))
        done
        echo "tich bang: " $tich       
;;
"1-2+3-4+5")
        kq=0
        for k in `seq 1 $n`
        do
                if [[ $k%2 -eq 1 ]]
                then ((kq=$kq + $k))
                else  ((kq=$kq - $k))
                fi
        done
        echo "Ket qua cua: 1-2+3-4+5.... = "$kq
;;
"Exit")
break
 ;;
esac

done

Câu 3:
#!/bin/bash
#cau a
echo -n "Tong so cuoc da goi: "
awk -F" " '{tong+=$3} END {print tong}' dt

echo -n "Tong cac so da goi:  "
awk -F" " '{print $2}' dt | sort -n | uniq  | wc -l

#cau b
echo "Thong ke so lan goi den mot so dt: "
awk -F" " '{print $2}' dt | sort | uniq -c

echo "So dien thoai co thoi gian goi lau nhat: "
cat dt | sort -nr -k1 | head -1 | awk -F" " '{print $2}'

Câu 4:
#!/bin/bash
rm -rf out
read -p "Nhap 1 so dien thoai: " sodt
for i in `cat /root/Desktop/mobi`
do
        echo $sodt |  grep $i>>out
done
a=`cat out`
if [[ $a != '' ]]
then
        echo "Day la so thuoc mang Mobi!"
else
        rm -rf out
        for i in `cat vina`
        do
                echo $sodt | grep $i>>out
        done
        a=`cat out`
        if [[ $a != '' ]] 
        then
                echo "Day la so Vina!"
        else
                rm -rf out
                for i in `cat viettel`
                do
                        echo $sodt | grep $i>>out
                done
                a=`cat out`
                if [[ $a != '' ]]
                then
                        echo "Day la so Viettel!"
                else
                        echo "So nay khong phai cua mobi, vina hay viettel!"           
                fi     
        fi
fi

Không có nhận xét nào:

Đăng nhận xét