Tìm ước chung lớn nhất bang shell trong linux

24.03.2014

Lập trình Shell, Linux code tim so chan le shell linux, code tim so nguyen to shell linux, code tim uoc chung lon nhat shell linux, ekingnguyen, lap trinh shell, shell linux, shell-script, tim chan le shell, tim so nguyen to, tim so nguyen to shell, tim tong chan le, tim uoc chung lon nhat, tim uoc chung lon nhat shel

Tìm ước chung lớn nhất – Tìm số chẳn lẻ – shell

yêu cầu: 

1.Nhập N từ bàn phím

2.Tìm ước ước chung lớn nhất 

3.Tìm tổng ước chung là số lẽ và số chẳn

4.Đếm xem có bao nhiêu ước số là số nguyên tố

Note: yêu cầu này làm dựa trên các yếu tố đầu vào hoàn hảo.Nếu các bạn tham khảo muốn hoàn chỉnh thì cần test thêm phần yếu tố đầu vào.

code: shell-script

#!/bin/bash
# phan tim ra cac uoc so #
rm -rf kq
rm -rf kqsnt
read -p “nhap so m: ” M
N=$M
lim=$N
while [[ $lim -ne 0 ]]
do
a=$[[ $M % $lim]]
b=$[[ $N % $lim]]
if [ $a -eq 0 -a $b -eq 0 ];then
echo $lim >> kq
fi
lim=$[[$lim -1]]
done

# phan tim tong chan le #
for LINE in `cat kq`
do
test=$[[$LINE%2]]
if [ $test -eq 0 ];then
tongchan=$[[$tongchan+$LINE]]
else
tongle=$[[$tongle+$LINE]]
fi
done

# kiem tra so nguyen to #
for LINE in `cat kq`
do
kt=0
X=$LINE
for [[ i=2 ;i < $X/2 ;i++ ]]
do
if [[ $X % $i == 0 ]];then
[[ kt = $kt + 1 ]]
fi
done
if [[ kt==0 ]];then
echo “$X” >> kqsnt
fi
done

# phan ket qua
echo “–ket qua–“
echo “–Tong uoc le : “$tongle
echo “–Tong uoc chan : “$tongchan
echo -e “–Cac uoc cua $M la: \n`cat kq`”
echo “–Uoc chung lon nhat : `cat kq | sort -n | tail -n 1`”
echo -e “–Co `cat kqsnt | sort -n | uniq | wc -l` so nguyen to la :\n`cat kqsnt`”

ước chung lớn nhất
lập trình shell

Ekingnguyen

Thông tin tài liệu

Ngày đăng: 24/10/2014, 13:37

Code shell full cho các bạn tham khảo và tìm hiểu về shell, muốn học lập trình shell một cách tốt, hãy chọn tài liệu này, rất hữu ích cho các bạn mới bắt đầu. Nào hãy tải về và học nhéChúc bạn thành công trong việc học về shell Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II Bài 1: Viết chương trình tính diện tích tam giác bằng công thức herong S= ]][][[ cpbpapp −−− với p=[a+b+c]/2 *. 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]" | bc ] echo "nua chu vi cua tam giac la: $p" dt=$[ echo "scale=2; [sqrt[$p*[$p-$a]*[$p-$b]*[$p-$c]]]" | bc ] echo "Dien tich tam giac la: $dt" else echo " Khong phai la tam giac" fi exit 0 *.Kết quả: Bài 2: Tính n! *.Code #!/bin/sh echo "nhap n=" read n echo "chuong trinh tinh $n!" i=0 gt=1 while [ $i -lt $n ] GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 1 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II do i=$[[$i + 1]] gt=$[[$gt * $i]] done echo "$n!=$gt" exit 0 *.Kết quả Bài 3: Giải phương trình bậc nhất ax+b=0 *.Code #!/bin/sh echo " Nhap a" read a echo "\n Nhap 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 x=$[ echo "scale=2; [-$b/$a]" | bc] echo "nghiem phuong trinh la x=$x" fi exit 0 *.Kếtquả GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 2 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II Bài 4: Giải phương trình bậc hai ax+bx+c=0. Xét cả trường hợp a=0. *.Code #!/bin/sh echo " Nhap a" read a echo "\n Nhap b" read b echo " Nhap c" read c #Phuong trinh suy bien thanh phuong trinh bac nhat if [ $a -eq 0 ] then if [ $b -eq 0 ] then if [ $c -eq 0 ] then echo "Phuong trinh vo so nghiem" else echo "Phuong trinh vo nghiem" fi else x=$[ echo "scale=2; [-$c/$b]" | bc ] echo "nghiem phuong trinh la x=$x" fi else # Phuong trinh bac hai echo " Pt bac hai" delta=$[[$b*$b -4*$a*$c]] if [ $delta -lt 0 ] then echo "PT vo nghiem " else if [ $delta -eq 0 ] then x=$[ echo "scale=2; [-$b/$[[2*$a]]]" | bc ] echo "Pt co nghiem kep x1=x2= $x" else x1=$[ echo "scale=2; [[-$b+ [sqrt[$delta]]]]/$[[2*$a]]" | bc ] x2=$[ echo "scale=2; [[-$b-[sqrt[$delta]]]]/$[[2*$a]]" | bc ] echo " PT co hai nhiem x1=$x1 va x2=$x2" fi fi fi exit 0 GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 3 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II *.Kết quả Bài 5: Giải hệ phương trình bậc nhất : ax + by = c dx + ey = f *.Code #!/bin/bash echo "Giai he phuong trinh" echo "ax + by = c" echo "dx + ey =f" echo "Moi ban nhap:" echo -n "a = " read a echo -n "b = " read b echo -n "c = " read c echo -n "d = " read d echo -n "e = " read e echo -n "f = " read f D=$[[$a*$e-$b*$d]] Dx=$[[$c*$e-$b*$f]] Dy=$[[$a*$f-$c*$d]] if [ $D -ne 0 ] then x=$[ echo "scale=2; [$Dx/$D]" | bc ] echo " Nghiem x = $x" y=$[ echo "scale=2; [$Dy/$D]" | bc ] echo " y = $y" GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 4 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II else echo " He Vo nghiem" fi exit 0 *.Kết quả Bài 6: Tính tống số các số lẽ bé hơn n, với n la so nguyên. *.Code #!/bin/bash echo " Chuong trinh tinh cac so le nho hon n" echo " Moi ban nhap n : " read n i=1 sum=0 while [ $i -le $n ] # -le la nho hon hoac bang do if [ $[[$i%2]] -ne 0 ] # ne la khong bang then sum=$[[$sum+$i]] fi i=$[[$i+1]] done echo "$sum" exit 0 GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 5 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II *.Kết quả Bài 7: Tính chu vi và diện tích hình tròn bán kính r *.Code #!/bin/bash echo "Chuong trinh tinh dien tich va chu vi hinh tron" echo "Nhap ban kinh r = " read r pi=3.1459 cv=$[ echo "scale=2; [2*$pi*$r]" | bc ] dt=$[ echo "scale=2; [$pi*$r*$r]" | bc ] echo "Duong tron ban kinh r = $r co chu vi $cv va dien tich $dt" exit 0 *.Kết quả Bài 8: Tim Ước chung lớn nhất và Bội chung nhỏ nhất của hai số a, b nhập từ bàn phím *.Code #!/bin/bash echo " CHUONG TRINH TIM UCLN VA BCNN" echo " Moi ban nhap hai so " echo -n "a = " read a echo -n "b= " read b Tich=$[[$a*$b]] while [ $a -ne $b ] GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 6 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II do if [ $a -gt $b ] then a=$[[$a-$b]] else b=$[[$b-$a]] fi done echo "UCLN la : $a" bcnn=$[[$Tich/$a]] echo "BCNN la : $bcnn" exit 0 *.Kết quả Bai 9. Tim max, min của ba so a, b, c nhập từ bàn phím *.Code #!/bin/bash echo "Chuong trinh tinh max min cua 3 so" echo -n "nhap a = " read a echo -n "nhap b = " read b echo -n "nhap c = " read c if [ $a -gt $b ] && [ $a -gt $c ] then echo " max = $a" else if [ $b -gt $c ] then echo " max = $b " else echo "max = $c" fi GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 7 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II fi #Tim min if [ $a -lt $b ] && [ $a -lt $c ] then echo " min = $a" else if [ $b -lt $c ] then echo "max = $b " else echo "min = $c" fi fi exit 0 *.Kết quả Bài 10. Tính trung binh cộng của các số nhỏ hơn hoặc bằng S= [1+2+3+…+n]/n *.Code #!/bin/bash echo "Chuong trinh tinh [0+1+2+ +n]/n " echo " nhap n = " read n i=0 sum=0 while [ $i -lt $n ] do i=$[[$i+1]] sum=$[[$sum+i]] done kq=$[ echo "scale=2 ; [$sum/$n]" | bc ] echo "Ket qua : $kq" exit 0 GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 8 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II *.Kết quả Bài 11: Viết chương trình tính tiền Karaoke, biết giờ vào là a, giờ ra là b, nếu vào trươc 18h thì 50k/h, sau 18h thì tính 60k/h. *.Code #!/bin/bash echo " CHUONG TRINH TINH TIEN KARAOKE " echo "Gio vao a: " read a echo "Gio ra b: " read b if [ $a -ge 0 ] && [ $b -lt 18 ] then echo "Tientra=$[[$[[$b-$a]]*50000]]" else if [ $a -gt 18 ] && [ $b -le 24 ] then echo "Tien tra=$[[$[[$b-$b]]*60000]]" else truoc=$[[$[[18-$a]]*50000]] echo "Truoc 18h=$truoc" sau=$[[ $[[$b-18]]*60000]] echo "Sau 18h=$sau" echo "Tong so tien tra: $[[$truoc+$sau]]" fi fi exit 0 *.Kết quả GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 9 Đại học bách khoa Đà Nẵng-Khoa CNTT Thực hành chuyên đề II Bài 12: Viết chương trình tính s=1+1/2+1/3+1/4+…+1/n [n>0] *.Code #!/bin/bash echo " Tinh s=1+1/2+1/3+ +1/n" echo "nhap n" read n i=1 sum=0 while [ $i -le $n ] && [ $n -gt 0 ] do sum=$[ echo "scale=2 ; [$sum+1/$i]" | bc ] i=$[[$i+1]] done echo " ket qua s= $sum" exit 0 *Kết quả Bai 13: Viết chương trinh minh họa các phép toán với một menu nhu sau Bấm 1: Tổng =a+b 2: Hiệu =a-b 3: Tích =a*b 4: Thuong=a/b 0: Thoát Còn khi bấm các số khác đều không thực hiện được *.Code #!/bin/bash chon=1 while [ $chon -ne 0 ] do echo "CHUONG TRINH MINH HOA CAC PHEP TOAN " echo "0:Thoat" echo "1:Cong" echo "2:Tru" echo "3:Nhan" echo "4:Chia" read chon if [ $chon -ne 0 ] GVHD: Thầy Nguyễn Văn Nguyên SVTH: Nhóm 06A 10 [...]... Đà Nẵng-Khoa CNTT Thực hành chuyên đề II fi done echo " Gia tri lon nhat cua mang la max = $max" } # Ham tim min Tim_ min[]{ min=${a[0]} i=1 while [ $i -lt $n ] do if [ $min -gt ${a[$i]} ] then min=${a[$i]} else i=$[[$i+1]] fi done echo " Gia tri nho nhat cua mang la min = $min" } nhap_mang Tim_ max Tim_ min exit 0 *.Kết quả Bài 18 Nhập mảng một chiều gồm n phần tử số nguyên hãy viết các hàm thực hiện các... Thực hành chuyên đề II Bài 17 Nhập mảng một chiều gồm n phần tử,và tìm max ,min của các phần tử trong mảng đó * .Code #!/bin/bash # Ham nhap mang nhap_mang[]{ echo -n "Nhap so luong phan tu cua mang " read n i=0 while [ $i -lt $n ] do echo -n "a[$i]=" read a[$i] i=$[[$i+1]] done } #Ham tim max Tim_ max[]{ max=${a[0]} i=1 while [ $i -lt $n ] do if [ $max -lt ${a[$i]} ] then max=${a[$i]} else i=$[[$i+1]]... 123421 không phải là số đối xứng * .Code #!/bin/bash echo " CHUONG TRINH KIEM TRA N SO DOI XUNG ? " echo -n "Nhap so n= " read n sogoc=$n sodao=0 while [ $sogoc -gt 0 ] do donvi=$[[$sogoc%10]] sodao=$[[$sodao*10+$donvi]] sogoc=$[[$sogoc/10]] done if [ $sodao -eq $n ] then echo "$n la so Doi xung" else echo "$n Khong doi xung" fi exit 0 *.Kết quả Bài 15: In bảng cửu chương * .Code #!/bin/bash echo " BANG CUU... trình đếm số dòng của một tập tin * .Code #!/bin/bash echo "nhap ten file:" read file echo "Dem so dong $file" { n=0 while read line do n=$[[$n+1]] done echo "So dong cua tap tin $file la:$n" }

- Xem thêm -

Xem thêm: shell full code tim hiểu, shell full code tim hiểu,

Bài Viết Liên Quan

Chủ Đề