Hình thành kỹ năng cho học sinh vận dụng đúng từng loại cấu trúc lặp vào bài toán tin 11THPT

33 373 0
Hình thành kỹ năng cho học sinh vận dụng đúng từng loại cấu trúc lặp vào bài toán tin 11THPT

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

“Hình thành kỹ năng cho học sinh vận dụng đúng từng loại cấu trúc lặp vào bài toán tin 11THPT” A- MỞ ĐẦU 1. Lí do chọn đề tài Trong thời đại thông tin bùng nổ như ngày nay, việc lập được các chương trình tự hoạt động cho máy tính, máy gia dụng là rất cần thiết. Để làm được việc đó cần có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó nhà lập trình có thể chọn một ngôn ngữ lập trình thích hợp. Tuy nhiên mọi thứ đều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao là ngôn ngữ nền tảng cho việc học các ngôn ngữ bậc cao khác. Vậy làm sao để các em viết tốt được các chương trình trong pascal? Một trong những yếu tố quan trọng là các em phải nắm vững cấu trúc các câu lệnh và biết vận dụng chúng vào bài toán cụ thể, đặc biệt là hai cấu trúc câu lệnh lặp. Xuyên suốt khi hai cấu trúc này áp dụng vào hầu hết các bài tập ở các chương còn lại. Là một giáo viên Tin học tôi luôn trăn trở làm thế nào đào tạo ra các thế hệ học sinh có trình độ nhất định về tin học và sự đam mê Tin học cũng như biết lập trình, gây mầm cho các em sau này trở thành các nhà lập trình viên chuyên nghiệp, vậy để làm được điều đó tôi luôn phải đổi mới phương pháp giảng dạy cho phù hợp với từng bài học, tiết học, từng đối tượng học sinh. Xuất phát từ thực tiễn dạy học tại trường THPT Thiệu Hoá. Tôi đã dạy nhiều khoá học, khi học tin 11 các em mới biết thể hiện thuật toán thành chương trình, biết máy tính thực hiện chương trình như thế nào nên các em rất hướng 1 thú và muốn khám phá. Nhưng khi tôi dạy đến Bài10 : “Cấu trúc lặp”, học sinh vẫn thấy nội dung kiến thức mới, rộng, trừu tượng và khó hiểu hơn nhiều so với các bài học trước. Nên tôi đưa ra khả năng chuyển đổi qua lại 2 câu lệnh lặp vào giảng dạy thì thấy kết quả tốt hơn hẳn, vận dụng tốt cấu trúc lặp vào bài toán. Học sinh học hăng hái, tích cực, chủ động sáng tạo Vì các lí do trên tôi mạnh dạn đưa ra sáng kiến kinh nghiệm “Hình thành kỹ năng cho học sinh vận dụng đúng từng loại cấu trúc lặp vào bài toán tin hoc 11 THPT” để nêu một cách dạy và học đáp ứng được mục đích nêu trên. 2 2. Mục đích nghiên cứu • Sử dụng các ví dụ cụ thể trước hết để học sinh nắm được cú pháp, ý nghĩa của cấu trúc lặp. • Xác định được lặp với số lần lặp biết trước hay chưa biết trước nhanh chóng. • Thông qua các ví dụ hướng dẫn học sinh chuyển đổi qua lại hai cấu trúc lặp để học sinh phân biệt, nắm vững về hai cấu trúc lặp từ đó vận dụng linh hoạt từng cấu trúc lặp vào tình huống cụ thể của bài toán. • Viết được các thuật toán có cấu trúc lặp cho đa số các bài toán 3. Nhiệm vụ nghiên cứu Để đạt được mục đích trên, SKNN có nhiệm vụ: Phân tích tầm quan trọng của việc dạy học pascal từ đó đưa ra vấn đề bài 10, tin học 11, để học sinh thảo luận qua đó nắm vững câu lệnh lặp với số lần biết trước và chưa biết trước. Và hình thành ở học sinh kỷ năng phân tích, sử lý các vấn đề liên quan đến vòng lặp trong quá trình lập trình các chương trình đơn giản sau này. 4. Đối tượng nghiên cứu - Học sinh khối 11 trường THPT Thiệu Hóa. - Nội dung kiến thức dạy dọc “cấu trúc lặp – kỹ năng chuyển đổi qua lại hai cấu trúc lặp”. - Máy tính, máy chiếu để chạy mô tả các thuật toán. 3 B - NỘI DUNG Chương I: Cơ sở lí luận của bài toán với “cấu trúc lặp” I. Cơ sở lí luận Pascal là ngôn ngữ khởi đầu, là hành trang cho các em tiếp cận các ngôn ngữ bậc cao khác dễ dàng hơn. Nhưng để làm được như vậy các em phải hiểu và vận dụng viết được các chương trình trong pascal một cách linh hoạt. Muốn vậy các em phải nắm vững được cú pháp, ngữ nghĩa của pascal, sử dụng thành thạo các câu lệnh trong ngôn ngữ, như các câu lệnh lặp. Nhưng thực tế học sinh gặp rất nhiều khó khăn, nhầm lẫn trong việc xác định vòng lặp và xác định điều kiện dừng của vòng lặp, câu lệnh nào nằm trong vòng lặp. Từ đó nảy sinh cho giáo viên và học sinh nhu cầu gải quyết vấn đề đó. II. Triển khai những nội dung chủ yếu của bài học “Cấu trúc lặp”. 1. Lặp Trong phạm vi tin học, ta có thể hiểu “Lặp” là một số thao tác nào đó phải làm đi làm lại một số lần. Cấu trúc lặp mô tả thao tác lặp và được phân biệt hai loại là lặp với số lần biết trước và lặp với số lần chưa biết trước. 2. Lặp với số lần biết trước và câu lệnh For –do • Dạng lặp tiến: FOR <biến đếm>:=<giá trị đầu> TO <giá trị cuối> DO <câu lệnh>; • Dạng lặp lùi: FOR <biến đếm>:=<giá trị cuối> DOWNTO <giá trị đầui> DO <câu lệnh>; 4 Trong đó: - Biến đếm là biến đơn, thường có kiểu nguyên. - Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn giá trị cuối. Nếu giá trị đầu lớn hơn giá trị cuối thì vòng lặp không thực hiện. Hoạt động của for – do: - Ở dạng lặp tiến, câu lệnh viết sau từ khóa Do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối. - Ở dạng lặp lùi, câu lệnh viết sau từ khóa Do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu. 3. Lặp với số lần chưa biết trước và câu lệnh While –do Cấu trúc lặp: While <điều kiện> Do <câu lệnh> ; Trong đó: - Điều kiện là biểu thức logic; - Câu lệnh là một câu lệnh đơn hoặc ghép. Hoạt động câu lệnh while: Trong khi điều kiện sau While còn đúng thì câu lệnh sau Do còn thực hiện, vòng lặp dừng khi điều kiện không còn đúng nữa. Chương II Triển khai giải pháp tạo kỹ năng cho học sinh vận dụng đúng cấu trúc lặp vào bài toán tin 11. 5 I. Thực trạng của giáo viên và học sinh khi dạy và học bài “cấu trúc lặp”. - Thực trạng đối với học sinh: Học sinh bước vào học tin 11 các em mới biết thể hiện thuật toán thành chương trình, biết máy tính thực hiện chương trình như thế nào, nảy sinh vấn đề mới nên các em rất hướng thú và muốn khám phá. Khi học các bài đầu của sách giáo khoa các em thấy kiến thức nhẹ nhành, học đến đâu là có thể làm tốt các bài tập ngay, nhưng khi học đến bài10 (cấu trúc lặp) thì hầu hết các em thấy kiến thức nhiều hơn nhiều, khó hơn, trừu tượng và đòi hỏi kiến thức tổng hợp của các bài trước mới viết được chương trình, đặc biệt khi vết hai cấu trúc lặp thường chưa đúng ở phần điều kiện. Vì vậy làm giảm lòng yêu thích khi học các bài tiếp theo. - Thực trạng đối với giáo viên: Giáo viên khi dạy các bài trước thì được các em hắng hái học nên cũng hăng hái dạy, nhưng khi đến bài 10 thì không hứng thú dạy vì các em tinh thần học giảm và vì kiến thức trừu tượng nên nhiều giáo viên dạy theo kiểu thuyết trình là chính, không lấy học sinh làm trung tâm, nên học sinh lại càng khó hiểu mà chỉ học theo kiểu học thuộc lòng, nhưng như vậy sẽ không tự áp dụng làm các bài tập khác. ⇒ Trước thực trạng trên làm cho cả giáo viên và học sinh đều giảm hứng thú khi dạy và học đến bài này. Vậy nên tôi nghĩ bản thân phải tìm ra giải pháp cải thiện thực trạng trên nên tôi đã tìm ra giải pháp là SKKN này. II. Quá trình triển khai giải pháp tạo kỹ năng cho học sinh vận dụng cấu trúc lặp vào bài toán Để tạo được kỹ năng cho học sinh trước hết phải giúp học sinh nắm được kiến thức cơ bản về cấu trúc lặp, sau đó nâng cao dần bằng cách chuyển đổi 6 qua lại hai cấu trúc lặp. Vậy nên tôi trình bầy bài “cấu trúc lặp”, sau đến khả năng chuyển đổi hai câu trúc lặp như sau: 1. Giúp học sinh hiểu “Cấu trúc lặp” trong Tin học: • Thao thác lặp: Giáo viên: đặt vấn đề bằng các ví dụ từ thực tế: Vd1: Giáo viên trao giấy khen cho các em học sinh giỏi. giáo viên sẽ trao từng em một cho đến hết số học sinh giỏi. Vd2: Chương trình tính điểm cho học sinh một lớp (50 hs) sẽ phải thực hiện các thao tác sau: - Nhập họ tên (sbd) - Nhập điểm Tính tổng điểm hoặc tính trung bình. GV: chương trình phải thực hiện đi thực hiện lại 3 thao tác trên bao nhiêu lần? Hs: Phải lặp lại 50 lần. Gv: Các thao tác trên gọi là thao tác lặp, Vậy thao tác lặp là như thế nào? Hs: Là thao thác được làm đi làm lại nhiều lần. • Cấu trúc lặp: Gv: để tính điểm cho học sinh chương trình viết đi viết lại các câu lệnh thực hiện các thao tác trên 50 lần, dẫn đến không thuận tiện, mất thời gian, chương trình dài. => vậy nên ngôn ngữ lập trình đưa ra cấu trúc lặp – chỉ cần viết câu lệnh của các thao tác cho một học sinh sau đó cho phép chương trình thực hiện các thao tác lặp với các học sinh khác. Gv: Vậy em hiểu cấu trúc lặp như thế nào? 7 Hs: Cấu trúc lặp là mô tả thao tác lặp. Xét 2 bài toán sau: Với a là số nguyên được nhập từ bàn phím và a > 2, xét các bài toán sau đây: Bài 1. Tính và đưa kết quả ra màn hình tổng 1 1 1 1 1 2 100 S a a a a = + + + + + + + Bài 2. Tính và đưa kết quả ra màn hình tổng 1 1 1 1 1 2 S a a a a N = + + + + + + + + Cho đến khi 1 0,0001 a N < + . Giáo viên: đưa ra các câu hỏi sau: Câu 1: xác định thao tác lặp cho 2 bài toán trên? Hs: thao tác lặp là cộng dồn vào S một lượng 1/(a+N). với (n=1,2 ) Câu 2. Em hãy xác định số lần lặp cho 2 bài toán trên? Hs: Bài 1: lặp 100 lần. (nếu ban đầu s=1/a) Bài 2: Chưa biết trước số lần lặp.  Vậy cấu trúc lặp: Mô tả thao tác lặp và được phân biệt 2 loại là lặp với số lần biết trước và lặp với số lần chưa biết trước. 2. Lặp với số lần biết trước và câu lệnh For-Do Xét bài toán 1: Với a là số nguyên được nhập từ bàn phím và a > 2 Tính và đưa kết quả ra màn hình tổng 1 1 1 1 1 2 100 S a a a a = + + + + + + + Gv: gợi ý cho hs viết thuật toán: Ban đầu s=1/a; 8 sau đó cộng dồn vào s một lượng 1/(a+N) với (n= 1, 2, ,n). Cho học sinh lên trình bầy thuật toán (1a-sgk): Gv: Nếu S1= aaaa 1 1 1 99 1 100 1 + + ++ + + + viết ngược của S thì có bằng S không? Hs: bằng nhau vì tổng không đổi. Vậy giống như trên ta cũng viết được thuật toán cho S1 nhưng đi từ cuối về đầu các số hạng. (Ta có thuật toán 1b-sgk). Gv: Em hãy so sánh 2 thuật toán trên: Hs: gv và học sinh tìm ra sự khác nhau sau: Ở thuật toán 1a: - N ban đầu =1 - Mỗi lần lặp N tăng 1 đơn vị - N cuối cùng còn thực hiện thao tác lặp là 100. Ở thuật toán 1b: - N ban đầu =100 - Mỗi lần lặp N giảm 1 đơn vị - N cuối cùng còn thực hiện thao tác lặp là 1. Để biểu diễn cho 2 dạng cấu trúc lặp trên ta có câu lệnh For- Do với hai dạng Tiến-Lùi. • Dạng lặp tiến: FOR <biến đếm>:=<giá trị đầu> TO <giá trị cuối> DO <câu lệnh>; • Dạng lặp lùi: FOR <biến đếm>:=<giá trị cuối> DOWNTO <giá trị đầui> DO <câu lệnh>; Trong đó: 9 - Biến đếm là biến đơn, thường có kiểu nguyên. - Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn giá trị cuối. Nếu giá trị đầu lớn hơn giá trị cuối thì vòng lặp không thực hiện. Gv: Từ 2 thuật toán trên em hãy xác định: Biến đếm, giá trị đầu, giá trị cuối, câu lệnh? Hs: Biến đếm: N; Giá trị đầu =1; Giá trị cuối = 100; Câu lệnh: s:=s+1/(a+n); Gv: Từ đó em áp dụng cấu trúc hai câu lệnh For-Do viết câu lệnh cho hai thuật toán trên? Hs: Dạng lặp tiến: S:=1.0/a; For N:=1 To 100 Do S:=S+1.0/(a+N); Dạng lặp lùi: S:=1.0/a; For N:=100 Downto 1 Do S:=S+1.0/(a+N); Ở dạng tiến N tự động tăng 1 đơn vị, ở dạng lùi N tự động giảm 1 đơn vị. GV: Em hãy cho biết hoạt động của câu lệnh for –do ở cả 2 dạng trên? Hs: dễ dàng đưa ra được Hoạt động của for – do: - Ở dạng lặp tiến, câu lệnh viết sau từ khóa Do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối. 10 [...]... khai giải pháp tạo kỹ năng cho học sinh vận dụng đúng cấu trúc lặp vào bài toán tin 11” I Thực trạng của giáo viên và học sinh khi dạy và học bài cấu trúc lặp 4 II Quá trình triển khai giải pháp 5 1 Giúp học sinh hiểu Cấu trúc lặp trong Tin học 32 5 2 Giúp học sinh hiểu Lặp với số lần biết trước và câu lệnh For-Do 6 3 Giúp hs hiểu Lặp với số lần chưa... SKKN đã thâu tóm, phân tích những kiến thức chủ yếu về Cấu trúc lặp từ đó hình thành kỹ năng vận dụng linh hoạt cấu trúc lặp vào từng bài toán SKKN thực hiện với một bài học cụ thể nhưng đều được áp dụng vào các bài học sau, ảnh hưởng rất lớn đến toàn bộ chương trình tin học lớp 11, làm nền tảng cho các em viết chương trình cho các bài toán tin 11 Sáng kiến kinh nghiệm đã làm sáng tỏ nội dung kiến... còn đúng, nên ta không xác định được đến vòng lặp thứ bao nhiêu để điều_kiên sai vì thế ta không thể dùng vòng lặp for…do để thực hiện tính tổng S cho bài 2 Câu hỏi 3: Vậy những bài toán nào dùng được cả hai cấu trúc lặp for và While? Học sinh trả lời: Lớp bài toán lặp với số lần lặp biết trước Câu hỏi 4: Những bài toán nào chỉ dùng While do? Hs: lớp bài toán lặp với số lần lặp chưa biết trước  Mọi bài. .. ví dụ, các tiết bài tập tôi tiến hành thêm các ví dụ khó hơn III Hệ thống bài tập tạo kỹ năng cho học sinh vận dụng linh hoạt cấu trúc lặp vào bài toán cụ thể: 23 1 Các bài tập về lặp với số lần biết trước (Viết câu lệnh lặp cả hai dạng for –do và while-do) Học sinh có thể viết dạng for rồi chuyển sang while hoặc ngược lại: Bài 1: Cho hai số nguyên a,b Tính tổng các số lẽ từ a đến b Bài 2: tính Y= ∑... và ứng dụng được vào tất cả các bài toán lặp, xuyên suốt khi viết chương trình các bài toán tin 11 Khả năng mở rộng là rất lớn - Dạy học theo giải pháp trên giúp học sinh phát triển tư duy, năng lực giải quyết vấn đề trong học tập cũng như trong cuộc sống - Phát huy được tính tích cực của học sinh, giúp học sinh yêu môn tin học hơn, là động cơ thôi thúc các em trở thành những nhà lập trình viên trong... trong tệp đưa vào tệp ketqua.out Hướng dẫn: Loại bài tập này học sinh chỉ cần trả lời các yếu tố : - Giá trị đầu cho biến đếm; - Điều kiện sau while; - Câu lệnh sau Do; - Lệnh tăng, giảm biến đếm mấy đơn vị Các em làm rất tốt., sau đó các em dễ dàng hoàn thành thành chương trình.: 3 Một số bài tập dùng nhiều vòng lặp trong cùng bài toán: (ở mức nâng cao dần dàng cho học sinh khá hơn) Bài 1: cho mảng n... N bằng bao nhiêu được Gv: Em hãy viết thuật toán cho bài toán trên? Hs: Trình bầy thuật toán: Gv: Bài toán dừng khi nào? Hs: Khi thỏa điều kiện 1/(a+n) 2, xét các bài toán sau đây: Bài 1 Tính và đưa kết quả ra màn hình tổng S= 1 1 1 1 + + + + a a +1 a + 2 a + 100 14 Bài 2 Tính và đưa kết quả ra màn hình tổng S= 1 1 1 1 + + + + + a a +1 a + 2 a+N Cho đến khi 1 < 0, 0001 a+ N Câu... được mâu thuẫn xẩy ra của các em khi học và vận dụng phần cấu trúc lặp Từ đó giúp các em nắm vững, chắc kiến thức, nhanh chóng giải quyết được vấn đề Quá trình thực nghiệm đã dạy học lấy người học làm trung tâm nên đã tạo được hứng thú học tập, tính tích cực, tự lực, rèn luyện khả năng tư duy cho học sinh, nâng cao chất lượng dạy và học Tôi nghĩ các giáo viên nên áp dụng giải pháp này nhưng mỗi người... trúc lặp, cũng như kiến thức tổng hợp và khả năng sáng tạo 26 Chương III Thực nghiệm Tôi đã tiến hành áp dụng phương pháp tạo kỹ năng vận dụng linh hoạt cấu trúc lặp vào giảng dạy ở một số lớp 11 tại trường THPT Thiệu Hóa Kết quả thu được khi kiểm tra đánh giá về phần cấu trúc lặp như sau: - Lớp 11A dạy theo phương pháp này, còn 11B dạy bình thường không áp dụng phương pháp đề ra trong SKKN Bảng thống . khai giải pháp tạo kỹ năng cho học sinh vận dụng cấu trúc lặp vào bài toán Để tạo được kỹ năng cho học sinh trước hết phải giúp học sinh nắm được kiến thức cơ bản về cấu trúc lặp, sau đó nâng cao. hai cấu trúc lặp để học sinh phân biệt, nắm vững về hai cấu trúc lặp từ đó vận dụng linh hoạt từng cấu trúc lặp vào tình huống cụ thể của bài toán. • Viết được các thuật toán có cấu trúc lặp cho. Hình thành kỹ năng cho học sinh vận dụng đúng từng loại cấu trúc lặp vào bài toán tin 11THPT A- MỞ ĐẦU 1. Lí do chọn đề tài Trong thời đại thông tin bùng nổ như ngày nay,

Ngày đăng: 26/05/2015, 10:34

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan