100 Bai Lap Trinh Shell

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