Viết chương trình mô phỏng các phép toán *Code

Một phần của tài liệu shell full code tim hiểu (Trang 61 - 88)

*Code

#!/bin/bash clear

echo "---mo phong cac phep toan---" echo -n "nhap a: " read a echo -n "nhap b: " read b IFS=: PS3="choice? " declare -i tich

select n in add sub mul div mod quit do

{

case $n in

"add") echo "Tong cua $a va $b la `expr $a + $b`";; "sub") echo "Hieu cua $a va $b la `expr $a - $b`";; "mul") {

tich=$a*$b

echo "Tich cua $a va $b la $tich" };;

"div") echo "Thuong cua $a va $b la `expr $a / $b`";; "mod") echo "So du cua $a va $b la `expr $a % $b`";; "quit") {

clear

exit 0 };;

*) echo "Dohhh! No such choice!" esac

echo -e "\nPress Enter to continue " read clear } done exit 0 *Kết quả

Bài 71.Viết chương trình tìm số trung gian và mã min của 3 số a,b,c *Code

#!/bin/bash clear

echo "---kiem tra so trung gian---" echo -n "nhap a: " read a echo -n "nhap b: " read b echo -n "nhap c: " read c max=$a min=$c if [ $max -lt $b ] then max=$b fi if [ $max -lt $c ] then max=$c fi if [ $min -gt $a ]

then min=$a fi if [ $min -gt $b ] then min=$b fi

echo "so nho nhat: $min" echo "so lon nhat: $max"

trunggian=`expr $a + $b + $c - $max - $min` echo " So trung gian cua 3 so $* la : $trunggian" exit 0

*Kết quả

Bài 72 Viết chương trình cần tạo một thư mục trong linux *Code

#!/bin/bash clear

echo "----Chuong trinh tao thu muc---" echo "Nhap ten thu muc can tao:" read a

if mkdir $a then

echo "Tao thu muc $a thanh cong" else

echo "ko tao duoc thu muc $a" fi

Bài 73: Viết chương trình xác định là tam giác gì khi cho biết độ dài 3 cạnh *Code

#!/bin/bash clear

echo "---xac dinh tam giac---" echo -n "nhap a: " read a echo -n "nhap b: " read b echo -n "nhap c: " read c declare -i tam1 declare -i tam2 tam1=$a+$b tam2=$a+$c tam3=$b+$c

if (( tam1 < $c || tam2 < $b || tam3 < $a )) then

echo " $* khong phai la 3 canh cua tam giac" exit 0 fi if (( $a == $b || $c == $b || $a == $c )) then kt=1 fi if [ $a -eq $b ] then if [ $a -eq $c ] then kt=2 fi fi tam1=$a*$a+$b*$b tam2=$c*$c

if [ $tam2 -eq $tam1 ] then

fi

tam1=$a*$a+$c*$c tam2=$b*$b

if [ $tam2 -eq $tam1 ] then

kt=4 fi

tam1=$b*$b+$c*$c tam2=$a*$a

if [ $tam2 -eq $tam1 ] then

kt=5 fi

case $kt in

"1") echo " $* la 3 canh cua tam giac can";; "2") echo " $* la 3 canh cua tam giac deu ";; "3") echo " $* la 3 canh cua tam giac vuong ";; "4") echo " $* la 3 canh cua tam giac vuong";; "5") echo " $* la 3 canh cua tam giac vuong";; *) echo " $* la 3 canh cua tam giac thuong";; esac

exit 0

*Kết quả

Bài 75: Viết chương trình giải bất phương trình bậc 2 *Code

#!/bin/bash

echo -n "Nhap a: ";read a echo -n "Nhap b: ";read b echo -n "Nhap c: ";read c

if [ $a = 0 ] && [ $b = 0 ] && [ $c = 0 ] then

else

if [ $a = 0 ] then

if [ $b = 0 ] then

echo "Khong phai bat phuong trinh. moi nhap lai he so" else

if [ $b -gt 0 ] then

x1=$(echo "scale=3;-($c/$b)"|bc) echo "nghiem cua phuong trinh: x>$x " fi

if [ $b -lt 0 ] then

x2=$(echo "scale=3;-($c/$b)"|bc) echo "Nghiem cua phuong trinh x<$x2" fi fi fi fi if [ $a -gt 0 ] then denta=$[($b*$b)-(4*$a*$c)] if [ $denta = 0 ] || [ $denta -lt 0 ] then

echo "phuong trinh dung voi moi x" fi

if [ $denta -gt 0 ] then

x1=$(echo "scale=3;(-($b)-sqrt($denta))/(2*$a)"|bc) x2=$(echo "scale=3;(-($b)+sqrt($denta))/(2*$a)"|bc) echo "nghiem cua bat phuong trinh x<$x1"

echo "Hoac x>$x2" fi fi if [ $a -lt 0 ] then denta=$[($b*$b)-(4*$a*$c)] if [ $denta = 0 ] || [ $denta -lt 0 ] then

echo "bat phuong trinh vo nghiem" fi

if [ $denta -gt 0 ] then

x1=$(echo "scale=3;(-($b)-sqrt($denta))/(2*$a)"|bc) x2=$(echo "scale=3;(-($b)+sqrt($denta))/(2*$a)"|bc)

echo "nghiem cua bat phuong trinh x>$x1" echo "Hoac x<$x2" fi fi exit 0 *Kết quả

Bài 76 :Viết chương trình tính trung bình tích và trung bình cộng của n giá trị *Code

#/bin/bash

echo "----Chuong trinh tinh gia tri TB cong va TB tich cua n so ----" echo -n "n= "

read n

for ((i=0; i<n; i++)) do echo -n "a[$i] " = read a[$i] done s=0 t=1

for ((i=0; i<n; i++)) do

s=$(($s+${a[$i]})) t=$(($t*${a[$i]})) done

echo "Trung binh cong= $(echo "scale = 4;$s/$n"|bc)" echo "Trung binh tich= $(echo "scale = 4;$t/$n"|bc)" exit 0

*Kết quả

Bài 77: Viết chương trình tìm file trong linux *Code

#!/bin/bash

echo "----Chuong trinh tim file trong linux----" echo -n "nhap ten file: "

read name if [ -f $name ] then

echo -n "$name co ton tai" echo -n "Duong dan : $name " echo $(pwd)

else

echo "$name khong ton tai" fi

exit

*Kết quả

Bài 78: Viết chương trình in ra n số fibonaci đầu tiên *Code

#!/bin/bash

echo -n "nhap so a=" read a f1=0 f2=1 i=1 echo "$i" while [ $i -lt $a ] do fi=$(($f1+$f2)) f1=$(($f2)) f2=$(($fi)) echo "$fi" i=$(($i+1)) done exit 0 *Kết quả

Bài 79 : Chương trình kiểm tra số nhập vào có phải thuộc dãy fibonaci hay ko ? *Code

#!/bin/bash

echo "----Chuong trinh kiem tra 1 so co thuoc day fibonaci hay ko ----" echo -n "Nhap a="

read a f1=0 f2=1 fi=f2 i=1 while [ $i -le $a ]

do fi=$(($f1 + $f2)) f1=$(($f2)) f2=$(($fi)) if [ $fi -eq $a ] then

echo "$a la so fibonaci" fi

i=$(($i + 1)) done

exit 0

*Kết quả

Bài 80 : Viết chương trình ktra phải là số hoàn hảo hay ko ? *Code

#!/bin/sh

echo "---Chuong trinh ktra phai so hoan hao hay ko ?---- " echo "Nhap so a="

read a s=0 i=0 j=$(($a / 2)) while [ $i -le $j ] do i=$(($i + 1)) k=$(($a % $i)) if [ $k -eq 0 ] then s=$(($s + $i)) fi done if [ $s -eq $a ]

echo "$a la so hoan thien" else

echo "$a ko phai la so hoa thien" fi

exit 0

*Kết quả

Bài 81: Viết chương trình ktra 1 số nhập vào là số âm hay là số dương *Code

#!/bin/bash

echo "----Chuong trinh kiem tra so am hay la so duong----" echo -n "Nhap a="

read a; if [ $a -lt 0 ]

then echo "$a la so nguyen am" else echo "$a la so nguyen duong" fi

exit 0

Bài 82:Viết chương trình xác nhận mã cá nhân *Code

#!/bin/bash

echo "----Chuong trinh ktra ma ca nhan----" echo -n "Enter password"

read trythis

while [ "$trythis" != "phatbk" ];do echo "Sorry, try again"

read trythis done exit 0

*Kết quả

Bài 83:Viết chương trình tìm ước của 1 số *Code

#!/bin/bash

echo "----Chuong trinh tim uoc cua so n----" echo -n "Nhap n=" read n i=1 while [ $i -lt $n ] do k=$(($n % $i)) if [ $k -eq 0 ] then echo "$i" fi i=$(($i + 1))

done

*Kết quả

Bài 84: Chương trình chuyển từ nhị phân sang thập phân: *.Code: #! /bin/sh luythua(){ #x^y local x=$1 local y=$2 local gt=1

while [ $y -ne 0 ];do gt=$(($gt\*$x)) y=$(($y-1)) done echo $gt return 0 } chuyen(){ local n=$1 local bit=0 local count=0 local tem=$n local dec=0

while [ $n -ne 0 ];do local bit=$(($n%10)) if [ $bit -gt 1 ];then return 0 fi n=$(($n/10)) lt=$(luythua 2 $count) lt=$(($bit\*$lt)) dec=$(($dec+$lt)) count=$(($count+1)) done

echo "$tem = $dec" return 1

}

echo "Chuong trinh chuyen tu nhi phan sang thap phan" echo "N= "

read n

if [ $? -eq 0 ];then

echo "So nhap vao khong hop le" else

echo $msg fi

exit 0

*.Kết quả

Bài 85: Chương trình chuyển 1 số từ thập phân sang bat phân: *.Code:

#! /bin/sh

echo "Chuong trinh chuyen tu thap phan sang bat phan" echo "N= "

read n bit=0

while [ $n -ne 0 ];do bit=$(($n%16)) case $bit in "10" ) hex="A$hex" ;; "11" ) hex="B$hex" ;; "12" ) hex="C$hex" ;; "13" ) hex="D$hex" ;; "14" ) hex="E$hex" ;; "15" ) hex="F$hex" ;; * ) hex="$bit$hex" ;; esac n=$(($n/16)) done hex="0x$hex" if [ $bit -ne 0 ];then

echo "$n = $hex" else echo "$n = 0" fi exit 0 *.Kết quả

Bài 86: Chương trình chuyển số từ thập phân sang bát phân *.Code:

#! /bin/sh

echo "Chuong trinh chuyen tu thap phan sang bat phan" echo "N= "

read n bit=0

while [ $n -ne 0 ];do bit=$(($n%8)) oct="$bit$oct" n=$(($n/8)) done

oct="0$oct" if [ $bit -ne 0 ];then

echo "$n = $oct" else echo "$n = 0" fi exit 0 *.Kết quả

Bài 87: Chương trình demo cách sử dụng lệnh case: *.Code:

#! /bin/bash

echo "Chuong trinh demo cach su dung lenh case" echo "Nhap mot so duong bat ky tu 2 den 8" read n case $n in "2" ) echo "Thu 2";; "3" ) echo "Thu 3";; "4" ) echo "Thu 4";; "5" ) echo "Thu 5";; "6" ) echo "Thu 6";; "7" ) echo "Thu 7";; "8" ) echo "Chu nhat";;

* ) echo "So vua nhap khong hop le";; esac

exit 0

*.Kết quả:

Bài 88: Chương trình demo lệnh for: *.Code:

#! /bin/bash

echo "Chuong trinh demo cach su dung lenh for"

echo "Nhap mot so chuoi cac so, moi so cach nhau ki tu trang" read n

count=0

echo "Liet ke cac so vua nhap" for i in $n; do

count=$(($count+1)) echo "$count, $i" done

*.Kết quả

Bài 89: Chương trình demo sử dụng lệnh if: *.Code:

#! /bin/bash

echo "Chuong trinh demo cach su dung lenh if else" echo "Nhap mot so duong bat ky"

read n

if [ $n -lt 0 ]; then

echo "So vua nhap khong hop le " elif [ $n -le 10 ];then

echo "So vua nhap thuoc khoang [0..10]" elif [ $n -le 20];then

echo "So vua nhap thuoc khoang [10..20]" fi

*.Kết quả

Bài 90: Chương trình demo sử dụng lệnh while *.Code:

#! /bin/bash

echo "Chuong trinh demo cach su dung lenh while" echo "Nhap mot so n > 0"

read n count=0

echo "Cac so tu nhien tu 1 den n" until [ $count -eq $n ];do

count=$(($count+1)) echo "$count"

done exit 0

Bài 91: Chương trình tính n giai thừa: *.Code:

#!/bin/sh

echo "Chuong trinh tinh n!" read n index=0 gt=1 while [ $index -lt $n ] do index=$(($index + 1)) gt=$(($gt * $index)) done echo "$n!= $gt" exit 0 *.Kết quả

Bài 92: Chương trình hoán vị 2 số: *.Code:

#!/bin/bash

echo "Chuong trinh hoan vi hai so" HoanVi()

{

echo "nhap a" read a echo "nhap b"

read b

echo "truoc khi hoan vi:a=$a b= $b" if [ a != "" ] && [ b != "" ]; then HV_tmp=$a a=$b b=$HV_tmp fi return 0 } HoanVi

echo "sau khi hoan vi: a=$a

exit 0

*.Kết quả

Bài 93: Chương trình liệt kê dãy số fibonaci từ 1 đến n: *.Code:

#! /bin/sh

echo "Chuong trinh liet ke day so fibonaci tu 1 den N" echo "N = ?" read n a=1 b=1 ds=1 if [ $n -le 0 ]; then

echo "So nhap vao qua nho" else

while [ $b -le $n ];do tem=$b

b=$(($b+$a)) a=$tem

ds="$ds $a" done

echo "Danh sach so fibonaci <= $n" echo $ds

fi exit 0

*.Kết quả

Bài 94: Chương trình liệt kê các số nguyên tố nhỏ hơn n *.Code: #! /bin/bash check(){ local n=$1 if [ $n -lt 2 ] then return 0 else local i=2 local m=$(($n/2)) while [ $i -le $m ] do local stop=$(($n%$i)) if [ $stop -eq 0 ] then break else i=$(($i+1)) fi done if [ $i -le $m ] then return 0 else return 1 fi fi }

echo "Chuong trinh liet ke cac so nguyen to tu 1 den N" echo "Nhap n =" read n i=2 while [ $i -le $n ] do $(check $i) if [ $? -eq 1 ]

then

ds="$ds $i" fi

i=$(($i+1)) done

echo "Danh sach cac so nguyen to: " echo $ds

exit 0

*.Kết quả

Bài 95: Liệt kê các số chẵn từ 1 đến n: *.Code: #! /bin/bash check(){ n=$1 return $(($n%2)) }

echo "Chuong trinh liet ke so chan tu 1 den N" echo "Nhap n ="

read n

if [ $n -lt 1 ] then

echo "So n nhap vao qua nho" else i=1 while [ $i -le $n ] do $(check $i) if [ $? -eq 0 ] then ds="$ds $i" fi i=$(($i+1)) done

echo "Danh sach so chan: " echo $ds

fi exit 0

*.Kết quả

Bài 96: Chương trình liệt kê số chính phương từ 1 đến n *.Code: #! /bin/bash check(){ local h=$((1+$1/2)) local i=0 while [ $i -le $h ]; do local temp=$(($i*$i)) i=$(($i+1))

if [ $temp -eq $1 ]; then return 1

fi done return 0 }

echo "Liet ke so chinh phuong tu 0 den n" echo "Nhap mot so duong bat ky"

read n

if [ $n -lt 0 ]; then

echo "So vua nhap qua nho!" else i=0 while [ $i -le $n ]; do $(check $i) if [ $? -eq 1 ]; then ds="$ds $i" fi i=$(($i+1)) done

echo "Danh sach so chinh phuong: $ds" fi

*.Kết quả

Bài 97: Chương trình kiểm tra năm nhuận: *.Code: #! /bin/sh check(){ local n=$1 if [ $(($n%400)) -eq 0 ];then return 1 fi

if [ $(($n%4)) -eq 0 ] && [ $(($n%100)) -ne 0 ];then return 1

fi

return 0 }

echo "Chuong trinh kiem tra nam nhuan" echo "Nhap mot nam bat ky n= ?"

read nam $(check $nam)

if [ $? -eq 1 ];then

echo "$nam la nam nhuan" else

echo "$nam khong phai nam nhuan" fi

exit 0

Bài 98 : Chương trình nối 2 xâu: *.Code:

#! /bin/sh

echo "Chuong trinh noi 2 xau chu" echo "Nhap xau thu nhat: "

read st1

echo "Nhap xau thu hai: " read st2

echo "Ket qua: $st1$st2" exit 0

Chạy demo:

Bài 98: Chương trình đổi số từ bát phân sang thập phân: *.Code: #! /bin/sh luythua(){ #x^y local x=$1 local y=$2 local gt=1

while [ $y -ne 0 ];do gt=$(($gt\*$x)) y=$(($y-1)) done echo $gt return 0 } chuyen(){ local n=$1 local bit=0 local count=0 local tem=$n local dec=0

while [ $n -ne 0 ];do local bit=$(($n%10)) if [ $bit -gt 7 ];then return 0 fi n=$(($n/10)) lt=$(luythua 8 $count)

lt=$(($bit\*$lt)) dec=$(($dec+$lt)) count=$(($count+1)) done

echo "$tem = $dec" return 1

}

echo "Chuong trinh chuyen tu bat phan sang thap phan" echo "N= "

read n

msg=$(chuyen $n) if [ $? -eq 0 ];then

echo "So nhap vao khong hop le" else

echo $msg fi

exit 0

*.Kết quả

Bài 99: Chương trình kiểm tra 1 số có phải là số chính phương: *.Code:

#! /bin/bash

echo "Kiem tra so chinh phuong" echo "Nhap mot so duong bat ky" read n

if [ $n -lt 0 ]; then

echo "So vua nhap qua nho!" else h=$((1+$n/2)) i=0 while [ $i -le $h ]; do temp=$(($i*$i)) i=$(($i+1))

if [ $temp -eq $n ]; then break

fi done

if [ $temp -eq $n ]; then

echo "$n la so chinh phuong" else

echo "$n khong phai la so chinh phuong" fi

fi exit 0

*.Kết quả

Bài 100: Chương trình in ra danh sách các thành viên trong nhóm và giáo viên hướng dẫn.

*.Code

#!/bin/bash

echo "************************************"

echo "* TRUONG DAI HOC BACH KHOA DA NANG *" echo "* KHOA CONG NGHE THONG TIN *"

echo "************************************" echo "* BAO CAO CHUYEN DE 2 *"

echo "* GVHD: THS NGUYEN VAN NGUYEN *" echo "* SVTH: 1.Nguyen van khanh -08T4 *"

echo "* 2.Hoang Nhat Truong-08T4 *" echo "* 3.Nguyen Ngoc Phat -08T3 *" echo "* 4.Nguyen Viet An -08T1 *"

echo "************************************"

Một phần của tài liệu shell full code tim hiểu (Trang 61 - 88)

Tải bản đầy đủ (DOC)

(88 trang)
w