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.
10 trang |
Chia sẻ: thanhle95 | Lượt xem: 253 | Lượt tải: 0
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