Ôn tập kiến thức Tin học 11 định hướng Khoa học máy tính KNTT bài 28: Thiết kế chương trình theo mô đun

Ôn tập kiến thức 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. Nội dung ôn tập bao gồm cả lí thuyết trọng tâm và bài tập ôn tập để các em nắm chắc kiến thức trong chương trình học. Hi vọng đây sẽ là tài liệu hữu ích giúp các em ôn luyện và kiểm tra. Kéo xuống để tham khảo

[toc:ul]

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.

Tìm kiếm google: Ôn tập kiến thức Tin học 11 định hướng Khoa học máy tính 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 Khoa học máy tính Kết nối bài 28: Thiết kế chương trình theo mô đun

Xem thêm các môn học

Giải tin học 11 định hướng Khoa học máy tính KNTT mới


Copyright @2024 - Designed by baivan.net