100 Bai Lap Trinh Shell

download 100 Bai Lap Trinh Shell

of 99

description

Các bài tập cơ bản về lập trình shell

Transcript of 100 Bai Lap Trinh Shell

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