shell
TRANSCRIPT
1. Kiểm tra số chính phương#!/bin/bashclearecho "----Kiem tra so chinh phuong----"echo -n "Nhap 1 so nguyen : ";read ni=1;m=`expr $n / 2`while [ $i -le $m ]do
t=`expr $i \* $i`if [ $t -eq $n ]
thenecho "$n la so chinh phuong"exit 0
elsei=`expr $i + 1`
fidoneecho "$n la khong phai so chinh phuong"exit 0
2. Tính n!!#!/bin/bashclearecho " ---Tinh n!!---"echo "-------------------"echo -n "Nhap vao 1 so : ";read nkt=`expr $n % 2`if [ $kt -eq 0 ]
theni=2p=1while [ $i -le $n ]
do
p=`expr $p \* $i`i=`expr $i + 2`
doneelse
i=1p=1while [ $i -le $n ]
dop=`expr $p \* $i`i=`expr $i + 2`
donefiecho "$n!! = $p"exit 0
3. Tính tiền karaoke ,nếu giờ < 18h : 50000/1h, >18h 60000/1h#!/bin/bashclearecho "----bai toan tinh tien Karaoke-----"echo -n "Gio bat dau : "; read xecho -n "Gio ket thuc : "; read yif [ $y -le 18 ] then
tam=`expr $y - $x`tien=`expr $tam \* 50000`echo "So tien phai tra : $tien"
elseif [ $x -le 18 ]
thentam1=`expr 18 - $x`tam2=`expr $y - 18`tien=`expr $tam1 \* 50000 + $tam2 \* 60000`echo "So tien phai tra : $tien"
else
tam=`expr $y - $x`tien=`expr $tam3 \* 60000`echo "So tien phai tra : $tien"
fifiexit 0
4. Kiểm tra mùa trong năm#!/bin/bashclearecho " ----Kiem tra mua trong nam----"echo "-------------------------------------"echo -n "Nhap thang : ";read ncase $n in1 | 2 | 3 ) echo "Mua xuan";;4 | 5 | 6 ) echo "Mua ha";;7 | 8 | 9 ) echo "Mua thu";;10 | 11 | 12 ) echo "Mua dong";;*) echo "Ban nhap dl khong dung (thang <12)"esacexit 0
5. Kiểm tra tam giác#!/bin/bashclearecho " ---Kiem tra tam giac---"echo "-----------------------------"echo "Nhap 3 canh : "
echo -n "a : ";read aecho -n "b : ";read becho -n "c : ";read cab=$(($a + $b))bc=$(($b + $c))ac=$(($a + $c))if [ $ab -gt $c ] && [ $bc -gt $a ] && [ $ac -gt $b ]
thenecho "($a,$b,$c) la 3 canh cua 1 tam giac "exit 0
fiecho "($a,$b,$c) ko phai la 3 canh cua 1 tam giac "exit 0
6. Xuất nhập mảngclear
echo " ----Xuat nhap mang----"
echo "-----------------------------"
declare -a arr
echo -n "Nhap so phan tu : ";read n
echo "Nhap cac pt cua mag "
for((i=0;i<n;i++))
do
echo -n "a[$i] : ";read arr[$i]
done
echo "Mang vua nhap "
echo ${arr[@]}
exit 0
7. Max số a,b#!/bin/sh
clear
echo -n "Nhap gia tri a : ";read a
echo -n "Nhap gia tri b : ";read b
if [ $a -le $b ]
then
echo "Max($a,$b) = $b"
else
echo "Ma($a,$b) = $a"
fi
exit 0
8. Kiểm tra số nguyên tố#!/bin/bashclear
echo "----Kiem tra so nguyen to----"
echo -n "Nhap 1 so nguyen : ";read n
m=`expr $n / 2`
i=2
if [ $n -eq 1 ]
then
echo "$n la so nguyen to"
exit 0
else
while [ $i -le $m ]
do
t=`expr $n % $i`
if [ $t -eq 0 ]
then
echo "$n khong phai so nguyen to"
exit 0
else
i=`expr $i + 1`
fi
done
fi
echo "$n la so nguyen to "
exit 0
9. Kiểm tra số đối xứng#!/bin/sh
clear
echo " ----kiem tra so doi xung----"
echo "-----------------------------------"
echo -n "Nhap a = " ; read a
b=$a
dx=$(($b%10))
b=$(($b/10))
while [ $b -ne 0 ]
do
tam=$(($dx*10))
dx=$(($tam+$(($b%10))))
b=$(($b/10))
done
if [ $dx -eq $a ]
then
echo "$a la so doi xung"
else
echo "$a khong phai la so doi xung"
fi
exit 0
10.In các số hoàn thiện <100#!/bin/bashclear
echo "----In cac so hoan thien < 100----"
k=1
n=1
while [ $n -le 100 ]
do
i=2
s=1
m=`expr $n / 2`
while [ $i -le $m ]
do
t=`expr $n % $i`
if [ $t -eq 0 ]
then
s=`expr $s + $i`
fi
i=`expr $i + 1`
done
if [ $s -eq $n ]
then
echo " $n"
fi
n=`expr $n + 1`
done
exit 0
11.Tính tổng các chữ số của 1 số#!/bin/bash
clear
echo "------Tinh tong cac chu so cua 1 so-------"
echo -n "Nhap 1 so nguyen bat ki : ";read x
s=0
while [ $x -gt 0 ]
do
u=`expr $x % 10`
x=`expr $x / 10`
s=`expr $s + $u`
done
echo "Tong cac pt cua $x la : $s"
exit 0
12. In ra các biển số xe có 4 chữ số có tổng =9#!/bin/bashclearecho " ---In ra bang so xe co tong < 9---"echo "---------------------------------------"for((i=0;i<=9;i++))
dofor((j=0;j<=9;j++))
dofor((k=0;k<=9;k++))
do
for((h=0;h<=9;h++))do
tam=`expr $i + $j + $k + $h`if [ $tam -eq 9 ]then echo -n " $i$j$k$h "fi
doneecho -n
doneecho -n
doneecho -n
doneexit 0
13. Đảo hang và cột 1 ma trận#!/bin/bash
clear
echo " --Dao hang cot ma tran--"
echo "----------------------------"
echo "Nhap ma tran"
echo -n "Nhap so hang: ";read m
echo -n "Nhap so cot: ";read n
declare -a arr
for((i=0;i<m;i++))
do
for((j=0;j<n;j++))
do
echo -n "arr[$i $j]=";read arr[$i$j]
done
done
echo "----------------------------"
for((i=0;i<m;i++))
do
for((j=0;j<n;j++))
do
echo -n " ${arr[$i$j]} "
done
echo ""
done
echo "----------------------------"
echo -n "Nhap hang can doi:";read x
echo -n "va "; read y
for((i=0;i<n;i++))
do
tam=${arr[$x$i]}
arr[$x$i]=${arr[$y$i]}
arr[$y$i]=$tam
done
echo "Xuat ma tran vua doi"
echo "---------------------"
for((i=0;i<m;i++))
do
for((j=0;j<n;j++))
do
echo -n " ${arr[$i$j]} "
done
echo ""
done
exit 0
14.Nhập vào 1 mảng và đảo các pt của nó#!/bin/bash
clear
echo "Nhap vao mot mang va dao cac phan tu"
echo "------------------------------------"
echo "Nhap so phan tu cua mang"
echo -n "n=";read n
declare -a arr
echo "nhap cac phan tu: "
for((i=0;i<n;i++))
do
echo -n "[$i]=";read a[$i]
done
echo "xuat mang vua nhap"
echo ${a[*]}
tg=n/2
for((j=0;j<tg;j++))
do
tam=${a[$j]}
a[$j]=${a[$(($n-$j-1))]}
a[$(($n-$j-1))]=$tam
done
echo "Mang vua dao:"
echo ${a[*]}
exit 0
15.Nhập 1 số và tìm số lần xuất hiện của nó trong 1 mảng#!/bin/bash
clear
echo " ---Nhap 1 so k va 1 mang---"
echo " Dem so lan xuat hien cua k trong mang"
echo "------------------------------------------"
declare -a arr
echo -n "So phan tu mang : ";read n
echo "Nhap cac phan tu mang : "
for((i=0;i<$n;i++))
do
echo -n "a[$i] : "; read a[$i]
done
echo "Mang vua nhap "
echo ${a[@]}
echo -n "Nhap 1 so k : ";read k
count=0
for((j=0;j<$n;j++))
do
if [ ${a[$j]} -eq $k ]
then
count=`expr $count + 1`
fi
done
echo "So lan xuat hien cua k trong mang la : $count"
exit 0
16.Đếm pt có trong ma trận#!/bin/bash
clear
echo "Dem phan tu co trong ma tran"
echo "----------------------------"
echo "Nhap ma tran"
echo -n "Nhap hang: ";read m
echo -n "Nhap cot: ";read n
declare -a arr
for((i=0;i<m;i++))
do
for((j=0;j<n;j++))
do
echo -n "[$i $j]=";read arr[$i$j]
done
done
echo "----------------------------"
echo -n "Nhap phan tu can tim: ";read pt
dem=0
for((i=0;i<m;i++))
do
for((j=0;j<n;j++))
do
if [ $pt -eq ${arr[$i$j]} ]
then
dem=$(($dem+1))
fi
done
done
echo "Co $dem phan tu $pt trong ma tran"
exit 0
17.Nhập mảng từ file#!/bin/bash
clear
echo "Chuong trinh nhap mang tu file"
arr=(`cat /root/btchde2/input.txt`)
echo "Mang vua duoc nhap tu file:"
echo ${arr[*]}
n=${#arr[*]}
for((i=0;i<$(($n-1));i++))
do
for((j=$(($i+1));j<$n;j++))
do
if [ ${arr[$i]} -ge ${arr[$j]} ]
then
tam=${arr[$i]}
arr[$i]=${arr[$j]}
arr[$j]=$tam
fi
done
done
echo "mang sau khi sap xep"
echo ${arr[*]}
exit 0
18.Nhập n và in các số fibonaxi <=n#!/bin/bash
clear
echo " ---Nhap n va in cac so fibonaxi <= n---"
echo "----------------------------------------------"
echo -n "Nhap n : ";read n
i=0
j=1
echo "0"
f=1
while [ $f -lt $n ]
do
echo $f
f=$(($i + $j))
i=$j
j=$fdoneexit 0
19.Nhập vào 2 mảng và in ra giao của 2 mảng #!/bin/bashclearecho " ---Nhap vao 2 mang---"echo " In ra giao cua 2 mang "echo "------------------------------------------"declare -a adeclare -a bdeclare -a cecho -n "So phan tu mang mang a : ";read necho "Nhap cac phan tu mang a : "for((i=0;i<$n;i++))do
echo -n "a[$i] : "; read a[$i]doneecho -n "So phan tu mang mang b : ";read mecho "Nhap cac phan tu mang b : "for((j=0;j<$m;j++))do
echo -n "b[$j] : "; read b[$j]doneecho "Mang vua nhap "echo "Mang a :" echo ${a[@]}echo "Mang b :"echo ${b[@]}q=0for((k=0;k<$n;k++))do
for((h=0;h<$m;h++))do
if [ ${a[$k]} -eq ${b[$h]} ]then
c[$q]=${a[$k]}q=`expr $q + 1`
fidone
doneecho "Giao 2 mang la : "echo ${c[@]}exit 0
20. Nhập xuất mảng#!/bin/bash
clear
echo " ----Xuat nhap mang----"
echo "-----------------------------"
declare -a arr
echo -n "Nhap so phan tu : ";read n
echo "Nhap cac pt cua mag "
for((i=0;i<n;i++))
do
echo -n "a[$i] : ";read arr[$i]
done
echo "Mang vua nhap "
echo ${arr[@]}
exit 0
21.Nhập xuất ma trận#!/bin/bash
clear
echo "Nhap xuat ma tran"
echo "-----------------"
echo -n "Nhap hang: ";read m
echo -n "Nhap cot: ";read n
declare -a arr
for((i=0;i<m;i++))
do
for((j=0;j<n;j++))
do
echo -n "[$i $j]=";read arr[$i$j]
done
done
echo "Xuat ma tran vua nhap"
echo "---------------------"
for((i=0;i<m;i++))
do
for((j=0;j<n;j++))
do
echo -n " ${arr[$i$j]} "
done
echo ""
done
exit 0
22. Nhập vào 2 số ,tìm max của 2 số#!/bin/sh
clear
echo -n "Nhap gia tri a : ";read a
echo -n "Nhap gia tri b : ";read b
if [ $a -le $b ]
then
echo "Max($a,$b) = $b"
else
echo "Ma($a,$b) = $a"
fi
exit 0
23. Nhập ma trận từ file#!/bin/bash
echo "Nhap ma tran tu file"
echo "--------------------"
{
sodong=0
while read line
do
sodong=$(($sodong+1))
echo "so dong:$sodong"
done
}
declare -a arr
declare -a b
arr=`cat /home/hkhoan/File_Matrix.txt`
na=${#arr[*]}
echo "so phan tu $na"
nb=$(($na/$sodong))
echo "so cot: $nb"
echo ${arr[*]}
echo "Xuat ma tran vua nhap"
for((i=0;i<sodong;i++))
do
for((j=0;j<nb;j++))
do
echo -n " ${b[$i$j]} "
done
echo ""
done24.Nhập vào 3 số và kiểm tra có thuộc bộ 3 số pithago không#!/bin/bash
clear
echo " ---Nhap 3 so va kiem tra co phai la bo ba so pithago khong---"
echo "-----------------------------------------------------------------"
echo -n "Nhap a : ";read a
echo -n "Nhap b : ";read b
echo -n "Nhap c : ";read c
a2=`expr $a \* $a`
b2=`expr $b \* $b`
c2=`expr $c \* $c`
ab=`expr $a2 + $b2`
bc=`expr $b2 + $c2`
ac=`expr $a2 + $c2`
if [ $ab -eq $c2 ] || [ $bc -eq $a2 ] || [ $ac -eq $b2 ]
then
echo "($a,$b,$c) la bo ba so pithago"
else
echo "($a,$b,$c) ko phai la bo ba so pithago"
fi
exit 0
25.Nhập mảng và sắp xếp mảng#!/bin/bash
clear
echo "Chuong trinh sap xep mang"
declare -a arr
echo -n "Nhap so phan tu n=";read n
echo "Nhap cac phan tu cua mang"
for((i=0;i<$n;i++))
do
echo -n "[$i]=";read a[$i]
done
echo "Xuat mang moi nhap: "
echo ${a[*]}
#sap xep mang tang dan
for((i=0;i<$(($n-1));i++))
do
for((j=$(($i+1));j<$n;j++))
do
if [ ${a[$i]} -ge ${a[$j]} ]
then
tam=${a[$i]}
a[$i]=${a[$j]}
a[$j]=$tam
fi
done
done
echo "Mang sau khi sap xep: "
echo ${a[*]}
exit 0
26.Nhập m và in ra n nhỏ nhất sao cho n!>=m#!/bin/bash
clear
echo "---Nhap m va in ra n nho nhat sao cho n!>=m"
echo "-------------------------------------------"
giaithua()
{
m=$1
gt=1
for((j=2;j<=$m;j++))
do
gt=$(($gt*$j))
done
echo $gt
}
echo -n "Nhap m : ";read x
for((i=1;i<=$x;i++))
do
gtn=`giaithua i`
if [ $gtn -ge $x ]
then
break
fi
done
echo "n : $i"
exit 0
27.Nhập mảng và tìm kiếm trong mảng với mảng đọc từ file#!/bin/bash
clear
echo "Chuong trinh tim kiem trong mang"
arr=(`cat /root/btchde2/input.txt`)
echo "cac phan tu cua mang la:"
echo ${arr[*]}
echo "------------------------------"
n=${#arr[*]}
thoat=1
while [ $thoat -eq 1 ]
do
echo -n "Nhap phan tu can tim t=";read t
for((i=0;i<n;i++))
do
if [ ${arr[$i]} -eq $t ]
then
break
fi
done
if [ $i -eq $n ]
then
echo "khong co $t trong mang"
else
echo "co $t trong mang"
fi
echo "------------------------------"
echo -n "ban co muon tiep tuc khong?(0/1):";read thoat
done
exit 0
28.Tính tổng từ 1- $1#!/bin/sh
echo "Chuong trinh tinh tong cac so tu 1 - $1"
index=0
tong=0
while [ $index -lt $1 ]
do
index=$(($index+1))
tong=$(($tong+$index))
done
echo "Tong=$tong"
exit 0
29. Nhập 1 ma trân và tính tổng trên đường chéo chính
#!/bin/bash
clear
echo "Tinh tong tren duong cheo chinh cua ma tran vuong"
echo "-------------------------------------------------"
echo -n "Nhap n=";read n
declare -a arr
for((i=0;i<n;i++))
do
for((j=0;j<n;j++))
do
echo -n "[$i $j]=";read arr[$i$j]
done
done
echo "---------------------"
for((i=0;i<n;i++))
do
for((j=0;j<n;j++))
do
echo -n " ${arr[$i$j]} "
done
echo ""
done
echo "---------------------"
tong=0
for((i=0;i<n;i++))
do
tong=$(($tong+${arr[$i$i]}))
done
echo " Tong cac phan tu tren duong cheo chinh: $tong"
exit 0
30.Nhập 1 mảng và tính tổng các số chẵn lẻ trong mảng#!/bin/bash
clear
echo "Tinh tong cac so chan le trong mang"
echo "mang nhap tu file"
echo "-----------------------------------"
a=(`cat /root/btchde2/input.txt`)
echo "Mang vua duoc nhap tu file:"
echo ${a[*]}
n=${#a[*]}
t=1
tongchan=0;tongle=0
for((i=0;i<n;i++))
do
if [ ${a[$i]} -ge $t ]
then
tam=$((${a[$i]}%2))
if [ $tam -eq 0 ]
then
tongchan=$(($tongchan+${a[$i]}))
else
tongle=$(($tongle+${a[$i]}))
fi
fi
done
echo "Tong cac so chan: $tongchan"
echo "Tong cac so le : $tongle"
exit 0
31.Nhập 1 dãy số và tính trung bình cộng và trung bình nhân#!/bin/bash
clear
echo " ---Nhap day so va tinh trung binh cong,tb nhan---"
echo "-------------------------------------------------------"
echo -n "Nhap tong so phan tu : ";read n
declare -a arr
for((i=0;i<$n;i++))
do
echo -n "a[$i] : ";read a[$i]
done
echo ${a[@]}
s=0
p=1
for((i=0;i<$n;i++))
do
s=`expr ${a[$i]} + $s`
p=`expr ${a[$i]} \* $p`
done
bc=`expr $s / $n`
bn=`expr $p / $n`
echo "Trung binh cong cua day so : $bc"
echo "Trung binh nhan cua day so : $bn"
exit 0
32.Nhập 1 soosvaf in các ước số của nó#!/bin/bash
clear
echo " ---Nhap n va in cac uoc so cua no---"
echo "-------------------------------------------"
echo -n "Nhap n : ";read n;
echo "Danh sach cac uoc so cua $n"
for ((i=1;i<=$n;i++))
do
tam=$(($n % $i))
if [ $tam -eq 0 ]
then
echo $i
fi
done
exit 0
33.Nhập 1 mảng và xóa các pt trong mảng#!/bin/bash
clear
echo "Xoa cac phan tu trong mang"
echo "--------------------------"
chon()
{
echo "Chon 1 tuy chon :"
echo "1.xoa theo chi so"
echo "2.xoa phan tu bang phan tu nhap vao"
read kt
}
Xoa1()
{
echo -n "Nhap index=";read index
unset arr[$index]
echo "Mang sau khi xoa:"
echo ${arr[*]}
}
Xoa2()
{
echo -n "Nhap phan tu can xoa: pt=";read pt
n=${#arr[*]}
for((i=0;i<n;i++))
do
while [ ${arr[$i]} -eq $pt ]
do
unset arr[$i]
done
done
echo "Mang vua xoa:"
echo ${arr[*]}
}
arr=(`cat /root/btchde2/input.txt`)
echo "cac phan tu cua mang la:"
echo ${arr[*]}
kt=0
chon
if [ $kt -eq 1 ]
then
Xoa1
else
Xoa2
fi
exit 0