*Code
#!/bin/bash clear
echo "---mo phong cac phep toan---" echo -n "nhap a: " read a echo -n "nhap b: " read b IFS=: PS3="choice? " declare -i tich
select n in add sub mul div mod quit do
{
case $n in
"add") echo "Tong cua $a va $b la `expr $a + $b`";; "sub") echo "Hieu cua $a va $b la `expr $a - $b`";; "mul") {
tich=$a*$b
echo "Tich cua $a va $b la $tich" };;
"div") echo "Thuong cua $a va $b la `expr $a / $b`";; "mod") echo "So du cua $a va $b la `expr $a % $b`";; "quit") {
clear
exit 0 };;
*) echo "Dohhh! No such choice!" esac
echo -e "\nPress Enter to continue " read clear } done exit 0 *Kết quả
Bài 71.Viết chương trình tìm số trung gian và mã min của 3 số a,b,c *Code
#!/bin/bash clear
echo "---kiem tra so trung gian---" echo -n "nhap a: " read a echo -n "nhap b: " read b echo -n "nhap c: " read c max=$a min=$c if [ $max -lt $b ] then max=$b fi if [ $max -lt $c ] then max=$c fi if [ $min -gt $a ]
then min=$a fi if [ $min -gt $b ] then min=$b fi
echo "so nho nhat: $min" echo "so lon nhat: $max"
trunggian=`expr $a + $b + $c - $max - $min` echo " So trung gian cua 3 so $* la : $trunggian" exit 0
*Kết quả
Bài 72 Viết chương trình cần tạo một thư mục trong linux *Code
#!/bin/bash clear
echo "----Chuong trinh tao thu muc---" echo "Nhap ten thu muc can tao:" read a
if mkdir $a then
echo "Tao thu muc $a thanh cong" else
echo "ko tao duoc thu muc $a" fi
Bài 73: Viết chương trình xác định là tam giác gì khi cho biết độ dài 3 cạnh *Code
#!/bin/bash clear
echo "---xac dinh tam giac---" echo -n "nhap a: " read a echo -n "nhap b: " read b echo -n "nhap c: " read c declare -i tam1 declare -i tam2 tam1=$a+$b tam2=$a+$c tam3=$b+$c
if (( tam1 < $c || tam2 < $b || tam3 < $a )) then
echo " $* khong phai la 3 canh cua tam giac" exit 0 fi if (( $a == $b || $c == $b || $a == $c )) then kt=1 fi if [ $a -eq $b ] then if [ $a -eq $c ] then kt=2 fi fi tam1=$a*$a+$b*$b tam2=$c*$c
if [ $tam2 -eq $tam1 ] then
fi
tam1=$a*$a+$c*$c tam2=$b*$b
if [ $tam2 -eq $tam1 ] then
kt=4 fi
tam1=$b*$b+$c*$c tam2=$a*$a
if [ $tam2 -eq $tam1 ] then
kt=5 fi
case $kt in
"1") echo " $* la 3 canh cua tam giac can";; "2") echo " $* la 3 canh cua tam giac deu ";; "3") echo " $* la 3 canh cua tam giac vuong ";; "4") echo " $* la 3 canh cua tam giac vuong";; "5") echo " $* la 3 canh cua tam giac vuong";; *) echo " $* la 3 canh cua tam giac thuong";; esac
exit 0
*Kết quả
Bài 75: Viết chương trình giải bất phương trình bậc 2 *Code
#!/bin/bash
echo -n "Nhap a: ";read a echo -n "Nhap b: ";read b echo -n "Nhap c: ";read c
if [ $a = 0 ] && [ $b = 0 ] && [ $c = 0 ] then
else
if [ $a = 0 ] then
if [ $b = 0 ] then
echo "Khong phai bat phuong trinh. moi nhap lai he so" else
if [ $b -gt 0 ] then
x1=$(echo "scale=3;-($c/$b)"|bc) echo "nghiem cua phuong trinh: x>$x " fi
if [ $b -lt 0 ] then
x2=$(echo "scale=3;-($c/$b)"|bc) echo "Nghiem cua phuong trinh x<$x2" fi fi fi fi if [ $a -gt 0 ] then denta=$[($b*$b)-(4*$a*$c)] if [ $denta = 0 ] || [ $denta -lt 0 ] then
echo "phuong trinh dung voi moi x" fi
if [ $denta -gt 0 ] then
x1=$(echo "scale=3;(-($b)-sqrt($denta))/(2*$a)"|bc) x2=$(echo "scale=3;(-($b)+sqrt($denta))/(2*$a)"|bc) echo "nghiem cua bat phuong trinh x<$x1"
echo "Hoac x>$x2" fi fi if [ $a -lt 0 ] then denta=$[($b*$b)-(4*$a*$c)] if [ $denta = 0 ] || [ $denta -lt 0 ] then
echo "bat phuong trinh vo nghiem" fi
if [ $denta -gt 0 ] then
x1=$(echo "scale=3;(-($b)-sqrt($denta))/(2*$a)"|bc) x2=$(echo "scale=3;(-($b)+sqrt($denta))/(2*$a)"|bc)
echo "nghiem cua bat phuong trinh x>$x1" echo "Hoac x<$x2" fi fi exit 0 *Kết quả
Bài 76 :Viết chương trình tính trung bình tích và trung bình cộng của n giá trị *Code
#/bin/bash
echo "----Chuong trinh tinh gia tri TB cong va TB tich cua n so ----" echo -n "n= "
read n
for ((i=0; i<n; i++)) do echo -n "a[$i] " = read a[$i] done s=0 t=1
for ((i=0; i<n; i++)) do
s=$(($s+${a[$i]})) t=$(($t*${a[$i]})) done
echo "Trung binh cong= $(echo "scale = 4;$s/$n"|bc)" echo "Trung binh tich= $(echo "scale = 4;$t/$n"|bc)" exit 0
*Kết quả
Bài 77: Viết chương trình tìm file trong linux *Code
#!/bin/bash
echo "----Chuong trinh tim file trong linux----" echo -n "nhap ten file: "
read name if [ -f $name ] then
echo -n "$name co ton tai" echo -n "Duong dan : $name " echo $(pwd)
else
echo "$name khong ton tai" fi
exit
*Kết quả
Bài 78: Viết chương trình in ra n số fibonaci đầu tiên *Code
#!/bin/bash
echo -n "nhap so a=" read a f1=0 f2=1 i=1 echo "$i" while [ $i -lt $a ] do fi=$(($f1+$f2)) f1=$(($f2)) f2=$(($fi)) echo "$fi" i=$(($i+1)) done exit 0 *Kết quả
Bài 79 : Chương trình kiểm tra số nhập vào có phải thuộc dãy fibonaci hay ko ? *Code
#!/bin/bash
echo "----Chuong trinh kiem tra 1 so co thuoc day fibonaci hay ko ----" echo -n "Nhap a="
read a f1=0 f2=1 fi=f2 i=1 while [ $i -le $a ]
do fi=$(($f1 + $f2)) f1=$(($f2)) f2=$(($fi)) if [ $fi -eq $a ] then
echo "$a la so fibonaci" fi
i=$(($i + 1)) done
exit 0
*Kết quả
Bài 80 : Viết chương trình ktra phải là số hoàn hảo hay ko ? *Code
#!/bin/sh
echo "---Chuong trinh ktra phai so hoan hao hay ko ?---- " echo "Nhap so a="
read a s=0 i=0 j=$(($a / 2)) while [ $i -le $j ] do i=$(($i + 1)) k=$(($a % $i)) if [ $k -eq 0 ] then s=$(($s + $i)) fi done if [ $s -eq $a ]
echo "$a la so hoan thien" else
echo "$a ko phai la so hoa thien" fi
exit 0
*Kết quả
Bài 81: Viết chương trình ktra 1 số nhập vào là số âm hay là số dương *Code
#!/bin/bash
echo "----Chuong trinh kiem tra so am hay la so duong----" echo -n "Nhap a="
read a; if [ $a -lt 0 ]
then echo "$a la so nguyen am" else echo "$a la so nguyen duong" fi
exit 0
Bài 82:Viết chương trình xác nhận mã cá nhân *Code
#!/bin/bash
echo "----Chuong trinh ktra ma ca nhan----" echo -n "Enter password"
read trythis
while [ "$trythis" != "phatbk" ];do echo "Sorry, try again"
read trythis done exit 0
*Kết quả
Bài 83:Viết chương trình tìm ước của 1 số *Code
#!/bin/bash
echo "----Chuong trinh tim uoc cua so n----" echo -n "Nhap n=" read n i=1 while [ $i -lt $n ] do k=$(($n % $i)) if [ $k -eq 0 ] then echo "$i" fi i=$(($i + 1))
done
*Kết quả
Bài 84: Chương trình chuyển từ nhị phân sang thập phân: *.Code: #! /bin/sh luythua(){ #x^y local x=$1 local y=$2 local gt=1
while [ $y -ne 0 ];do gt=$(($gt\*$x)) y=$(($y-1)) done echo $gt return 0 } chuyen(){ local n=$1 local bit=0 local count=0 local tem=$n local dec=0
while [ $n -ne 0 ];do local bit=$(($n%10)) if [ $bit -gt 1 ];then return 0 fi n=$(($n/10)) lt=$(luythua 2 $count) lt=$(($bit\*$lt)) dec=$(($dec+$lt)) count=$(($count+1)) done
echo "$tem = $dec" return 1
}
echo "Chuong trinh chuyen tu nhi phan sang thap phan" echo "N= "
read n
if [ $? -eq 0 ];then
echo "So nhap vao khong hop le" else
echo $msg fi
exit 0
*.Kết quả
Bài 85: Chương trình chuyển 1 số từ thập phân sang bat phân: *.Code:
#! /bin/sh
echo "Chuong trinh chuyen tu thap phan sang bat phan" echo "N= "
read n bit=0
while [ $n -ne 0 ];do bit=$(($n%16)) case $bit in "10" ) hex="A$hex" ;; "11" ) hex="B$hex" ;; "12" ) hex="C$hex" ;; "13" ) hex="D$hex" ;; "14" ) hex="E$hex" ;; "15" ) hex="F$hex" ;; * ) hex="$bit$hex" ;; esac n=$(($n/16)) done hex="0x$hex" if [ $bit -ne 0 ];then
echo "$n = $hex" else echo "$n = 0" fi exit 0 *.Kết quả
Bài 86: Chương trình chuyển số từ thập phân sang bát phân *.Code:
#! /bin/sh
echo "Chuong trinh chuyen tu thap phan sang bat phan" echo "N= "
read n bit=0
while [ $n -ne 0 ];do bit=$(($n%8)) oct="$bit$oct" n=$(($n/8)) done
oct="0$oct" if [ $bit -ne 0 ];then
echo "$n = $oct" else echo "$n = 0" fi exit 0 *.Kết quả
Bài 87: Chương trình demo cách sử dụng lệnh case: *.Code:
#! /bin/bash
echo "Chuong trinh demo cach su dung lenh case" echo "Nhap mot so duong bat ky tu 2 den 8" read n case $n in "2" ) echo "Thu 2";; "3" ) echo "Thu 3";; "4" ) echo "Thu 4";; "5" ) echo "Thu 5";; "6" ) echo "Thu 6";; "7" ) echo "Thu 7";; "8" ) echo "Chu nhat";;
* ) echo "So vua nhap khong hop le";; esac
exit 0
*.Kết quả:
Bài 88: Chương trình demo lệnh for: *.Code:
#! /bin/bash
echo "Chuong trinh demo cach su dung lenh for"
echo "Nhap mot so chuoi cac so, moi so cach nhau ki tu trang" read n
count=0
echo "Liet ke cac so vua nhap" for i in $n; do
count=$(($count+1)) echo "$count, $i" done
*.Kết quả
Bài 89: Chương trình demo sử dụng lệnh if: *.Code:
#! /bin/bash
echo "Chuong trinh demo cach su dung lenh if else" echo "Nhap mot so duong bat ky"
read n
if [ $n -lt 0 ]; then
echo "So vua nhap khong hop le " elif [ $n -le 10 ];then
echo "So vua nhap thuoc khoang [0..10]" elif [ $n -le 20];then
echo "So vua nhap thuoc khoang [10..20]" fi
*.Kết quả
Bài 90: Chương trình demo sử dụng lệnh while *.Code:
#! /bin/bash
echo "Chuong trinh demo cach su dung lenh while" echo "Nhap mot so n > 0"
read n count=0
echo "Cac so tu nhien tu 1 den n" until [ $count -eq $n ];do
count=$(($count+1)) echo "$count"
done exit 0
Bài 91: Chương trình tính n giai thừa: *.Code:
#!/bin/sh
echo "Chuong trinh tinh n!" read n index=0 gt=1 while [ $index -lt $n ] do index=$(($index + 1)) gt=$(($gt * $index)) done echo "$n!= $gt" exit 0 *.Kết quả
Bài 92: Chương trình hoán vị 2 số: *.Code:
#!/bin/bash
echo "Chuong trinh hoan vi hai so" HoanVi()
{
echo "nhap a" read a echo "nhap b"
read b
echo "truoc khi hoan vi:a=$a b= $b" if [ a != "" ] && [ b != "" ]; then HV_tmp=$a a=$b b=$HV_tmp fi return 0 } HoanVi
echo "sau khi hoan vi: a=$a
exit 0
*.Kết quả
Bài 93: Chương trình liệt kê dãy số fibonaci từ 1 đến n: *.Code:
#! /bin/sh
echo "Chuong trinh liet ke day so fibonaci tu 1 den N" echo "N = ?" read n a=1 b=1 ds=1 if [ $n -le 0 ]; then
echo "So nhap vao qua nho" else
while [ $b -le $n ];do tem=$b
b=$(($b+$a)) a=$tem
ds="$ds $a" done
echo "Danh sach so fibonaci <= $n" echo $ds
fi exit 0
*.Kết quả
Bài 94: Chương trình liệt kê các số nguyên tố nhỏ hơn n *.Code: #! /bin/bash check(){ local n=$1 if [ $n -lt 2 ] then return 0 else local i=2 local m=$(($n/2)) while [ $i -le $m ] do local stop=$(($n%$i)) if [ $stop -eq 0 ] then break else i=$(($i+1)) fi done if [ $i -le $m ] then return 0 else return 1 fi fi }
echo "Chuong trinh liet ke cac so nguyen to tu 1 den N" echo "Nhap n =" read n i=2 while [ $i -le $n ] do $(check $i) if [ $? -eq 1 ]
then
ds="$ds $i" fi
i=$(($i+1)) done
echo "Danh sach cac so nguyen to: " echo $ds
exit 0
*.Kết quả
Bài 95: Liệt kê các số chẵn từ 1 đến n: *.Code: #! /bin/bash check(){ n=$1 return $(($n%2)) }
echo "Chuong trinh liet ke so chan tu 1 den N" echo "Nhap n ="
read n
if [ $n -lt 1 ] then
echo "So n nhap vao qua nho" else i=1 while [ $i -le $n ] do $(check $i) if [ $? -eq 0 ] then ds="$ds $i" fi i=$(($i+1)) done
echo "Danh sach so chan: " echo $ds
fi exit 0
*.Kết quả
Bài 96: Chương trình liệt kê số chính phương từ 1 đến n *.Code: #! /bin/bash check(){ local h=$((1+$1/2)) local i=0 while [ $i -le $h ]; do local temp=$(($i*$i)) i=$(($i+1))
if [ $temp -eq $1 ]; then return 1
fi done return 0 }
echo "Liet ke so chinh phuong tu 0 den n" echo "Nhap mot so duong bat ky"
read n
if [ $n -lt 0 ]; then
echo "So vua nhap qua nho!" else i=0 while [ $i -le $n ]; do $(check $i) if [ $? -eq 1 ]; then ds="$ds $i" fi i=$(($i+1)) done
echo "Danh sach so chinh phuong: $ds" fi
*.Kết quả
Bài 97: Chương trình kiểm tra năm nhuận: *.Code: #! /bin/sh check(){ local n=$1 if [ $(($n%400)) -eq 0 ];then return 1 fi
if [ $(($n%4)) -eq 0 ] && [ $(($n%100)) -ne 0 ];then return 1
fi
return 0 }
echo "Chuong trinh kiem tra nam nhuan" echo "Nhap mot nam bat ky n= ?"
read nam $(check $nam)
if [ $? -eq 1 ];then
echo "$nam la nam nhuan" else
echo "$nam khong phai nam nhuan" fi
exit 0
Bài 98 : Chương trình nối 2 xâu: *.Code:
#! /bin/sh
echo "Chuong trinh noi 2 xau chu" echo "Nhap xau thu nhat: "
read st1
echo "Nhap xau thu hai: " read st2
echo "Ket qua: $st1$st2" exit 0
Chạy demo:
Bài 98: Chương trình đổi số từ bát phân sang thập phân: *.Code: #! /bin/sh luythua(){ #x^y local x=$1 local y=$2 local gt=1
while [ $y -ne 0 ];do gt=$(($gt\*$x)) y=$(($y-1)) done echo $gt return 0 } chuyen(){ local n=$1 local bit=0 local count=0 local tem=$n local dec=0
while [ $n -ne 0 ];do local bit=$(($n%10)) if [ $bit -gt 7 ];then return 0 fi n=$(($n/10)) lt=$(luythua 8 $count)
lt=$(($bit\*$lt)) dec=$(($dec+$lt)) count=$(($count+1)) done
echo "$tem = $dec" return 1
}
echo "Chuong trinh chuyen tu bat phan sang thap phan" echo "N= "
read n
msg=$(chuyen $n) if [ $? -eq 0 ];then
echo "So nhap vao khong hop le" else
echo $msg fi
exit 0
*.Kết quả
Bài 99: Chương trình kiểm tra 1 số có phải là số chính phương: *.Code:
#! /bin/bash
echo "Kiem tra so chinh phuong" echo "Nhap mot so duong bat ky" read n
if [ $n -lt 0 ]; then
echo "So vua nhap qua nho!" else h=$((1+$n/2)) i=0 while [ $i -le $h ]; do temp=$(($i*$i)) i=$(($i+1))
if [ $temp -eq $n ]; then break
fi done
if [ $temp -eq $n ]; then
echo "$n la so chinh phuong" else
echo "$n khong phai la so chinh phuong" fi
fi exit 0
*.Kết quả
Bài 100: Chương trình in ra danh sách các thành viên trong nhóm và giáo viên hướng dẫn.
*.Code
#!/bin/bash
echo "************************************"
echo "* TRUONG DAI HOC BACH KHOA DA NANG *" echo "* KHOA CONG NGHE THONG TIN *"
echo "************************************" echo "* BAO CAO CHUYEN DE 2 *"
echo "* GVHD: THS NGUYEN VAN NGUYEN *" echo "* SVTH: 1.Nguyen van khanh -08T4 *"
echo "* 2.Hoang Nhat Truong-08T4 *" echo "* 3.Nguyen Ngoc Phat -08T3 *" echo "* 4.Nguyen Viet An -08T1 *"
echo "************************************"