Bài 17 : CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Giáo án thứ 2, sử dụng máy chiếu Projestor) I. MỤC ĐÍCH, YÊU CẦU : Học sinh cần biết : Chương trình con (CTC) thực chất là một khối lệnh (tập hợp các lệnh) nhằm giải quyết một bài toán con để góp phần giải quyết một bài toán lớn hơn bằng một chương trình . Khi viết những chương trình dài, phức tạp, việc sử dụng chương trình con là hết sức cần thiết . Sự khác nhau cơ bản giữa hai loại chương trình con thường gặp trong các ngôn ngữ lập trình . Sự giống và khác nhau về cấu trúc giữa chương trình và chương trình con . Mối quan hệ giữa tham số hình thức và tham số thực sự với chương trình con và lời gọi chương trình con . Ý nghĩa của biến cục bộ được khai báo trong một chương trình con . II. PHƯƠNG PHÁP, PHƯƠNG TIỆN : Máy chiếu Projestor . Một số bài về chương trình con : Tinh_tong, Tinh_tong2 (có sử dụng chương trình con ) . III. NỘI DUNG TIẾT DẠY : A. Tổ chức lớp : Ổn định và kiểm tra sĩ số . B. Kiểm tra bài cũ : không kiểm tra . C. Tiến trình tiết dạy : NỘI DUNG – HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH ĐVĐ : Các chương trình giải các bài toán phức tạp thường rất dài, có thể gồm rất nhiều lệnh . Khi đọc những chương trình dài, rất khó nhận biết được chương trình thực hiện các công việc gì và hiệu chỉnh chương trình cũng khó khăn . Vậy phải cấu tạo chương trình như thế nào để cho chương trình dễ đọc, dễ hiệu chỉnh nâng cấp . Trong chương này ta sẽ nghiên cứu một - Nghe giảng . vấn đề mới đó là CTC . Vậy CTC là gì ? Cách viết, cách sử dụng chúng như thế nào ? - Ghi đầu bài và phấn 1 . 1 Khái niệm chương trình con Xét bài toán tính tổng 4 lũy thừa: trình chiếu slide 1 Tluythua = a n + b m + c p + d q - Chốt lại : có thể giao cho 4 người, mỗi người thực hiện một bài . - Trình chiếu slide 2 : Phân tích với mỗi bài toán phức tạp ta có thể chia thành các bài - Thảo luận theo nhóm (4 HS / 1nhóm – 2 bàn liền nhau) trong thời gian 3 phút và 1 em trình bày cách làm của nhóm mình . - Các nhóm khác nhận xét . - Nghe giảng . toán con . Mỗi bài toán con có thể chia thành các bài toán con nhỏ hơn . Đây là cách thiết kế từ trên xuống . - Trình chiếu slide 3 : Phân tích, để giải các bài toán trên máy tính có thể phân chia chương trình thành các khối (Module), mỗi khối bao gồm các lệnh giải một bài toán con nào đó . Chương trình chính sẽ được xây dựng từ các CTC này . + Chương trình con là gì ? - Nhấn mạnh khái niệm CTC và ghi bảng ? Ví dụ : (Trình chiếu slide 4) - Hãy nêu nhận xét về đoạn chương trình bôi đen . + Một HS đọc trước lớp . + Một HS khác phát biểu lại, các học sinh tự ghi vào vở . - Đọc cá nhân đoạn chương trình (đặc biệt phần đổi màu) trong 5 phút và nêu nhận xét về đoạn chương trình đó . - Nhấn mạnh trong đoạn này có 4 đoạn lệnh tương tự nhau dẫn đến chương trình dài và khó theo dõi. - Để xử lý vấn đề này các ngôn ngữ lập trình bậc cao cung cấp khả năng xây dựng các CTC dạng tổng quát “ đại diện ” cho nhiều đoạn lệnh tương tự nhau . - Trình chiếu slide 5 : Phân tích thay vì phải đánh nhiều đoạn lệnh ta chỉ cần đánh 1 đoạn và gọi CTC nhiều lần . (sử dụng slide 6) Lợi ích của việc sử dụng CTC : ghi bảng từng lợi ích rồi lấy ví dụ phân tích . (trình chiếu slide 7) - Một số HS nhận xét về câu trả lời của bạn . - Nghe giảng . - Nghe và tự ghi bài . + Tránh được việc phải viết lặp đi lặp lại một dãy lệnh nào đó . Ví dụ bài lũy thừa . + Hỗ trợ việc thực hiện các chương trình lớn . Ví dụ quản lý điểm học sinh . + Phục vụ cho quá trình trừu tượng hóa . Ví dụ : Khi sử dụng các hàm toán học ta không cần xem nó được xây dựng như thế nào . + Mở rộng khả năng ngôn ngữ . Ví dụ : Trong bài toán lũy thừa ta xây dựng thêm CTC lũy thừa . + Thuận tiện cho phát triển, nâng cấp chương trình. 2 Phân loại và cấu trúc của chương trình con a> Phân loại - Nhận xét và ghi bảng về hàm và thủ tục (không ghi sự khác nhau cơ bản) . - Đọc cá nhân phần này trong 5 phút và trả lời các câu hỏi : Hàm là gì ? Thủ tục là gì ? Sự khác nhau cơ bản giữa hàm và thủ tục là gì ? Hàm Là CTC Thực hiện một số thao tác nào đó Trả về giá trị qua tên hàm Thủ tục Là CTC Thực hiện một số thao tác nào đó b> Cấu trúc CTC CTC có cấu trúc tương tự như chương trình chính . Hãy nêu cấu trúc của chương trình chính . - Ghi bảng cấu trúc chương trình chính . Ghi bản cấu trúc CTC bên cạnh . - Giảng phần khai báo, phần thân . * Tham số hình thức : - Ghi bảng : Tham số hình thức của CTC là các biến được khai báo cho dữ liệu vào ra của CTC . - Biến cục bộ là các biến được khai báo trong - Các học sinh khác nhận xét và bổ sung câu trả lời . - Tự ghi . - Phát biểu, nhận xét . - Tự ghi . chương trình con . - Biến toàn cục là biến được khai báo trong chương trình chính . Ví dụ : (sử dụng slide 8) Trong chương trình con luythua(x,k) thì x, k là tham số hình thức và j là biến cục bộ . Chú ý : Một chương trình con thường có thể có hoặc không có tham số hình thức, cũng như biến cục bộ . c> Thực hiện chương trình con * Tham số thực sự . - Nghe giảng và tự ghi bài . - Đọc cá nhân phần này trong thời gian 4 phút và trả lời các câu hỏi : Cách gọi chương trình con ? Tham số thực sự là gì ? - Trả lời câu hỏi và nhận xét . - Tự ghi bài . D. Củng cố : Thảo luận theo nhóm . BT1. – Thời gian 2 phút : + Trả lời trước lớp . Các nhóm khác nhận xét, góp ý . + Cho điểm . BT2. – Thời gian 6 phút : + Trả lời trước lớp . Các nhóm khác nhận xét, góp ý . + Cho điểm . E. Khái quát : Trình chiếu các nội dung đã học . 1. Khái niệm chương trình con và lợi ích của chương trình con . 2. Phân loại : Hàm và thủ tục . 3. Cấu trúc của chương trình con . 4. Tham số hình thức, tham số thực sự và cách gọi CTC . 5. Biến toàn cục, biến cục bộ . . . 1. Khái niệm chương trình con và lợi ích của chương trình con . 2. Phân loại : Hàm và thủ tục . 3. Cấu trúc của chương trình con . 4. Tham số hình thức, tham số thực sự và cách gọi CTC. Bài 17 : CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Giáo án thứ 2, sử dụng máy chiếu Projestor) I. MỤC ĐÍCH, YÊU CẦU : Học sinh cần biết : Chương trình con (CTC) thực chất là. giữa hai loại chương trình con thường gặp trong các ngôn ngữ lập trình . Sự giống và khác nhau về cấu trúc giữa chương trình và chương trình con . Mối quan hệ giữa tham số hình thức và tham