Bài 10. Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá

Chủ đề Fcs : Giải quyết vấn đề với sự trợ giúp của máy tính – Kĩ thuật lập trình – Bài 10. Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá – sách giáo khoa trang 131 lớp 11 Khoa học máy tính – Cánh Diều, mời các em tham khảo cùng Bumbii.

Chủ đề Fcs : Giải quyết vấn đề với sự trợ giúp của máy tính – Bài 10. Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá

KHỞI ĐỘNG

Có người nói lập trình cũng giống như giải bài tập toán, sau khi có ý tưởng thuật toán, ta viết từng dòng lệnh lần lượt từ đầu đến cuối. Theo em, nói như thế có đúng không? Vì sao?

Lời giải:

Theo em nói như thế đúng. Khi giải một bài toán lập trình, thường bắt đầu bằng việc phân tích bài toán, tìm hiểu yêu cầu, và xây dựng một kịch bản thuật toán. Quá trình này giống như việc giải một bài toán toán học. Sau khi có ý tưởng thuật toán, chuyển nó thành mã nguồn bằng cách viết từng dòng lệnh. Mỗi dòng lệnh thường tương ứng với một bước trong thuật toán đã phân tích.

LUYỆN TẬP

Câu 1. Em hãy nêu ngắn gọn về lập trình mô đun hoá theo ý hiểu của mình.

Lời giải:


Lập trình mô đun hóa là một phương pháp tiếp cận trong lập trình mà mã nguồn được tổ chức thành các mô đun độc lập, có khả năng tái sử dụng và dễ quản lý. Mỗi mô đun thường thực hiện một nhiệm vụ cụ thể hoặc cung cấp một chức năng nhất định, và chúng có thể tương tác với nhau thông qua giao diện được định nghĩa rõ ràng. Có 4 giai đoạn chính:

  • Giai đoạn 1: Liệt kê các việc lớn.
  • Giai đoạn 2: Thiết kế các hàm.
  • Giai đoạn 3: Viết các hàm.
  • Giai đoạn 4: Viết chương trình chính.

Lập trình mô đun hóa giúp tăng cường tính linh hoạt, dễ bảo trì, và làm cho mã nguồn trở nên hiệu quả hơn trong quá trình phát triển và duy trì ứng dụng.

Câu 2. Theo em, từ một chương trình có các hàm do người lập trình tự định nghĩa, có thể bỏ hết các hàm này để chuyển thành chương trình kiểu nguyên khối hay không? Việc này để hay khó?

Lời giải:

Có thể bỏ hết các hàm do người lập tình tự định nghĩa để chuyển thành chương trình kiểu nguyên khối. Việc này nói chung không khó. Tuy nhiên, trong thực tế sẽ không làm việc “ngược đời” này.

VẬN DỤNG

Xét dự án nhỏ về lập trình để thực nghiệm so sánh thời gian thực tế chạy chương trình máy tính thực hiện một số thuật toán sắp xếp mà em đã biết theo cách bấm giờ chạy máy với các dãy số đầu vào ngẫu nhiên rồi lấy giá trị trung bình. Em hãy áp dụng phương pháp lập trình mô đun hoá:

a) Đưa ra thiết kế các hàm sẽ được sử dụng trong chương trình.

b) Viết các câu lệnh trong chương trình chính (không cần viết các hàm).

Lời giải:

a) Thiết kế các hàm sẽ được sử dụng trong chương trình có thể thừa kế kết quả các bài học trước. Ví dụ:

– Sinh dãy ngẫu nhiên: Bài 3 “Thực hành về tệp, mảng, và danh sách” phần vận dụng đã có yêu cầu tạo dãy số thực ngẫu nhiên. Có thể dùng đáp án đã cho ở Bài 3. Không cần làm tròn số thực chỉ lấy hai chữ số phần thập phân vì không cần hiển thị dãy số ra màn hình.

from random import *
def dayNgauNhien(d): #d là độ dài dãy số ngẫu nhiên sẽ được tạo ra
    a = []
    for i in range(d):
        elem = random() #số ngẫu nhiên trong khoảng (0,1)
        a.append(elem)
    return a

– Bài 8 “Lập trình một số thuật toán sắp xếp” đã trình bày hai thuật toán: Sắp xếp nổi bọt và sắp xếp chèn tuyến tính.

– Bài 9 “Lập trình thuật toán sắp xếp nhanh” đã trình bày hai thuật toán sắp xếp nhanh dùng lược đồ phân đoạn Lomuto và lược đồ phân đoạn Hoare.

b)

t_SxNhanh = 0
t_SxNoibot = 0
t_SxChen = 0
testNum = ? # số lần chạy thử để lấy giá trị trung bình
for test in range(testNum):
    d = ? # độ dài của dãy cần sắp xếp
    #sx nổi bọt
    day = dayNgauNhien(d)
    tBegin = time.time()
    sxNoibot(day)
    tTask = time.time() - tBegin
    t_SxNoibot += tTask
    #sx chèn
    day = dayNgauNhien(d)
    tBegin = time.time()
    sxChen(day)
    tTask = time.time() - tBegin
    t_SxChen += tTask
    #sx nhanh
    day = dayNgauNhien(d)
    tBegin = time.time()
    quicksort(day, 0, d-1)
    tTask = time.time() - tBegin
    t_SxNhanh += tTask
print("Trung bình sx nổi bọt = ", t_SxNoibot / testNum)
print("Trung bình sx chèn = ", t_SxChen / testNum)
print("Trung bình sx nhanh = ", t_SxNhanh / testNum)

CÂU HỎI

Câu 1. Em hãy nêu các bước người lập trình cân thực hiện khi áp dụng phương pháp lập trình mô đun hoá.

Lời giải:

Phương pháp mô đun hoá:

Giai đoạn 1. Liệt kê các việc lớn: Sử dụng các gạch đầu dòng nhằm cho biết cần làm gì để nhận được kết quả mong muốn, tuần tự từ nhập dữ liệu đến kết quả cuối cùng.

Giai đoạn 2. Thiết kế các hàm: Phân chia mỗi bước lớn thành một vài công việc độc lập và thiết kế các hàm thực hiện từng công việc đó, xác định rõ tên hàm, đầu vào, đầu ra.

Giai đoạn 3. Viết các hàm: Lập trình từng hàm theo thiết kế; kiểm thử, gỡ lỗi từng hàm để chắc chắn nó làm đúng chức năng.

Giai đoạn 4. Viết chương trình chính: Thực hiện các bước theo liệt kê trong Giai đoạn 1 bằng các câu lệnh gọi sử dụng các hàm vừa hoàn thành; chạy thử, kiểm tra tổng thể.

Câu 2. Lập trình theo mô đun có các ưu điểm gì?

Lời giải:

Ưu điểm lập trình theo mô đun:

  • Phối hợp cùng lập trình.
  • Chương trình dễ hiểu hơn.
  • Dễ kiểm thử và sửa lỗi hơn.
  • Khả năng tái sử dụng.

Xem các bài giải khác: Giải Bài Tập Sách Giáo Khoa Tin Học Lớp 11 Khoa Học Máy Tính – Cánh Diều

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x