Lý thuyết trọng tâm tin học 11 - Định hướng Khoa học máy tính kết nối bài 28: Thiết kế chương trình theo mô đun

Tổng hợp kiến thức trọng tâm Tin học 11 - Định hướng Khoa học máy tính kết nối tri thức bài 16: Công việc quản trị cơ sở dữ liệu. Tài liệu nhằm củng cố, ôn tập lại nội dung kiến thức bài học cho học sinh dễ nhớ, dễ ôn luyện. Kéo xuống để tham khảo


Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây

1. THIẾT KẾ CHƯƠNG TRÌNH THEO MÔ ĐUN

Bước 1. Thiết kế chung

Từ yêu cầu của bài toán, ta thấy có thể chia bài toán đã cho thành ba công việc chính, các công việc này tương đối độc lập với nhau.

1) Công việc nhập dữ liệu: Dữ liệu được nhập vào tệp Data.inp và được đọc để đưa vào chương trình.

2) Công việc xử lí dữ liệu: Các công việc chuẩn bị tính toán dữ liệu theo yêu cầu của bài toán.

3) Báo cáo, đưa dữ liệu ra theo yêu cầu.

Bước 2. Thiết lập công việc nhập dữ liệu

Thiết lập hàm NhapDL(fin) có tính năng đọc dữ liệu từ tệp Data.inp và đưa vào hai mảng P (mặt hàng) và S (doanh số). Hàm được mô tả tổng quát đọc dữ liệu từ tệp fin.

1 def NhapDL(fin):

2     f = open(fin,encoding="UTF-8")

3     P = []

4     S = []

5     for line in f:

6         A = line.split(",")

7         P.append(A[0])

8         S.append(float(A[1]))

9      f.close()

10     return P,S

Bước 3. Thiết lập công việc xử lí dữ liệu

Yêu cầu chính của báo cáo là lấy được thông tin của các mặt hàng có doanh số cao nhất và thấp nhất. 

→ Công việc xử lí xử liệu chính là cần sắp xếp lại các mảng P, S theo thứ tự tăng dàn của S (doanh số).

Hàm Sapxep(A,B) được thiết kế tổng quát sẽ sắp xếp lại hai mảng A, B nhưng theo thứ tự tăng dần của A.

1 def Sapxep(A,B):

2     n = len(A)

3     for i in range(1,n):

4       j = i

5       while j > 0 and A[j] < A[j-1]

6         A[j],A[j-1] = A[j-1],A[j]

7         B[j],B[j-1] = B[j-1],B[j]

8         j = j-1

Bước 4. Thiết lập báo cáo, đưa dữ liệu ra

  • Chức năng đưa dữ liệu ra tệp Data.out sẽ được mô tả trong hàm GhiDL(P,S,fout). Hàm này lấy dữ liệu từ các mảng P, S và đưa dữ liệu ra tệp fout.

1 def GhiDL(P,S,fout):

2     f = open(fout,"w",encoding="UTF-8")

3     n = len(P)

4     for i in range(n-1,n-4,-1):

5         print(P[i],S[i],file = f)

6      for i in range(2,-1,-1):

7         print(P[i],S[i],file = f)

8      f.close()

  • Mỗi công việc thiết kế trên được viết thành một hàm riêng biệt, độc lập với nhau. Các hàm này được gọi là các mô đun con của chương trình.
  • Chương trình chính sử dụng các chương trình con trên được mô tả đơn giản như sau:

1 fin = "Data.inp"

2 fout = "Data.out"

3 P,S = NhapDL(fin)

4 Sapxep(S,P)

5 GhiDL(P,S,fout)

=> Kết luận:

  • Phương pháp thiết kế chương trình theo mô đun sẽ tách bài toán lớn thành các bài toán nhỏ hơn, hay thành các mô đun, tương đối độc lập với nhau, sau đó tiến hành thiết kế thuật toán và chương trình cho từng mô đun con.
  • Mỗi mô đun có thể là một số hàm hoặc thủ tục độc lập. 
  • Chương trình chính là một bản ghép nối các hàm và thủ tục con.

2. LỢI ÍCH CỦA PHƯƠNG PHÁP THIẾT KẾ THEO MÔ ĐUN.

Công việc bổ sung 1

Đây là công việc cần nâng cấp hàm GhiDL() và độc lập với các mô đun khác. Việc nâng cấp này rất đơn giản và được mô tả trong chương trình sau. Thay đổi chỉ ở hai lệnh tại dòng 4 và 6.

1 def GhiDL(P,S,fout):

2     f = open(fout,"w",encoding="UTF-8")

3     n = len(P)

4     for i in range(n-1,n-3,-1):

5         print(P[i],S[i],file = f)

6     for i in range(3,-1,-1):

7       print(P[i],S[i],file = f)

8     f.close()

Công việc bổ sung 2

Công việc này rất đơn giản là mở tệp Data.inp và bổ sung thêm thông tin các mặt hàng mới và doanh số, không cần sửa chương trình.

Công việc bổ sung 3

Công việc này mới và hoàn toàn độc lập với các công việc khác của bài toán, nên có thể thách thành một hàm (mô đun). Hàm mới đặt tên là BC2() và có nội dung đơn giản như sau:

1 def BC2(P,S,fout):

2     f = open(fout,"w",encoding="UTF-8")

3     n = len(P)

4     average = sum(S)/n

5     print("Doanh số trung bình:",average,file = f)

6     for i in range(n):

7         if S[i] > average:

8            print(P[i],S[i],file = f)

9     f.close()

Trong chương trình chính cần bổ sung lệnh sau đây để thực hiện báo cáo mới này.

BC2(P,S,"Data2.out")

=> Kết luận: Thiết kế thuật toán và chương trình theo mô đun có các ưu điểm sau:

  • Chương trình ngắn gọn, sáng sủa, dễ hiểu.
  • Các mô đun được thiết lập một lần và sử dụng nhiều lần.
  • Dễ dàng nâng cấp, thay đổi, chỉnh sửa mà không mất công sửa lại toàn bộ chương trình.
  • Dễ dàng bổ sung các mô đun mới.
  • Có thể chia sẻ trong môi trường làm việc nhóm, ví dụ phân công mỗi người một công việc độc lập.
 

Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây

Nội dung quan tâm khác

Thêm kiến thức môn học

Từ khóa tìm kiếm: Tóm tắt kiến thức tin học 11 định hướng KHMT KNTT bài 28 Thiết kế chương trình theo mô đun, kiến thức trọng tâm tin học 11 định hướng KHMT kết nối bài 28: Thiết kế chương trình theo mô đun, Ôn tập tin học 11 định hướng KHMT kết nối bài Thiết kế chương trình theo mô đun

Bình luận

Giải bài tập những môn khác