1. Khởi động (Engagement)
Khi nào nên sử dụng chương trình con?
Bài toán đưa ra là viết chương trình chính yêu cầu nhập số tự nhiên n từ bàn phím và in các số nguyên tố nhỏ hơn hoặc bằng n ra màn hình. Trong phần thực hành của Bài 26 em đã biết hàm prime(n) kiểm tra số n có là số nguyên tố.
💡 Câu hỏi suy ngẫm: Em sẽ viết chương trình giải bài toán này như thế nào?
Việc kiểm tra một số có là số nguyên tố được lặp đi lặp lại từ 1 đến n và do đó nên sử dụng hàm prime(n) để kiểm tra sẽ giúp chương trình cấu trúc rõ ràng và dễ hiểu hơn.
Sử dụng chương trình con có thể giúp phân chia việc giải một bài toán lớn thành giải quyết các bài toán nhỏ và phát huy được tính thần làm việc nhóm; Chương trình chính có cấu trúc rõ ràng, dễ hiểu hơn; Nếu cần hiệu chỉnh, phát triển và nâng cấp cũng thuận tiện hơn.
2. Hình thành kiến thức (Knowledge)
1. Cách sử dụng chương trình con
Ví dụ 1: In các số nguyên tố nhỏ hơn hoặc bằng n
Chương trình hoàn chỉnh giải bài toán trên có thể được viết như sau:
Hàm prime(k) sẽ trả lại True nếu k là số nguyên tố.
Ví dụ 2: Tính tổng các số dương trong dãy
Cho trước hai dãy số B, C, chương trình chính cần tính tổng các số hạng dương của mỗi dãy này. Chúng ta sẽ thiết lập hàm tongduong(A) để tính tổng các số hạng lớn hơn 0 của một dãy A.
2. Lợi ích của việc sử dụng chương trình con
- Phân chia việc giải một bài toán lớn thành giải quyết các bài toán nhỏ
- Phát huy được tính thần làm việc nhóm
- Chương trình chính có cấu trúc rõ ràng, dễ hiểu hơn
- Nếu cần hiệu chỉnh, phát triển và nâng cấp cũng thuận tiện hơn
3. Luyện tập (Practice)
Bài tập thực hành
Bài tập 1:
Sử dụng hàm prime, em hãy viết chương trình in ra các số nguyên tố trong khoảng từ m đến n, với m, n là hai số tự nhiên và 1 < m < n.
Gợi ý:
Bài tập 2:
Em hãy nêu một công việc/bài toán nào đó mà có thể sử dụng hàm để giải.
Gợi ý:
- Tính điểm trung bình của học sinh
- Kiểm tra năm nhuận
- Tính tiền điện theo số kWh tiêu thụ
- Sắp xếp danh sách theo thứ tự tăng dần
Bài tập 3:
Một hàm khi khai báo có một tham số, nhưng khi gọi hàm có thể có hai đối số được không?
Trả lời: Không được. Số lượng đối số khi gọi hàm phải bằng với số lượng tham số trong khai báo hàm.
Bài tập 4:
Giả sử hàm f có hai tham số x, y khi khai báo, hàm sẽ trả lại giá trị x + 2y. Lời gọi hàm f(10, a) có lỗi hay không?
Trả lời: Không lỗi nếu biến a đã được định nghĩa trước khi gọi hàm. Nếu a chưa được định nghĩa thì sẽ báo lỗi.
4. Vận dụng (Application)
Bài tập vận dụng
Bài tập 1: Hàm tính tổng có điều kiện
Thiết lập hàm f_sum(A, b) có chức năng tính tổng các số của danh sách A theo quy định sau:
- Nếu b = 0 thì tính tổng các số của danh sách A
- Nếu b khác 0 thì chỉ tính tổng các số dương của A
Chương trình mẫu:
Bài tập 2: Hàm đếm từ
Thiết lập hàm f_dem(msg, sep) có chức năng đếm số các từ của một xâu msg với kí tự tách từ là sep.
Ví dụ:
- f_dem("Mùa thu lịch sử", "") → Trả lại giá trị 4
- f_dem("Mùa thu lịch sử", "-") → Trả lại giá trị 1
Chương trình mẫu:
Bài tập 3: Hàm gộp xâu xen kẽ
Thiết lập hàm merge_str(s1, s2) với s1, s2 là hai xâu cần gộp. Hàm này sẽ gộp hai xâu s1, s2 theo cách, lấy lần lượt từng kí tự của s1, s2 đưa vào xâu kết quả. Nếu có một xâu hết kí tự thì đưa phần còn lại của xâu dài hơn vào xâu kết quả.
Ví dụ: nếu s1 = "1111", s2 = "0000" thì xâu kết quả là "10101010".
Chương trình mẫu:
Thảo luận:
- Lợi ích của việc chia chương trình thành các hàm riêng biệt là gì?
- Khi nào nên viết hàm có nhiều tham số?
- Tại sao cần kiểm tra điều kiện đầu vào của tham số trong hàm?
Ghi nhớ kiến thức 🎯
- ✅ Sử dụng hàm khi cần lặp lại đoạn mã hoặc muốn cấu trúc rõ ràng.
- ✅ Hàm giúp chia bài toán lớn thành các bài toán nhỏ hơn.
- ✅ Số lượng đối số phải bằng số lượng tham số khi gọi hàm.
- ✅ Chương trình con giúp dễ bảo trì, nâng cấp và phát triển.
- ✅ Nên đặt tên hàm có ý nghĩa rõ ràng.