Dạy học các cấu trúc rẽ nhánh và lặp theo định hướng phát triển năng lực giải quyết vấn đề cho học sinh

Tóm tắt. Dạy học theo định hướng phát triển năng lực giải quyết vấn đề cho học sinh đang là một trong những mục tiêu trọng yếu của chương trình giáo dục phổ thông sau năm 2015. Trong bài báo này, chúng tôi đề xuất một cách thức vận dụng hiệu quả một số phương pháp và kĩ thuật dạy học đặc biệt là “Phát hiện và giải quyết vấn đề” trong dạy học cấu trúc rẽ nhánh và lặp của ngôn ngữ lập trình Pascal – Tin học lớp 11 theo định hướng phát triển năng lực giải quyết vấn đề cho học sinh. Dạy học cấu trúc rẽ nhánh và lặp theo phương pháp này, học sinh sẽ có khả năng giải quyết các vấn đề ở các tình huống trong nội bộ môn học và có thể liên hệ tới thực tiễn. Bài học “Cấu trúc lặp for-do” được chúng tôi sử dụng để minh họa cho đề xuất của mình.

pdf10 trang | Chia sẻ: thanhle95 | Lượt xem: 253 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Dạy học các cấu trúc rẽ nhánh và lặp theo định hướng phát triển năng lực giải quyết vấn đề cho học sinh, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
JOURNAL OF SCIENCE OF HNUE DOI: 10.18173/2354-1075.2015-0069 Educational Sci., 2015, Vol. 60, No. 7A, pp. 215-224 This paper is available online at DẠY HỌC CÁC CẤU TRÚC RẼ NHÁNH VÀ LẶP THEO ĐỊNH HƯỚNG PHÁT TRIỂN NĂNG LỰC GIẢI QUYẾT VẤN ĐỀ CHO HỌC SINH 1Nguyễn Chí Trung và 2Trương Thị Thắm 1Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Hà Nội 2Trường Trung cấp Kỹ thuật Tin học Hà Nội Tóm tắt. Dạy học theo định hướng phát triển năng lực giải quyết vấn đề cho học sinh đang là một trong những mục tiêu trọng yếu của chương trình giáo dục phổ thông sau năm 2015. Trong bài báo này, chúng tôi đề xuất một cách thức vận dụng hiệu quả một số phương pháp và kĩ thuật dạy học đặc biệt là “Phát hiện và giải quyết vấn đề” trong dạy học cấu trúc rẽ nhánh và lặp của ngôn ngữ lập trình Pascal – Tin học lớp 11 theo định hướng phát triển năng lực giải quyết vấn đề cho học sinh. Dạy học cấu trúc rẽ nhánh và lặp theo phương pháp này, học sinh sẽ có khả năng giải quyết các vấn đề ở các tình huống trong nội bộ môn học và có thể liên hệ tới thực tiễn. Bài học “Cấu trúc lặp for-do” được chúng tôi sử dụng để minh họa cho đề xuất của mình. Từ khóa: Giải quyết vấn đề, năng lực, năng lực giải quyết vấn đề, năng lực lập trình, dạy học lập trình. 1. Mở đầu Thực hiện nghị quyết số 29 - NQ/TW Hội nghị lần thứ 8 của Ban Chấp hành Trung ương khóa XI nhằm đổi mới căn bản toàn diện giáo dục và đào tạo (GD&ĐT) sau năm 2015, giáo dục phổ thông (GDPT) nước ta đang thực hiện bước chuyển từ chương trình giáo dục tiếp cận nội dung sang chương trình giáo dục định hướng đầu ra. Nghĩa là từ chỗ quan tâm học sinh (HS) học được cái gì đến chỗ quan tâm HS biết làm gì từ những kiến thức, kĩ năng đã học. Trong đổi mới GDPT theo định hướng phát triển năng lực, nhiều nước trên thế giới rất quan tâm đến phát triển năng lực giải quyết vấn đề (NL GQVĐ) cho HS thông qua các môn học [1, 2]. Ở Việt Nam, Bộ GD&ĐT đã đưa ra tám năng lực chung cơ bản cần đạt được ở GDPT, trong đó có NL GQVĐ [12]. Đặc biệt, trong định hướng dạy học tích hợp và liên môn, NL GQVĐ được chú trọng phát triển. Hơn nữa, NL GQVĐ liên quan đến phát triển tư duy cho HS – một trong những mục tiêu quan trọng của giáo dục Tin học nói riêng và các môn học khác nói chung ở trường trung học phổ thông (THPT). Để chuẩn bị cho HS có được một hệ thống năng lực và giá trị, đặc biệt là khả năng thích ứng và hành động, mà hạt nhân là biết tiếp cận phát hiện và giải quyết vấn đề (PH & GQVĐ) một cách sáng tạo, mỗi giáo viên (GV) cần đổi mới về phương pháp dạy học (PPDH) theo định hướng phát triển NL GQVĐ cho HS. Ngày nhận bài: 25/7/2015 Ngày nhận đăng: 01/11/2015 Liên hệ: Nguyễn Chí Trung, e-mail: trungnc@hnue.edu.vn/ whoclassyou1603@gmail.com 215 Nguyễn Chí Trung và Trương Thị Thắm Với những lí do trên đây, chúng tôi đề xuất một PPDH “Cấu trúc rẽ nhánh và lặp” (Tin học – lớp 11) theo định hướng phát triển NL GQVĐ cho HS. Cụ thể, bài viết này sẽ trình bày cách thức vận dụng một số phương pháp và kĩ thuật dạy học đặc biệt là “PH & GQVĐ” mà theo đó NL GQVĐ của HS được góp phần phát triển. 2. Nội dung nghiên cứu 2.1. Quan niệm về năng lực giải quyết vấn đề Nghiên cứu những quan điểm về NL GQVĐ của PISA [9, 10] tác giả nhận thấy điểm chung cốt lõi của các cách hiểu về khái niệm “NL GQVĐ” chính là HS vận dụng hiệu quả kiến thức, kĩ năng và thái độ có được của bản thân để giải quyết những tình huống có vấn đề trong nội bộ môn học hay trong thực tiễn mà ở đó không có sẵn quy trình, thủ tục hay giải pháp thông thường”. 2.2. Năng lực giải quyết vấn đề được góp phần phát triển từ việc dạy học lập trình Có thể nói các chuyên gia lập trình là những người có năng lực thực hành giải quyết vấn đề (GQVĐ) tốt nhất dựa trên máy tính. Mỗi vấn đề mà họ phải giải quyết thường là một chương trình phần mềm máy tính phục vụ con người trong một lĩnh vực chuyên biệt nhất định. Việc dạy học lập trình ở trường THPT khó có thể đào tạo HS ngay lập tức trở thành các lập trình viên như vậy nhưng lại có thể bồi dưỡng và phát triển cho các em năng lực lập trình để GQVĐ dựa vào máy tính (thông qua lập trình). Một cách chính xác, “Năng lực lập trình là khả năng GQVĐ dựa trên máy tính bằng hoạt động (HĐ) lập trình; Nó thể hiện sự kết hợp khả năng thuật toán với khả năng mã hóa (khả năng hiểu và vận dụng ngôn ngữ lập trình, môi trường lập trình) để thể hiện thuật toán trên máy tính giải quyết những bài toán trong khoa học và trong thực tiễn”. Ở trường THPT, các vấn đề (bài toán) cần giải quyết có sẵn thuật toán và chương trình. Giúp HS hiểu được thuật toán và chương trình vẫn chưa đủ, GV cần giúp HS phát triển năng lực lập trình (năng lực GQVĐ dựa trên máy tính thông qua lập trình). Chúng tôi cho rằng năng lực lập trình của HS bao gồm các biểu hiện sau đây: (1) HS có khả năng tổ chức tốt dữ liệu. Tổ chức tốt dữ liệu nghĩa là khai báo biến với các kiểu dữ liệu phù hợp để biểu thị đầy đủ các thông tin Input, Output và các dữ liệu trung gian sao cho việc cài đặt thuật toán được thuận lợi. (2) HS có khả năng cài đặt thuật toán. “Cài đặt thuật toán toán” nghĩa là chuyển từ thuật toán sang chương trình. Nói chính xác, đó là chuyển thuật toán từ dạng phi ngôn ngữ lập trình sang thuật toán ở dạng ngôn ngữ lập trình cụ thể để có thể thực hiện được trên máy tính. (3) HS có khả năng tổ chức tốt chương trình con. Tổ chức tốt chương trình con là phân tích chương trình thành các chương trình con phù hợp để toàn bộ chương trình giải quyết bài toán trở nên rõ ràng và ngắn gọn. Hơn nữa việc tổ chức tốt chương trình con còn có thể giúp dễ dàng sửa đổi và phát triển chương trình. (4) HS có khả năng đánh giá và cải tiến thuật toán (nếu được). Đánh giá thuật toán ở đây là đánh giá hiệu quả của thuật toán và được tiến hành khi xây dựng thuật toán giải bài toán. Tuy nhiên, khi chạy chương trình, một số hạn chế của thuật toán được bộc lộ. Khi đó HS có thể phát hiện những hạn chế này và cải tiến để thuật toán tốt hơn. Có thể xem mỗi biểu hiện trên đây là một năng lực thành phần của NL GQVĐ dựa vào lập 216 Dạy học các cấu trúc rẽ nhánh và lặp theo định hướng phát triển năng lực giải quyết vấn đề... trình. NL GQVĐ được góp phần phát triển từ việc dạy học các cấu trúc điều khiển bao gồm các năng lực trên đây, đặc biệt là năng lực (1) và (2). Để đánh giá NL GQVĐ từ việc học các cấu trúc điều khiển, có thể căn cứ vào ba thang đo vận dụng mức độ thấp, vận dụng mức độ trung bình và vận dụng mức độ cao: - Vận dụng mức độ thấp: HS hiểu và giải thích được việc vận dụng các cấu trúc điều khiển trong lập trình ở những chương trình cho trước được viết bằng một ngôn ngữ lập trình cụ thể giúp giải quyết các bài toán. - Vận dụng mức độ trung bình: HS vận dụng được các cấu trúc điều khiển trong lập trình để giải quyết được các bài toán tương tự với những bài toán đã biết cách viết chương trình để giải quyết. - Vận dụng mức độ cao: HS vận dụng được các cấu trúc điều khiển trong lập trình để giải quyết được các bài toán mới mà nó có thể giải được nhờ liên hệ đến một hoặc một số bài toán đã biết cách viết chương trình để giải quyết. 2.3. Dạy học các cấu trúc điều khiển để phát triển năng lực giải quyết vấn đề Câu hỏi nghiên cứu được đặt ra là “PPDH nào cần được vận dụng và vận dụng như thế nào thì có thể phát triển được NL GQVĐ cho HS thông qua dạy học các cấu trúc điều khiển trong lập trình?”. Tác giả lựa chọn một số phương pháp và kĩ thuật dạy học bao gồm: Vấn đáp, thuyết trình, thảo luận, thực hành, kĩ thuật đặt câu hỏi và đặc biệt là “PH & GQVĐ” để trình bày quy trình dạy học các cấu trúc điều khiển gồm hai giai đoạn như ở dưới đây nhằm phát triển NL GQVĐ cho HS. Quy trình này dựa trên các bước dạy học PH & GQVĐ của Nguyễn Bá Kim [5], Vũ Dương Thụy [6] và G.Polia [7]. Giai đoạn 1: Xác định giải pháp GQVĐ Bước 1: Tìm hiểu và phát hiện vấn đề GV thuyết trình và vấn đáp để giúp HS: - Xác định được Input, Output của bài toán. - Hiểu được từ dữ liệu Input có thể tìm được dữ liệu Output (tồn tại thuật toán để giải và do đó có thể lập trình được). - Phát hiện vấn đề: Phát hiện ra những kiến thức đã biết về ngôn ngữ lập trình chưa đủ để biểu thị thuật toán. Theo thuyết kiến tạo của J.Piaget [3], đây là thời điểm chuyển giao từ quá trình “đồng hóa” (so sánh đối tượng nhận thức với sơ đồ nhận thức đã có) đến quá trình “điều ứng” (nhận ra cần phải biến đổi sơ đồ đã có để phù hợp với tình huống, hoàn cảnh mới). Bước 2: Tìm tòi và hình thành giải pháp - GV giới thiệu cú pháp và HĐ của cấu trúc điều khiển thích hợp với bài toán đã cho. - GV cho HS biết có nhiều cách diễn đạt khác nhau của HĐ cấu trúc điều khiển vừa học. - GV cung cấp cú pháp và HĐ của cấu trúc điều khiển này trên một ngôn ngữ lập trình cụ thể. - HS đề xuất hướng GQVĐ. Cụ thể, HS vận dụng cấu trúc điều khiển nói trên để viết đoạn chương trình giải quyết trực tiếp yêu cầu chính của bài toán. Bước 3: Kiểm tra giải pháp - HS được yêu cầu kiểm thử việc thực hiện đoạn chương trình “bằng tay” đối với các dữ liệu 217 Nguyễn Chí Trung và Trương Thị Thắm đầu vào khác nhau. - Nếu có những bộ dữ liệu làm cho đoạn chương trình cho kết quả sai, HS thực hiện lại bước 2 (điều chỉnh hướng GQVĐ). Ngược lại, nếu đoạn chương trình luôn đúng đối với mọi bộ dữ liệu kiểm thử thì HS thực hiện tiếp bước 4 dưới đây. Bước 4: Trình bày giải pháp - HS được hướng dẫn viết toàn bộ chương trình hoặc lập trình trực tiếp trên máy tính để giải quyết bài toán đã đặt ra. - HS được yêu cầu trình bày lại ý nghĩa, tác dụng của từng phần chương trình và của toàn bộ chương trình. - HS được yêu cầu chỉ ra những chỗ vận dụng cấu trúc điều khiển vừa học và phát biểu về tác dụng của nó. Giai đoạn 2: Nghiên cứu sâu giải pháp GV gợi mở cho HS xem xét khả năng ứng dụng của giải pháp, hoặc mở rộng vấn đề thông qua việc nêu vấn đề tương tự hay vấn đề tổng quát hơn. Cụ thể ở đây, GV hướng dẫn HS khai thác những vấn đề sau đây: a) Với cấu trúc điều khiển rẽ nhánh, những nội dung sau đây có thể khai thác: - Tìm cách biểu diễn điều kiện theo cách tốt nhất. - Tăng nhiệm vụ cần thực hiện đối với điều khiển rẽ nhánh bằng cách sử dụng thêm câu lệnh ghép begin – end và gia tăng nhóm lệnh trong câu lệnh ghép này. - Tăng tính phức tạp của rẽ nhánh bằng cách sử dụng cấu trúc rẽ nhánh lồng nhau. b) Với cấu trúc điều kiện lặp, những nội dung sau đây có thể khai thác: - Lựa chọn hợp lí giá trị khởi tạo cho dữ liệu trước quá trình lặp. - Lựa chọn hợp lí các giá trị cận trên và cận dưới đối với câu lặp biết trước số lần lặp. - Tăng tính phức tạp của điều khiển lặp bằng cấu trúc lặp lồng nhau. c) Đánh giá và cải tiến thuật toán (nếu được) và lập trình lại để nhận được chương trình mới hiệu quả hơn. Nhận xét: Khi thực hiện theo quy trình trên, mỗi giai đoạn và mỗi bước đều định hướng phát triển NL GQVĐ của HS. Cụ thể, giai đoạn 1 sẽ phát triển các năng lực (1) và (2); Giai đoạn 2 sẽ phát triển năng lực (4). Trong hoạt động tổ chức lại chương trình thành các chương trình con, việc xây dựng các chương trình con đòi hỏi các cấu trúc rẽ nhánh và lặp. Do đó năng lực (3) cũng đạt được một cách gián tiếp. 2.4. Dạy học cấu trúc lặp for-do để phát triển năng lực giải quyết vấn đề cho HS Việc dạy học các cấu trúc điều khiển cần bắt đầu bằng một tình huống có vấn đề gắn với các bài toán cụ thể, có ý nghĩa thực tiễn, để gợi cho HS sự hứng thú và nhu cầu nhận thức. Để phát triển NL GQVĐ cho HS thông qua dạy học cấu trúc lặp for-do, GV có thể bắt đầu bằng việc đưa ra bài toán dưới đây. Bài toán: Trong đợt mưa lũ tại Quảng Ninh vào tháng 7/ 2015 đã gây ra thiệt hại nặng nề cho người dân. Trường em phát động tổ chức quyên góp ủng hộ vùng lũ lụt vào tiết chào cờ sáng thứ 2 tuần qua. Trường em có N bạn, mỗi bạn đều ủng hộ một khoản tiền tùy tâm và cho vào 1 phong bì rồi bỏ vào hòm từ thiện. Em hãy viết chương trình tính tổng số tiền mà trường em đã ủng 218 Dạy học các cấu trúc rẽ nhánh và lặp theo định hướng phát triển năng lực giải quyết vấn đề... hộ và đếm xem có bao nhiêu bạn có tiền ủng hộ cao hơn hoặc bằng số tiền là T đồng được nhập vào từ bàn phím bằng cách: Bóc từng phong bì rồi nhập tiền của từng người theo thứ tự từ 1 tới N, nhập tiền của ai xong thì cộng ngay tiền đó vào tổng và so sánh số tiền vừa nhập với số tiền T, nếu T < x thì tăng số người cần tìm lên 1. Đưa ra màn hình tổng số tiền của trường đã ủng hộ và tổng số người có tiền ủng hộ cao hơn hoặc bằng số tiền T. Giai đoạn 1: Xác định giải pháp GQVĐ Bước 1: Tìm hiểu và phát hiện vấn đề - GV gọi một HS phát biểu bài toán. Câu trả lời mong đợi: Input: N số X (biểu thị tiền ủng hộ của N HS), T (biểu thị số tiền cần so sánh với số tiền ủng hộ của N HS). Output: S (biểu thị tổng số tiền ủng hộ của cả trường), Dem (biểu thị tổng số bạn có tiền ủng hộ cao hơn hoặc bằng số tiền là T đồng). - GV giới thiệu thuật toán giải bài toán trên bằng ngôn ngữ tự nhiên. Yêu cầu HS cho biết thuật toán này có giải quyết được bài toán đặt ra không? Nếu có hãy cho biết từ bước nào tới bước nào công việc nhập tiền, cộng tiền vào tổng và đếm số người có tiền ủng hộ cao hơn hoặc bằng số tiền T được lặp lại N lần? Các bước còn lại thực hiện công việc gì? Thuật toán Bước 1: Nhập số HS N, nhập số tiền T, khởi gán tổng S← 0, Dem← 0; Bước 2: Gán cho i← 1; Bước 3: Nhập số tiền X; Bước 4: Cộng S với X và gán kết quả cho tổng S; Bước 5: Nếu T⇐ X thì tăng giá trị của dem lên 1 đơn vị; Bước 6: Tăng giá trị của i lên 1 đơn vị; Bước 7: Nếu i⇐ N thì quay lại bước 3; Bước 8: Đưa ra tổng tiền ủng hộ là S; tổng số người có tiền ủng hộ cao hơn hoặc bằng số tiền T là Dem. Bước 9: Kết thúc. Câu trả lời mong đợi: Thuật toán trên có giải quyết được bài toán đặt ra: +) Từ bước 3 đến bước 7 công việc nhập tiền, tính tiền vào tổng S và đếm số người có tiền ủng hộ cao hơn hoặc bằng số tiền T được lặp lại N lần. +) Bước 1: Nhập số HS và gán tổng tiền S, tổng số người cần tìm Dem ban đầu bằng 0. +) Bước 8: Đưa ra tổng S; tổng Dem cần tìm. - GV yêu cầu HS viết chương trình thể hiện thuật toán trên cho máy tính thực hiện. Nhận xét: HS được phát triển khả năng chuyển đổi từng nhiệm vụ sau đây trong thuật toán sang ngôn ngữ lập trình: Nhập N; Nhập tiền X; Tích lũy giá trị của X vào cho tổng S; So sánh số tiền X với số tiền T để tích lũy giá trị tổng Dem. Thông báo giá trị của tổng tiền S, tổng số người cần tìm Dem. Tuy nhiên HS sẽ có thể lúng túng khi chuyển đổi sự điều khiển lặp lại N lần (từ bước 3 đến bước 7) trong thuật toán sang đoạn chương trình tương ứng. Điều này dẫn đến bước 2 tiếp theo. 219 Nguyễn Chí Trung và Trương Thị Thắm Bước 2: Tìm tòi và hình thành giải pháp - GV giới thiệu cú pháp và HĐ của cấu trúc lặp for-do cho HS. Cấu trúc lặp for-do Cú pháp Dạng lặp tiến: for := to do ; Dạng lặp lùi: for := downto do ; Trong đó: Biến đếm phải có kiểu đếm được và không được là kiểu số thực. Giá trị đầu phải nhỏ hơn giá trị cuối. Hoạt động Dạng lặp tiến: Với mỗi giá trị của biến đếm tăng dần từng đơn vị từ giá trị đầu tới giá trị cuối, câu lệnh sau do được thực hiện. Dạng lặp lùi: Với mỗi giá trị của biến đếm giảm dần từng đơn vị từ giá trị cuối tới giá trị đầu, câu lệnh sau do được thực hiện. - GV dành thời gian yêu cầu HS đọc SGK cuối trang 43 và đầu trang 44 về cấu trúc lặp for-do để HS nhận ra cách diễn đạt trong SGK khác với cách diễn đạt trên bảng nhưng vẫn thể hiện đúng HĐ của cấu trúc điều khiển này. - GV lấy ví dụ về cú pháp và HĐ của câu lệnh lặp for-do trên ngôn ngữ lập trình Pascal. Câu lệnh lặp tiến: Cú pháp: for i: = 1 to n do S := S+i; HĐ: Với mỗi giá trị của biến i tăng từ 1 tới N thì thực hiện câu lệnh tích lũy giá trị của i cho S. Câu lệnh lặp lùi: Cú pháp: for i: = n downto 1 do S:= S+ i; HĐ: Với mỗi giá trị của biến i giảm từ N tới 1 thì thực hiện câu lệnh tích lũy giá trị của i cho S. - GV cho HS vận dụng cấu trúc lặp for-do viết đoạn chương trình giải quyết việc nhập tiền, cộng tiền vào tổng và đếm số người có tiền ủng hộ cao hơn hoặc bằng số tiền T được thực hiện N lần. Câu trả lời mong đợi: for i: = 1 to n do begin writeln(‘nhap so tien cua nguoi thu’,i); Readln(x); S:= S+ x; If T⇐x then dem:= dem +1; end; Bước 3: Kiểm tra giải pháp GV yêu cầu HS kiểm thử đoạn chương trình trên bằng tay với N = 5, T = 10000 Câu trả lời mong đợi: N = 5; S=0; dem = 0; T = 10000 • i=1: Nhập số tiền của người thứ 1: X= 10000; S = S + x = 0 + 10000 = 10000 T = X, Dem = dem + 1 = 0 + 1 = 1; 220 Dạy học các cấu trúc rẽ nhánh và lặp theo định hướng phát triển năng lực giải quyết vấn đề... • i=2: Nhập số tiền của người thứ 2: X = 5000; S = S + x = 10000 + 5000 = 15000 T > X, Dem = 1; • i=3: Nhập số tiền của người thứ 3: X = 20000;S = S + x = 15000 + 20000 = 35000 T < X, Dem = dem + 1 = 1+ 1 = 2; • i=4: Nhập số tiền của người thứ 4: X = 4000; S = S + x = 35000 + 4000 = 39000 T > X, Dem = 2; • i=5: Nhập số tiền của người thứ 5: X=50000; S = S + x = 39000 + 50000 = 89000 T < X, Dem = dem + 1 = 2 + 1 = 3; Bước 4: Trình bày giải pháp - GV yêu cầu HS khác lên bảng viết tiếp các câu lệnh còn lại để hoàn thiện chương trình cần giải quyết bài toán đã đặt ra. Chương trình mong đợi: program tongtien_ungho; uses crt ; var n,i, x,s,dem, T :longint; branch clrscr ; write(‘ nhap so nguoi ung ho: ‘); readln ( n ) ; write(‘ nhap so tien can so sanh: ‘); readln ( T ) ; s:=0; dem:= 0; for i: = 1 to n do begin write(‘ nhap tien ung ho của nguoi thu: ‘,i,’:’); readln(x); s:= s+ x; If T⇐ x then dem:= dem +1; end; writeln(‘ tong tien ung ho la: ‘,s, ‘dong’); writeln(‘ tong so nguoi co tien ung ho lon hon hoac bang ‘, T, ‘ dong la: ‘,dem); readln; end. - GV yêu cầu HS trình bày ý nghĩa, tác dụng của từng phần sau trong chương trình: (1) program tongtien_ungho; uses crt ; var n,i, x,s, dem, T:longint; (2) clrscr ; write(‘ nhap so nguoi ung ho: ‘); readln ( n ) ; write(‘ nhap so tien can so sanh: ‘); readln ( T ) ; s:=0; dem:=0; 221 Nguyễn Chí Trung và Trương Thị Thắm (3) writeln(‘ tong tien ung ho la: ‘,s,’ dong’); writeln(‘ tong so nguoi co tien ung ho lon hon hoac bang ‘, T, ‘dong la: ‘,dem); readln; Câu trả lời mong đợi: (1) Khai báo tên chương trình, tên thư viện và tên biến cùng với kiểu dữ liệu thích hợp của biến. (2) Thực hiện câu lệnh xóa màn hình; câu lệnh thông báo nhập dữ liệu, câu lệnh nhập N là số HS, câu lệnh nhập số tiền cần so sánh là T đồng và câu lệnh gán tổng số tiền ủng hộ ban đầu S bằng 0, tổng số người cần tìm Dem ban đầu bằng 0. (3) Đưa ra màn hình thông báo “tổng số tiền ủng hộ”, “tổng số người có số tiền ủng hộ cao hơn bằng bằng số tiền T ”, giá trị của S, Dem và tạm dừng màn hình. - GV yêu cầu HS trình bày ý nghĩa của toàn bộ chương trình. Câu trả lời mong đợi: Chương trình giúp giải quyết bài toán đặt ra: Tính tổng số tiền ủng hộ của trường có N HS và đếm số người có tiền ủng hộ cao hơn hoặc bằng số tiền là T đồng. - GV yêu cầu HS cho biết chỗ nào vận dụng cấu trúc điều khiển vừa học và tác dụng của nó là gì? Câu trả lời mong đợi: Đoạn chương trình vận dụng cấu trúc điều khiển vừa học là: for i: = 1 to n do begin write(‘ nhap tien ung ho của nguoi thu: ‘,i,’:’); readln(x); s:= s+ x; If T⇐ x then dem:= dem +1; end; Đoạn chương trình này thực hiện 3 công việc: Nhập tiền của mỗi người trong trường, cộng ngay tiền đó vào tổng tiền ủng hộ và đếm số người có tiền ủng hộ cao hơn hoặc bằng số tiền là T đồng. Giai đoạn 2: Nghiên cứu sâu giải pháp - GV trình bày khả năng ứng dụng của giải pháp: Trong thực tế có rất nhiều công việc cần thực hiện lặp đi lặp lại nhiều lần, chẳng hạn như tính tiền gửi tiết kiệm trong n tháng, với lãi suất hàng tháng là k%. - GV yêu cầu HS vận dụng lệnh lặp lùi để giải quyết bài toán đặt ra. - GV yêu cầu HS cho biết số tiền ủng hộ thấp nhất hoặc lớn nhất. 3. Kết luận Một số gợi ý dạy học Về các ví dụ: Để minh họa việc vận dụng cấu trúc điều khiển, GV cần chọn các bài toán có tính thực tiễn và gần gũi với HS. Đối với các bài toán trong SGK, GV nên liên hệ hoặc chuyển nó về dạng bài toán có ý nghĩa thực tiễn. Về phương tiện dạy học: GV cần chuẩn bị tốt điều kiện