Thứ Hai, 26 tháng 1, 2015

chuyển đổi độ C => độ F, tính tổng, trung bình cộng, tìm số nguyên tố...

chuyển đổi độ C =>độ F, tính tổng, trung bình cộng, tìm số nguyên tố.


---Đây là bài viết bao gồm mã giả và sơ đồ khối một cách đơn giản nhất bằng tiếng việt cho những người mời học môn C như mình và mong sao nó cũng dễ hiểu với tất cả mọi người.

đề bài 1 (chuyển đổi độ C => độ F): 

1. Write a pseudo code and draw a flowchart to accept a value in degrees Celsius and to convert it into Fahrenheit. [Hint: C/5 = (F-32)/9]

  tạm dịch: (theo google :)) ) : 1. Viết một mã giả và vẽ một sơ đồ để chấp nhận một giá trị trong độ C và chuyển đổi nó thành Fahrenheit. [Gợi ý: C / 5 = (F-32) / 9]


mã giả:


B1:  vào C
B2: F = C/5*9+32
B3: kết luận F.

sơ đồ khối:

chuyen-doi-do-C-do-F
sơ đồ khối của thuật chuyển đổi độ C => độ F



bài 2:( tính tổng, trung bình cộng,) . 

 2:  Write a pseudo code and flowchart to accept a student’s marks in Physics, Chemistry, and Biology. The total of these marks as well as the average should be displayed.

tạm dịch: (theo google dịch ) :  Viết một mã giả và sơ đồ để chấp nhận vết của một sinh viên ngành Vật lý, Hóa học, Sinh học và. Tổng của các nhãn hiệu này cũng như trung bình sẽ được hiển thị.


mã giả:

B1: vào T,L,H
B2:TONG = T+L+H
            TBC= TONG/3
B3: kết luận TONG, TBC

sơ đồ khối:


tinh-tong-trung-binh-cong
sơ đồ khối của thuật tính tổng và trung bình cộng


Bài 3(tìm số nguyên tố...): 

3: Write flowchart to check a any number  (0-N), is it a prime?

tạm dịch (theo google dịch ) Viết sơ đồ để kiểm tra một số bất kỳ (0-N), nó là một nguyên tố?



mã giả:

B1: Vào N
B2: i = 2
B3: Nếu sô dư của N/i = 0 => N không phải số nguyên tố.
            Nếu không
i = i+1 
                        Nếu i = N-1 => là số nguyên tố
B4: quay lại B3

giải thích: vì số nguyên tố là số chỉ chia hết cho 1 và chính nó không tính số 0,1,2  nên muốn kiểm tra N bất kì là số nguyên tố hay không thì ta xét N chia từ 2 tới N-1 chỉ cần có 1 số cho đáp án chia hết (tức là số dư sau khi chia = 0) thì kết luận không phải số nguyên tố... còn sau khi kiêm tra hết mà không có số nào thì chăc chắn số đó là số nguyên tố...

sơ đồ khối:

tim-so-nguyen-to
sơ đồ khối xác định số nguyên tố




Tối ưu thuật toán: 
   - nhận thấy rằng... các số nguyên tố bao giờ cũng là các số lẻ ( 5 ,7 ,11, 13 ... ) nên sẽ không bao giờ chia hết cho các số chẵn ( 2, 4, 6, 8 ...) nên ta chỉ cần xét i với các số lẻ
   - ngoài ra... với N bất kì... thì các số i thuộc N/2 tới N sẽ không bao giờ thu được kết quả chia hết vì  vậy ta xét i từ 2 -> N/2
   - lại nhận thấy rằng... với bất kì  một số N không phải số nguyên tố nào thì ta đều có i là căn bậc 2  N bé hơn N/2 và thỏa mãn N chia hết cho i và N > (N/2) (vd: 9,16, 25...) như vậy ta chỉ cần xét i từ 2 tới căn bậc 2 của N sẽ tối ưu được thuật toán của bài toán

#kết lại: để xác định N là nguyên tố hay không ta chỉ cho i là số lẻ và kéo từ 3 tới căn bậc 2 của N xét với số dư của N/i thì thuật toán sẽ được tối ưu 1 cách đáng kể.

mã giả:

B1: Vào N

B2:  Nếu N > 3 là sai thì => N không phải nguyên tố.

B3: i = 3
       CB2 = sqrt N  //căn bậc 2 của N//

B4: Nếu            sô dư của N/i = 0 => N không phải số nguyên tố.            
              Nếu không      i = i+2 
             
B5: Nếu CB2>i là sai  => N là số nguyên tố

B6: quay lại B4

sơ đồ khối:



toi-uu-tim-so-nguyen-to
thuật toán tìm số nguyên tố (tối ưu thuật toán)





Nâng cao bài toán: Nhập 1 số bất kì... kiểm tra xem từ 0 tới số đó có bao nhiêu số nguyên tố và hiển thị từng số nguyên tố đó
---Phân tích: đề bài này thực chất là kết hợp của cả 2 cách giải bài toán trên. ta sẽ có mã giả như sau:

B1: Vào N

B2: Nếu N <=  3 thì N không có số nguyên tố nào

B3: i = 3
       j = 3
       k =0

B4: Nếu i < N thì  CB2= sqrt i //căn bậc 2 của i//
             Nếu không : kết luận có k số nguyên tố từ 0 -N
     
B5:CB2 = sqrt i

B6: Nếu CB2 <= j thì
                        i là số nguyên tố
                        j = 3
                        k = k + 1
                        i = i +2
                        quay lại B4

 B7:  Nếu i mod j = 0 thì
                        j = 3
                        i = i +2 
                        quay lại B4
                 nếu không thì
                        j = j +2
                        quay lại B6
                 


Sơ đồ khối


dem-so-nguyen-to
sơ đồ khối thuật toán đếm số nguyên tố từ 0 tới N bất kì









kêt lại: đây là những kiến thức cơ bản nhất trước khi vào học code :3... Nếu bài viết của mình hay thì đề nghị các bạn like còn không thì comment chỗ mà các bạn bảo không hay :3 :3 :3 :))
.
.
Cảm ơn vì đã đọc :3 :3 :3 bài viết 100% là kiến thức của mình không sao chép... :))



6 nhận xét: