RÈN LUYỆN HỌC SINH KỸ NĂNG SỬ DỤNG CÂU LÊNH LẶP I. LÍ DO CHỌN ĐỀ TÀI Dựa trên mục tiêu đổi mới chương trình giáo dục của Bộ GD – ĐT nhằm góp phần năng cao chất lượng giáo dục. Từ năm 2006 đến nay, bộ môn tin học đã được áp dụng cho mọi đối tượng học sinh THCS và được dạy cho cả 4 khối lớp 6, 7, 8, 9 với thời lượng hai tiết tuần. Là giáo giảng dạy môn tin học trong trường THCS, trực tiếp giảng dạy, hướng dẫn các em, tôi thấy rằng để đạt hiệu quả cao trong tiết học, chúng ta cần có cách thiết kế bài giảng cho phù hợp với nội dung kiến thức, phương pháp đứng lớp phải phù hợp với từng đối tượng học sinh. Để qua mỗi tiết học, học sinh thích thú với kiến thức mới, đồng thời các em còn thấy được tầm quan trọng của việc ứng dụng kiến thức đã học vào thực tiễn trong đời sống xã hội thông qua việc viết các chương trình hướng dẫn máy tính giải toán. Ngôn ngữ lập trình Pascal là một loại ngôn ngữ bậc cao, có các câu lệnh viết bằng các thuật ngữ tiếng Anh mà nội dung liên quan đến toán học vừa khô khan vừa trừu tượng, khó hiểu. Chính vì vậy để có thể học tốt môn này đòi hỏi người học phải có tính tự giác, sáng tạo, chịu khó tư duy, có khả năng phân tích, tổng hợp. Do đó môn học này sẽ gây rất nhiều khó khăn cho học sinh lớp 8, nhất là học sinh yếu kém. Nhận thấy vai trò của môn tin học nói chung, lập trình nói riêng và những khó khăn trong việc học lập trình của học sinh nên tôi chọn đề tài ‘RÈN LUYỆN HỌC SINH KỸ NĂNG SỬ DỤNG CÂU LỆNH LẶP’, hy vọng qua đề tài này giúp cho học sinh THCS có hứng thú với môn học này hơn, đặc biệt là học sinh yêu thích môn tin học sẽ gắn bó say mê trong việc nghiên cứu dạng câu này. 1. Thuận lợi: Được sự quan tâm sâu sát của BGH trong việc đầu tư trang thiết bị dạy học, sự giúp đỡ tạo điều kiện của tổ chức đoàn thể, sự hỗ trợ của đồng nghiệp. Bản thân tôi luôn có ý thức cầu tiến, luôn học hỏi kinh nghiêm từ người đi trước, nhiệt tình trong giảng dạy. Đa số học sinh ham học, tích cực phát biểu xây dựng bài, tài liệu SGK tương đối đầy đủ. Một số em đã biết thực hành một số thao tác cơ bản trên máy tính. 2. Khó khăn: Tuy có hai phòng máy, nhưng số máy mỗi phòng chưa đủ để đáp ứng cho mỗi HS nên vẫn còn tình trạng 2,3 học sinh sử dụng chung 1 máy. Học sinh còn phân biệt giữa môn chính và môn phụ nên chưa dành nhiều thời gian đầu tư bài. Tư duy của học sinh còn thấp, kiến thức toán học của các em chưa đủ để đáp ứng giải bài toàn bằng lập trình. Ngôn ngữ lập trình khô khan, trừu tượng nên làm học sinh khó hứng thú với môn học. Còn một bộ phận HS ý thức chưa cao, chưa tự giác học bài, làm bài trước khi đến lớp. Bảng thống kê
RÈN LUYỆN HỌC SINH KỸ NĂNG SỬ DỤNG CÂU LÊNH LẶP I LÍ DO CHỌN ĐỀ TÀI - Dựa mục tiêu đổi mới chương trình giáo dục của Bộ GD – ĐT nhằm góp phần cao chất lượng giáo dục Từ năm 2006 đến nay, môn tin học đã được áp dụng cho mọi đối tượng học sinh THCS và được dạy cho cả khối lớp 6, 7, 8, với thời lượng hai tiết/ tuần - Là giáo giảng dạy môn tin học trường THCS, trực tiếp giảng dạy, hướng dẫn các em, thấy để đạt hiệu cao tiết học, cần có cách thiết kế giảng cho phù hợp với nội dung kiến thức, phương pháp đứng lớp phải phù hợp với đối tượng học sinh Để qua tiết học, học sinh thích thú với kiến thức mới, đồng thời em thấy tầm quan trọng việc ứng dụng kiến thức học vào thực tiễn đời sống xã hội thông qua việc viết chương trình hướng dẫn máy tính giải toán - Ngôn ngữ lập trình Pascal là một loại ngôn ngữ bậc cao, có các câu lệnh viết bằng các thuật ngữ tiếng Anh mà nội dung liên quan đến toán học vừa khô khan vừa trừu tượng, khó hiểu Chính để có thể học tốt môn này đòi hỏi người học phải có tính tự giác, sáng tạo, chịu khó tư duy, có khả phân tích, tổng hợp Do môn học gây rất nhiều khó khăn cho học sinh lớp 8, nhất là học sinh yếu kém - Nhận thấy vai trò môn tin học nói chung, lập trình nói riêng khó khăn việc học lập trình học sinh nên chọn đề tài ‘RÈN LUYỆN HỌC SINH KỸ NĂNG SỬ DỤNG CÂU LỆNH LẶP’, hy vọng qua đề tài này giúp cho học sinh THCS có hứng thú với môn học này hơn, đặc biệt là học sinh yêu thích môn tin học sẽ gắn bó say mê việc nghiên cứu dạng câu Thuận lợi: - Được sự quan tâm sâu sát BGH việc đầu tư trang thiết bị dạy học, giúp đỡ tạo điều kiện tổ chức đoàn thể, hỗ trợ đồng nghiệp - Bản thân có ý thức cầu tiến, học hỏi kinh nghiêm từ người trước, nhiệt tình giảng dạy - Đa số học sinh ham học, tích cực phát biểu xây dựng bài, tài liệu SGK tương đối đầy đủ - Một số em đã biết thực hành một số thao tác máy tính Khó khăn: - Tuy có hai phòng máy, số máy phòng chưa đủ để đáp ứng cho HS nên tình trạng 2,3 học sinh sử dụng chung máy - Học sinh còn phân biệt giữa môn chính và môn phụ nên chưa dành nhiều thời gian đầu tư bài - Tư học sinh thấp, kiến thức toán học em chưa đủ để đáp ứng giải toàn lập trình - Ngôn ngữ lập trình khô khan, trừu tượng nên làm học sinh khó hứng thú với môn học Giáo viên: Đặng Thị Cẩm Tú Trang - Còn một bộ phận HS ý thức chưa cao, chưa tự giác học bài, làm bài trước đến lớp Bảng thống kê Giỏi Khá TBình Yếu Kém Trước thực 13% 29% 45% 10% 3% II TỔ CHỨC THỰC HIỆN ĐỀ TÀI Cơ sở lý luận: - Căn công văn 5555/BGDĐT-GDTrH ngày 08/10/2014 Bộ GDĐT: đẩy mạnh việc dạy học giải vấn đề, phương pháp thực hành, dạy học theo dự án môn học, tích cực ứng dụng công nghệ thông tin phù hợp với nội dung học, khắc phục lối truyền thụ áp đặt chiều, ghi nhớ máy móc, tập trung dạy cách học, cách nghĩ, bảo đảm cân đối trang bị kiến thức, rèn luyện kĩ định hướng thái độ, hành vi cho học sinh, ý việc tổ chức dạy học phân hóa phù hợp đối tượng học sinh khác - Căn công văn số 4509/BGDĐT-GDTrH ngày 03/9/2015 Bộ Giáo dục Đào tạo (GDĐT) hướng dẫn thực nhiệm vụ giáo dục trung học năm 2015 – 2016: Tiếp tục đổi mạnh mẽ phương pháp dạy học, đánh giá học sinh nhằm phát huy tính tích cực, chủ động, sáng tạo rèn luyện phương pháp tự học học sinh, tăng cường kĩ thực hành, vận dụng kiến thức, kĩ vào giải vấn đề thực tiễn, đa dạng hóa hình thức học tập, trọng hoạt động trải nghiệm sáng tạo, nghiên cứu khoa học học sinh; đẩy mạnh ứng dụng công nghệ thông tin truyền thông dạy học - Trong chương trình Tin học cấp trung học sở lớp phần lập trình đơn giản, học sinh học ngôn ngữ lập trình Pascal để lập trình giải toán chương trình trung học nội dung thi học sinh giỏi môn Tin, hội thi tin học trẻ không chuyên sử dụng ngôn ngữ lập trình Pascal để giải toán Giáo viên: Đặng Thị Cẩm Tú Trang 2 Nội dung, biên pháp thực hiện các giải pháp: Trong sống ngày, có nhiều hoạt động thực lặp lặp lại nhiều lần, có hoạt động lặp lại với số lần biết trước, có hoạt động lặp lại với số lần chưa biết trước 2.1 Giải pháp 1: Đối với lí thuyết: 2.1.1 Lặp với số lần biết trước: - Giáo viên cho HS nêu vài ví dụ có tính lặp thực tế mà hàng ngày em nhìn thấy, nêu rõ hoạt động lặp lại lần? - Giáo viên giới thiệu thêm ví dụ: lít 11 Bình Bình chứa tối đa 30 lít mmkj Ca nh - Giáo viên đặt câu hỏi: Hãy quan sát hình trênHìvà cho biết phải thực đổ lần để hoàn thành công việc - Học sinh dễ dàng trả lời phải thực lặp lại 30 lần để hoàn thành công việc - Khi viết chương trình máy tính vậy, nhiều trường hợp, để máy tính Có thể thực công việc, ta cần phải viết lặp lại câu lệnh nhiều lần Ví dụ 1: Viết chương in mà hình 10 dòng chữ “chào bạn” Đa số học sinh viết chương trình cách dễ dàng sau: Begin Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); Writeln(‘chao cac ban’); End - Yêu cầu học sinh nhận xét cách viết - Học sinh: viết cách viết nhàm chán thời gian, đồng thời áp dụng số lần lặp tương đối ít, đề yêu cầu ta in hàng trăm, hàng nhìn lần khó mà thực được? - Giáo viên: giới thiệu cho học sinh cách khắc phục thông qua câu lệnh: Giáo viên: Đặng Thị Cẩm Tú Trang For i: =1 to 10 write(‘chao cac ban’); - Giáo viên yêu cầu học sinh nhận biết đại lượng câu lệnh trên? Từ ví dụ GV chốt lại cú pháp dạng lặp với số lần biết trước: Cú pháp: for < biến đếm> := to < giá trị cuối> ; Trong đó: for, to, từ khoá Biến đếm có kiểu có kiểu số nguyên, giá trị đầu giá trị cuối giá trị nguyên Ví Dụ 2: GV mở rộng toán tính tổng 10 số tự nhiên - Đây toán khó, nhiên học sinh nhầm lẫn nghĩ máy tính thực cộng dồn T = + + + + + + + + + 10 cho kết Nhưng vậy, máy thực tính sau: T = + =1 T = + = 3 T = 3+3=6 T = + 4= 10 … T = 45 + 10 = 55 Từ học sinh viết chương trinh sau: Begin T:=0; T:= + 1; T:= + 2; ……… T := 45 + 10; Write( T); End - Cũng giống ví dụ 1: Cách viết không tối ưu Yêu cầu học sinh áp dụng cú pháp vừa học để thực tính tổng Ta viết: S := 0; for i:= to 10 S := S + I; - Giáo viên mở rộng thêm với toán tính tổng của n số tự nhiên đầu tiên Ta viết: S := 0; for i:= to n S := S + I; - Giáo viên thông qua ví dụ để giới thiệu với học sinh cách thực câu lệnh lặp dạng Ví dụ 3: Sau thực đoạn chương trình sau, giá trị m bao nhiêu? m := 0; for i := to m := m + 3; - Học sinh thảo luận nhóm để tìm cách giải quyết? - Học sinh đưa cách giải theo cách i m := m + 3 12 15 18 - Yêu cầu học sinh cho biết đoạn chương trình trên, câu lệnh m := m+ thực Giáo viên: Đặng Thị Cẩm Tú Trang lặp lần? Có cách để tính số lần lặp câu lệnh hay không? - Dựa vào bảng học sinh trả lời câu lệnh m := m+ lặp lại lần, nhiên học sinh lung túng trình tìm cách tính số lần lặp - Giáo viên gợi ý cho học sinh cách tính số vòng lặp bằng: giá trị cuối – giá trị đầu + 1; Tóm lại: Đối với dạng lặp với số lần biết trước, câu lệnh lặp thực câu lệnh nhiều lần lần vòng lặp - Khi thực ban đầu biến đếm nhận giá trị giá trị đầu, sau vòng lặp biến đếm tự động tăng thêm đơn vị giá trị cuối • Sử dụng đồ tư để học sinh thêm khắc sâu kiến thức: I.1.2 Lặp với số lần chưa biết trước: - Giáo viên cho học sinh nêu vài ví dụ hoạt đông lặp lại nhiều lần chưa xác định số lần lặp sống ngày mà em biết - Giáo viên giới thiệu thêm ví dụ sau: ?lít ?111 Ca Bình chứa tối đa 30 lít nước nh - Giáo viên đặt câu hỏi cho học sinh: - Quan sát cho biết phải thực đổ lần để hoàn thành công việc trên? Khi dừng công việc? - Học sinh dễ dàng trả lời công việc phải thực nhiều lần Và Giáo viên: Đặng Thị Cẩm Tú Trang đổ đầy bình dừng lại? Ví dụ 1: Giáo viên mở rộng cho toán tính tổng số tự nhiên để tổng lớn 50 - Giáo viên đặt câu hỏi: Bài toán thực tính tổng số để tổng lớn 50? Và cách thực nào? - Đa số học sinh lung túng gặp câu hỏi - Giáo viên giới thiệu cho học sinh biết gặp toán dạng này, máy tính vừa thực tính tổng, vừa so sánh kết vừa tính với 50, T = + =1 > 50 (S) T = + = > 50 (S) T = 3+3=6 > 50 (S) T = + 4= 10 > 50 (S) … T = 45 + 10 = 55 > 50 (Đ) Khi nhận tổng lớn 50 máy tính dừng việc cộng dồn lại - Từ giáo viên giới thiệu cho học sinh biết dạng khác câu lệnh lặp Cú pháp: while ; Đối với câu lệnh lặp dạng thực sau: B1: Kiểm tra điều kiện B2: Nếu điều kiện sai, câu lệnh bị bỏ qua việc thực lệnh lặp kết thúc Nếu điều kiện đúng, thực câu lệnh quay lại bước - Giáo viên nhấn mạnh để sử dụng câu lệnh lặp dạng học sinh cần xác định điều kiện để câu lệnh thực - Giáo viên yêu cầu học sinh áp dụng cú pháp để viết lại ví dụ trên: Ta viết: T := 0; I := 1; While T 0, S := S +ai Quay lại bước B5: Kết thúc thuật toán - Giáo viên yêu cầu học sinh nhận biết dạng câu lệnh lặp thuật toán - Từ thuật toán học sinh nhận biết I có giá trị tăng dần từ đến n, nên thuật toán thuộc cấu trúc lặp với số lần biết trước, số lần lặp n lần - Học sinh sử dụng câu lệnh lặp dạng for để viết - Tuy nhiên, từ thuật toán giáo viên yêu cầu học sinh xác định điều kiện để chương trình tiếp tục so sánh tính s? - Học sinh xác định điều kiện i