Thông qua nội dung Bài 29: Thực hành thiết kế chương trình theo Mô đun, các em sẽ biết cách thực hành thiết kế một số chương trình hoàn chỉnh theo mô đun. HOC247 hy vọng rằng các em sẽ thu thập được những kiến thức hữu ích và thú vị giúp các em nâng cao kiến thức về môn Tin học 11 qua các bài học của chương trình Khoa học máy tính.
Tóm tắt lý thuyết
Nhiệm vụ. Tính điểm tổng hợp của vận động viên
- Trong một cuộc thi đấu thể thao khu vực dạng Sea Games, các cầu thủ tham gia thi đấu ở các bộ môn khác nhau và do sự phức tạp của truyền tin nên ban tổ chức (BTC) đã quyết định nhập thông tin kết quả thi đấu của các vận động viên vào các tệp văn bản, sau đó các tệp này được chuyển về trung tâm để xử lí.
- Mỗi bộ môn thể thao sẽ có số lượng ban giám khảo khác nhau. Mỗi tập dữ liệu lưu thông tin sẽ có khuôn dạng gồm nhiều dòng, mỗi dòng là thông tin của một vận động viên thi đấu tại một bộ môn nào đó. Mỗi dòng của tệp thông tin sẽ bao gồm:
+ Mã số động viên.
+ Điểm cho của các giám khảo, giữa các điểm số đều có dấu cách.
+ Điểm số được cho có thể là số nguyên hoặc số thập phân, thang điểm 10.
- Theo quy định của BTC, quy định tính điểm chung cho mỗi vận động viên như sau: Điểm tổng hợp của mỗi vận động viên là trung bình cộng điểm của ban giám khảo.
- Tuy nhiên trong mỗi ban giám khảo luôn có hai giám khảo đặc biệt, hai giám khảo này có hệ số tổng hợp là 2, trong khi các giám khảo khác có hệ số 1. Theo quy định của BTC thì các giám khảo đặc biệt sẽ ở vị trí đầu tiên và cuối cùng của danh sách. Ở tất cả các bộ môn thể thao số lượng thành viên ban giám khảo phải lớn hơn 2.
- Nhiệm vụ của em là tính điểm tổng hợp của các vận động viên từ tệp văn bản SeaGames.inp. Kết quả ghi ra tệp ketqua.out có dạng như sau:
+ Tệp sẽ có nhiều dòng, số dòng bằng đúng số dòng của tệp đầu vào.
+ Trên mỗi dòng ghi mã của vận động viên và điểm tổng hợp tương ứng. Yêu cầu ghi điểm tổng hợp với hai chữ số sau dấu phẩy.
Hướng dẫn:
a. Phân tích tổng quát
Từ yêu cầu của bài toán, dễ thấy chương trình có thể chia thành ba công việc, hay mô đun con, tương đối độc lập như sau:
- Mô đun 1: Đọc dữ liệu từ tệp.
- Mô đun 2: Xử lí dữ liệu đã đọc ở mô đun 1.
- Mô đun 3: Ghi dữ liệu đã xử lí ra tệp theo yêu cầu.
Các mô đun sẽ được thiết kế một cách độc lập. Chương trình chính sẽ tổng hợp và kết nối các mô đun.
b. Thiết kế mô đun nhập dữ liệu
Dữ liệu sẽ được nhập từ tệp SeaGames.inp và được đưa vào hai mảng:
- Mảng thứ nhất là danh sách mã số của các vận động viên.
- Mảng thứ hai có ý nghĩa như sau: Tương ứng với mỗi vận động viên từ mảng thứ nhất, mỗi phần tử của mảng thứ hai là dãy các điểm số mà ban giám khảo chấm cho
vận động viên này.
Hai mảng này sẽ được đặt tên lần lượt là DS và Diem.
Mô đun này được thiết lập bằng hàm nhapDL() với tham số đầu vào là tên tệp dữ liệu. Hàm sẽ trả lại hai mảng DS và Diem.
Chú ý: Khi đọc dữ liệu từ tệp, với mỗi dòng, phần tử đầu tiên chính là mã số của vận động viên, sẽ được đưa vào mảng DS, dãy các giá trị còn lại chính là dãy điểm và được đưa vào mảng Diem.
Hàm nhapDL(fin) được mô tả như sau:
c. Thiết kế mô đun xử lí dữ liệu chính
Mục đích của mô đun này là tính điểm tổng hợp cho mỗi vận động viên.
Mỗi vận động viên sẽ tương ứng với một dãy các điểm số được lấy từ mảng Diem. Từ dãy này sẽ tính được điểm tổng hợp theo cách tính đặc biệt của BTC. Mô đun này
sẽ cần hai hàm.
- Hàm diem_gk() sẽ tính điểm tổng hợp các giám khảo từ dãy các điểm.
Chú ý: theo yêu cầu thì các giám khảo đầu tiên và cuối cùng có hệ số 2 nên cần tinh điểm các giám khảo này 2 lần. Điều này được mô tả tại dòng lệnh 2. Hàm này được thiết kế chi tiết như sau:
- Hàm Xuly() sẽ tính toán điểm tổng hợp cho tất cả các vận động viên với đầu vào là dãy Diem. Hàm này sẽ sử dụng hàm diem_gk() đã thiết lập ở phần trên. Kết quả tính toán là một dãy điểm tổng hợp và là giá trị trả lại của hàm này. Kết quả của hàm Xuly() là dãy kq.
d. Thiết kế mô đun đưa kết quả ra
Cuối cùng là mô đun đưa kết quả ra tệp đầu ra theo yêu cầu của bài toán.
Hàm ghiDL() sẽ có ba tham số đầu vào là tên tệp dữ liệu ra, hai mảng DS và kq. Khai báo của hàm này là ghiDL(fout, / , trong đó fout là tên tệp dữ liệu đầu ra, A là mảng danh sách các mã số của hạt, A. Dàn viên, B là mảng ghi kết quả điểm tổng hợp của các vận động viên. Kết quả đưa ra màn hình.
e. Tổng hợp chương trình chính
Sau đây là toàn bộ chương trình:
2. Luyện tập Bài 29 SGK Tin học 11 Kết nối tri thức
Sau bài học này, các em sẽ có thể: Thực hành thiết kế một số chương trình hoàn chỉnh theo mô đun.
2.1. Trắc nghiệm Bài 29 SGK Tin học 11 Kết nối tri thức
Như vậy là các em đã xem qua bài giảng Bài 29 Chủ đề 6 Tin học lớp 11 Kết nối tri thức. Để củng cố kiến thức bài học mời các em tham gia bài tập trắc nghiệm Trắc nghiệm Tin học 11 Kết nối tri thức Bài 29.
Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
2.2. Bài tập Bài 29 SGK Tin học 11 Kết nối tri thức
Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 11 Kết nối tri thức Bài 29 để giúp các em nắm vững bài học và các phương pháp giải bài tập.
Khởi động trang 132 SGK Tin học 11 Kết nối tri thức - KNTT
Luyện tập 1 trang 136 SGK Tin học 11 Kết nối tri thức - KNTT
Luyện tập 2 trang 136 SGK Tin học 11 Kết nối tri thức - KNTT
Vận dụng 1 trang 136 SGK Tin học 11 Kết nối tri thức - KNTT
Vận dụng 2 trang 136 SGK Tin học 11 Kết nối tri thức - KNTT
3. Hỏi đáp Bài 29 SGK Tin học 11 Kết nối tri thức
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học của HOC247 sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 11 HỌC247