Upload
hoang-lao-ta
View
216
Download
33
Embed Size (px)
DESCRIPTION
Các bài tập cơ bản về lập trình shell
Citation preview
Thc hnh Chuyn 2
GVHD: Nguyn Vn Nguyn
100 bi lp trnh shell trong linux1. Chng trnh in ra tn nhm thc hinCode:
echo "*************************"
echo "* Le Minh Vuong *"
echo "* Truong Hoang Viet Hoa *"
echo "* Dang Van Tan *"
echo "* Tran Van Lanh *"
echo "* Tran Thi Thuy Linh *"
echo "*************************"
echo "* Lop: 08T4 *"
echo "* Nhom: 07A *"
echo "*************************"Kt qu:
2. Nhp vo 3 cnh ca tam gic tnh din tch ca tam gic bng cng thc Heron
Code:
#!/bin/bash
echo "CHUONG TRINH TINH DIEN TICH TAM GIAC"
echo "Nhap canh a:"
read a
echo "Nhap canh b:"
read b
echo "Nhap canh c:"
read c
if [ $(($a + $b)) -gt $c ] && [ $(($a + $c)) -gt $b ] && [ $(($b + $c)) -gt $a ]
then
p=$(echo "scale = 2; (($a + $b + $c)/2.0)" | bc)
echo "Dien tich tam giac la: "
echo x=$(echo "scale = 2; (sqrt($p*($p -$a)*($p-$b)*($p-$c)))" | bc)
else
echo "Ba canh nhap vao khong phai la canh cua tam giac"
fi
exit 0Kt qu:
3. Tm s ln nht trong 3 s nhp vo
Code:
#!/bin/sh
echo "TIM SO LON NHAT TRONG 3 SO NHAP VAO"
echo "Nhap a="
read a
echo "Nhap b="
read b
echo "Nhap c="
read c
max=$a
if [ $max -lt $b ] ; then
max=$b
fi
if [ $max -lt $c ] ; then
max=$c
fi
echo "So lon nhat la: $max"
exit 0Kt qu:
4. Tnh chu vi v din tch hnh ch nhtCode:
#!/bin/sh
echo "TINH CHU VI VA DIEN TICH HINH CHU NHAT"
echo -n "Nhap chieu dai hinh chu nhat: "
read a
echo -n "Nhap chieu rong hinh chu nhat: "
read b
echo "Chu vi la: $((2*$a+2*$b))"
echo "Dien tich la: $(($a*$b))"
exit 0
Kt qu:
5. Nhp vo s nguyn n. Tnh giai tha ca n.
Code:
#!/bin/sh
tinh(){
tong=1
echo -n "$1! = "
if [ $1 -eq 0 ]
then
echo "1"
else
for i in `seq 1 $1`;
do
tong=$(($tong * $i))
done
echo "$tong"
fi
exit 0
}
echo "TINH GIAI THUA SO NGUYEN NHAP VAO"
if [ ! $1 ]; then
echo -n "Nhap n: "
read n
tinh $n
else
tinh $1
fi
read n
exit 1
Kt qu:
6. Nhp vo 1 s nguyn n. Tnh tng t 1 n nCode:
#!/bin/sh
tinh(){
index=0
tong=0
while [ $index -lt $1 ]
do
index=$(($index+1))
tong=$(($tong+$index))
done
echo "Tong 1-$1=$tong"
exit 0
}
echo "TINH TONG TU 1 DEN N"
if [ ! $1 ]; then
echo -n "Nhap n:"
read n
tinh $n
else
tinh $1
fi
exit 0
Kt qu:
7. Nhp vo 1 s c 3 ch s t 100 n 999 ri in ra s o ngc ca s
Code:
#! /bin/bash
clear
# nhap vao mot so nam trong khoang 100->999 rui in dao nguoc vd: 123 -> 321
echo "DAO NGUOC SO NHAP VAO"
echo -n "Nhap a nam trong khoang [100...999]= "
read a
if [ $a -lt 100 ]; then
echo "Khong hop le"
elif [ $a -gt 999 ];then
echo "Khong hop le"
else
if [ `expr $a%100`!=0 ] ;then
t=`expr $a / 100` #lay phan nguyen
c=`expr $a % 100` #lay phan du
d=`expr $c / 10`
e=`expr $c % 10`
echo "So dao cua so $a la: $e$d$t"
else
echo "Khong hop le"
fi
#t=`expr $a/100`
fi
exit 0
Kt qu:
8. Nhp vo 2 s a v b sau tm c chung ln nht ca a v b
Code:
#!/bin/sh
echo "TIM UOC CHUNG LON NHAT "
echo -n "Nhap vao a="
read a
echo -n "Nhap vao b="
read b
if [ $a -lt $b ]
then tmp=$a
else
tmp=$b
fi
i=$tmp;
while [ 0 -lt $i ]
do
if [ $(($a%$i)) -eq 0 ]
then
if [ $(($b%$i)) -eq 0 ]
then echo "Uoc chung lon nhat cua ($a,$b) la:$i" ;break ;
fi
fi
i=$(($i-1))
done
exit 0Kt qu:
9. Nhp vo 2 s a v b sau tm bi chung nh nht ca a v b
Code:
#!/bin/sh
echo "TIM BOI CHUNG NHO NHAT"
echo -n "Nhap vao a="
read a
echo -n "Nhap vao b="
read b
if [ $a -lt $b ]
then tmp=$b
else
tmp=$a
fi
while [ 1 ]
do
if [ $(($tmp%$a)) -eq 0 ]
then
if [ $(($tmp%$b)) -eq 0 ]
then echo "Boi chung nho nhat cua ($a,$b)la :$tmp"; break ;
fi
fi
tmp=$(($tmp+1))
done
exit 0 Kt qu:
10. Nhp vo 1 s n sau in ra cc c ca nCode:
#!/bin/sh
echo "LIET KE TAT CA CAC UOC CUA MOT SO"
echo -n "Nhap vao so n="
read n
i=1
echo "Cac uoc so cua $n la:"
while [ $i -le $n ]
do
if [ $(($n%$i)) -eq 0 ]
then echo $i
fi
i=$(($i +1 ))
done
exit 0
Kt qu:
11. Nhp vo 1 s nguyn n. Kim tra n c phi l s nguyn t hay khngCode:
#!/bin/sh
echo "KIEM TRA SO NHAP VAO CO PHAI LA SO NGUYEN TO KHONG"
echo -n "Nhap n="
read n
i=2
if [ $n -eq 1 ]
then
echo "$n khong phai la so nguyen to"
elif [ $n -eq 2 ]
then echo "$n la so nguyen to"
else
while [ $i -lt $n ]
do
if [ $(($n%$i)) -eq 0 ]
then break
fi
i=$(($i+1))
done
if [ $i -eq $n ]
then
echo "$n la so nguyen to"
else
echo "$n khong phai la so nguyen to"
fi
fi
exit 0
Kt qu:
12. Nhp vo s nguyn n. In ra cc s nguyn t nh hn hoc bng n
Code:
#!/bin/sh
echo "IN RA DAY SO NGUYEN TO "
echo -n "Nhap n="
read n
if [ $n -le 2 ]
then
echo "2"
else
echo "2"
i=3
while [ $i -le $n ]
do
j=2
while [ $j -lt $i ]
do
if [ $(($i%$j)) -eq 0 ]
then break
else
j=$(($j+1))
fi
done
if [ $j -eq $i ]
then
echo "$i"
fi
i=$(($i+1))
done
fi
exit 0
Kt qu:
13. Tm s trung gian ca 3 s a, b, cCode:
#!/bin/sh
echo "TIOM SO TRUNG GIAN CUA 3 SO"
echo -n "Nhap vao a="
read a
echo -n "Nhap vao b="
read b
echo -n "Nhap vao c="
read c
echo -n "So trung gian cua ($a,$b,$c) la:"
if [ $a -lt $b ]
then max=$b
min=$a
else
max=$a
min=$b
fi
if [ $max -lt $c ]
then echo $max
elif [ $min -lt $c ]
then echo $c
else
echo $min
fi
exit 0
Kt qu:
14. Nhp vo s nguyn n. Kim tra n c phi l s i xng hay khng
Code:
#!/bin/sh
echo "KIEM TRA SO DOI XUNG"
echo -n "Nhap vao so can kiem tra: "
read n
j=0
x=$n
if [ $n -le 10 ]; then
echo "$x khong phai la so doi xung"
fi
if [ 10 -lt $n ]
then
while [ 0 -lt $n ]
do
i=$(($n%10))
j=$(($(($j*10))+$i))
n=$(($n/10))
done
if [ $j -eq $x ]
then echo "$x la so doi xung" ;
else
echo "$x khong phai la so doi xung" ;
fi
fi
exit 0Kt qu:
15. Nhp vo s nguyn a. In ra cc s i xng t 1 n aCode:
#!/bin/sh
echo "IN RA DAY SO DOI XUNG"
echo -n "Nhap vao gioi han a "
read a
echo "Day so doi xung tu 1 -> $a :"
if [ $a -le 10 ]; then
echo "Khong ton tai"
fi
if [ 10 -lt $a ]
then
k=11
while [ $k -le $a ]
do
j=0
x=$k
h=$k
while [ 0 -lt $h ]
do
i=$(($h%10))
j=$(($(($j*10))+$i))
h=$(($h/10))
done
if [ $j -eq $x ]
then echo -n " $x"
fi
k=$(($k+1))
done
fi
echo ""
exit 0
Kt qu:
16. Nhp vo s nguyn n. Kim tra n c phi l s hon ho hay khng
Code:
#!/bin/sh
echo "CHUONG TRINH KIEM TRA SO HOAN HAO"
echo -n "Nhap vao n="
read n
i=1
j=0
while [ $i -lt $n ]
do
if [ $(($n%$i)) -eq 0 ]
then j=$(($j+$i))
fi
i=$(($i +1 ))
done
if [ $j -eq $n ]
then
echo "$n la so hoan hao"
else
echo "$n khong phai la so hoan hao"
fi
exit 0
Kt qu:
17. Nhp vo s nguyn n. Kim tra n c phi l s chnh phng hay khng
Code:
#!/bin/sh
echo "KIEM TRA SO CHINH PHUONG"
echo -n "Nhap vao n="
read n
i=1
j=0
while [ $i -lt $n ]
do
if [ $(($i*$i)) -eq $n ]
then break;
fi
i=$(($i +1 ))
done
if [ $i -lt $n ]
then
echo "$n la so chinh phuong "
else
echo "$n khong phai la so chinh phuong"
fi
exit 0
Kt qu:
18. Nhp vo s nguyn n. In ra cc s chnh phng t 1 n n
Code:#!/bin/sh
echo "IN RA DAY SO CHINH PHUONG"
echo -n "Nhap vao n:"
read n
echo "Cac so chinh phuong tu 1->$n"
i=1
j=1
while [ 1 ]
do
j=$(($i*$i))
if [ $j -le $n ]
then echo -n " $j"
else
break
fi
i=$(($i+1))
done
echo ""
exit 0
Kt qu:
19. Nhp vo s nguyn n. Kim tra n c thuc dy Fibonaci hay khng.Code:
#!/bin/sh
echo "KIEM TRA MOT SO THUOC DAY FIBONACI"
echo -n "Nhap vao n="
read n
a=0
b=1
while [ 1 ]
do
c=$(($a+$b))
if [ $c -eq $n ]
then
echo "$n thuoc day Fibonaci" ;break ;
elif [ $n -lt $c ]
then
echo "$n khong thuoc day Fibonaci" ;break ;
fi
a=$b
b=$c
done
exit 0
Kt qu:
20. In ra n s Fibonaci u tin.
Code:
#!/bin/sh
echo "DAY SO FIBONACI DAU TIEN"
echo -n "Nhap vao n="
read n
echo "$n so Fibonaci dau tien la:"
if [ $n -eq 1 ]
then
echo "1 "
elif [ $n -eq 2 ]
then
echo -n "1 1 "
else
echo -n "1 1"
i=3
a=1
b=1
while [ $i -le $n ]
do
c=$(($a + $b))
echo -n " $c"
a=$b
b=$c
i=$(($i+1))
done
fi
echo ""
exit 0Kt qu:
21. Nhp n. Tnh trung bnh cng ca cc s t 1 n n.
Code:
#!/bin/sh
echo "TINH TRUNG BINH CONG "
echo -n "Nhap vao n="
read n
i=1
tong=0
while [ $i -le $n ]
do
tong=$(($tong +$i ))
i=$(($i+1))
done
echo "Tong cac so tu 1->$n la:$tong"
thuong=$(echo "scale=2;($tong/$n)" | bc )
echo "Trung binh cong :"
echo $thuong
exit 0
Kt qu:
22. Nhp vo mt s a. Tnh tng v tch cc ch s ca a.Code:
#!/bin/sh
echo "TINH TONG VA TICH CAC CHU SO"
echo -n "Nhap vao a:"
read a
tong=0
tich=1
while [ 0 -lt $a ]
do
i=$(($a%10))
tong=$(($tong + $i))
tich=$(($tich * $i))
a=$(($a/10))
done
echo "Tong cac chu so la:$tong"
echo "Tich cac chu so la:$tich"
exit 0Kt qu:
23. Gii phng trnh bc nht ax+b=0.Code:
#!/bin/sh
echo "GIAI PHUONG TRINH BAC NHAT AX+B=0"
echo -n "Nhap he so a="
read a
echo -n "Nhap he so 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
nghiem=$(echo "scale=2;(-$b/$a)" | bc)
echo "Nghiem phuong trinh la: $nghiem"
fi
exit 0Kt qu:
24. Vit chng trnh thc hin cc php ton +, -, *, / ca a v b nhp t bn phm.
Code:
#!/bin/sh
echo "CHUONG TRINH TINH TOAN CO BAN"
echo -n "Nhap a="
read a
echo -n "Nhap b="
read b
tong=$(($a+$b))
hieu=$(($a-$b))
tich=$(($a*$b))
thuong=$(echo "scale=2;($a/$b)" | bc)
echo "Tong= $tong"
echo "Hieu= $hieu"
echo "Tich= $tich"
echo "Thuong= $thuong"
exit 0
Kt qu:
25. Nhp vo s c 3 ch s. In ra cc ch s hang trm, hng chc, hng n v.
Code:
#!/bin/sh
echo "CHUONG TRINH NHAP 1 SO VA IN RA SO HANG TRAM, HANG CHUC, DON VI"
echo -n "Nhap n="
read n
dv=$(($n%10))
ch=$(((($n%100))/10))
tr=$(($n/100))
echo "Tram: $tr,Chuc: $ch,Donvi: $dv "
exit 0Kt qu:
26. Chng trnh nhp v xut ra mng 1 chiu.Code:
#/bin/bash
nhapmang()
{
echo -n "Nhap vao so phan tu cua mang : "
read n
for ((i=1; i