49
1. Kiểm tra số chính phương #!/bin/bash clear echo "----Kiem tra so chinh phuong----" echo -n "Nhap 1 so nguyen : ";read n i=1; m=`expr $n / 2` while [ $i -le $m ] do t=`expr $i \* $i` if [ $t -eq $n ] then echo "$n la so chinh phuong" exit 0 else i=`expr $i + 1` fi done echo "$n la khong phai so chinh phuong" exit 0 2.Tính n!! #!/bin/bash clear echo " ---Tinh n!!---" echo "-------------------" echo -n "Nhap vao 1 so : ";read n kt=`expr $n % 2` if [ $kt -eq 0 ]

Shell

Embed Size (px)

Citation preview

Page 1: Shell

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

Page 2: Shell

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

Page 3: Shell

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 : "

Page 4: Shell

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]

Page 5: Shell

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

Page 6: Shell

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

Page 7: Shell

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 ]

Page 8: Shell

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 ]

Page 9: Shell

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

Page 10: Shell

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

Page 11: Shell

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

Page 12: Shell

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 ""

Page 13: Shell

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

Page 14: Shell

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

Page 15: Shell

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

Page 16: Shell

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`

Page 17: Shell

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

Page 18: Shell

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

Page 19: Shell

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

Page 20: Shell

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"

Page 21: Shell

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

Page 22: Shell

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

Page 23: Shell

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

Page 24: Shell

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]

Page 25: Shell

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

Page 26: Shell

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

Page 27: Shell

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))

Page 28: Shell

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`

Page 29: Shell

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++))

Page 30: Shell

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

Page 31: Shell

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

}

Page 32: Shell

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[*]}

Page 33: Shell

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

Page 34: Shell

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

Page 35: Shell

#!/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 ""

Page 36: Shell

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 "-----------------------------------"

Page 37: Shell

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"

Page 38: Shell

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

Page 39: Shell

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++))

Page 40: Shell

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 :"

Page 41: Shell

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

Page 42: Shell

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

Page 43: Shell