Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
540,37 KB
Nội dung
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HỐ TRƯỜNG THPT BA ĐÌNH NGA SƠN SÁNG KIẾN KINH NGHIỆM PHÂN BẬC HỆ THỐNG BÀI TẬP XÂY DỰNG THUẬT TỐN GIẢI BÀI TỐN TRÊN MÁY TÍNH Họ và tên: Vũ Thị Huệ Chức vụ: Giáo Viên Đơn vị cơng tác: Trường THPT Ba Đình Nga Sơn SKKN thuộc mơn: Tin Học THANH HỐ NĂM 2016 Mục lục I. Mở đầu .1 1. Lý do chọn đề tài 2. Mục đích nghiên cứu .1 3. Đối tượng nghiên cứu .1 4. Phương pháp nghiên cứu II. Nội dung sáng kiến kinh nghiệm 1. Cơ sở lý luận của vấn đề .2 2. Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm 3. Giải pháp và tổ chức thực hiện 4. Hiệu quả của đề tài nghiên cứu“ Phân bậc hệ thống bài tập xây dựng thuật tốn giải bài tốn trên máy tính” .17 III . Kết luận và đề xuất……………………………………………………… 17 Kết …………………………… 17 luận……………………….………… Đề ………………………………………………………………….18 Xuất I Mở đầu Lý do chọn đề tài Xây dựng thuật tốn là định hướng và hình thành cho học sinh ý tưởng lập trình giải các bài tốn trên máy tính. Trong chương trình Tin Học lớp 10, bài học số 4 “BÀI TỐN VÀ THUẬT TỐN” các em bước đầu được làm quen và hình thành xây dựng các thuật tốn đơn giản để giải các bài tốn trong chương trình phổ thơng. Qua thực tế giảng dạy cho các em cá nhân tơi nhận thấy các em biết đưa ra các bài tốn, hiểu khái niệm bài tốn, biết xác định rõ INPUT, OUTPUT và đưa ra các ý tưởng để giải các bài tốn đó rất tốt. Tuy nhiên, “ Thuật tốn” hiểu mơn na là thủ thuật để giải một bài tốn, mà cịn rộng hơn là thuật giải, là sáng tạo và tư duy của con người, khơng phải của máy tính. Đó là một khái niệm mới và tương đối khó với các em học sinh. Các em hãy cịn nhiều lúng túng và khó khăn khi xây dựng thuật tốn cũng như mơ tả cho thuật tốn Trăn trở với những vấn đề này bản thân tơi đã tích cực nghiên cứu nội dung sách giáo khoa, các tài liệu tập huấn dạy học, tham gia các chun đề đổi mới phương pháp dạy học, đặc biệt tích cực dự giờ các đồng nghiệp cùng mơn và đúc rút kinh nghiệm, tơi lấy các ví dụ gần gũi với các em trong cuộc sống, tích hợp kiến thức từ các mơn học như vật lý, tốn học…từ các bài tốn dễ đến các bài tốn khó và bám sát theo ba dạng cấu trúc lập trình: Tuần tự, rẽ nhánh và lặp. Tơi đã mạnh dạn ứng dụng sáng kiến kinh nghiệm “ Phân bậc hệ thống bài tập xây dựng thuật tốn giải bài tốn trên máy tính” vào giảng dạy và đã thu được các tiết học thực sự lý thú và có hiệu Mục đích nghiên cứu Đứng trước một bài tốn cần giải trên máy tính, tơi muốn cho các em hiểu việc xác định bài tốn, đặt vấn đề cho bài tốn rồi tìm và xây dựng thuật tốn là vấn đề quan trọng, chủ chốt để viết lên chương trình. Các em sẽ phải biết đưa ra các thuật tốn với một tập hữu hạn các thao tác, phép tốn…được đặt tên, được thực hiện theo một trình tự thích hợp đối với một đối tượng nào đó để đạt được điều mong muốn – Đó là một thuật tốn tối ưu. Các em biết mơ tả thuật tốn đối với một số bài tốn trong chuẩn kiến thức. Như vậy việc lựa chọn ngơn ngữ viết chương trình để diễn tả thuật tốn khơng cịn là vấn đề khó khăn. Các em sẽ thấy hứng thú và u thích mơn học hơn. Giúp các em có kiến thức về lập trình Đối tượng nghiên cứu Là các thuật tốn cho các bài tốn có tính phân bậc từ dễ đến khó và theo ba cấu trúc lập trình: Tuần tự, rẽ nhánh và cấu trúc lặp, phù hợp với nội dung chương trình và đối tượng dạy học Tin Học lớp 10 Tơi đã áp dụng với các em học sinh khối 10 trường THPT Ba Đình – Nga Sơn – Thanh Hóa, dạy cho các em biết và thấy được việc xây dựng thuật tốn giải bài tốn trên máy tính khơng phải là khó, các em thực sự u thích và đam mê lập trình Tin Học. Phương pháp nghiên cứu Đề tài sử dụng phương pháp nghiên cứu xây dựng cơ sở lý thuyết, phân tích tổng hợp, điều tra khảo sát thực tế và xử lý số liệu II Nội dung sáng kiến kinh nghiệm Cơ sở lý luận của vấn đề Để học tốt lập trình, dù là ngơn ngữ nào thì xác định bài tốn và trình bày thuật tốn là điều đầu tiên học sinh cần phải nắm vững Thuật tốn để giải một bài tốn là một khái niệm mới mẻ và khó đối với các em học sinh. Các em cịn nhiều lúng túng, khơng tìm ra cách giải quyết cũng như trình bầy một thuật tốn, chưa hình dung được các bước thực hiện theo trình tự để máy tính thực hiện, chưa mơ tả được thuật tốn bằng những ví dụ. Các em chưa biết thực hiện hay lựa chọn được thuật tốn tối ưu cũng như chỉ ra ba tính chất của thuật tốn là tính đúng đắn, tính chính xác và tính dừng. Điều này sẽ ảnh hưởng tới khả năng tiếp thu về kiến thức lập trình của các em lại càng khó khăn hơn, dẫn đến các em có tâm lí học chán nản, khơng thích học mơn lập trình Hiện nay trong các tài liệu về các ngơn ngữ lập trình, các ví dụ về thuật tốn cịn hạn chế, rất ít, các tài liệu tham khảo về thuật tốn cho các em học sinh chưa có nhiều. Việc đưa ra hệ thống các bài tập có tính phân bậc cho các em hoc sinh giúp các em dễ dàng nắm bắt nội dung của bài học mà cịn định hướng và phát triển tư duy cho các em về khả năng ngơn ngữ lập trình, linh hoạt và hình thành năng lực tích cực, thiết thực cho các em. Xây dựng cơ sở cả về lý thuyết lẫn vận dụng, đem lại hiệu quả cao cho người học và người dạy. Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Thực trạng việc dạy nội dung “Bài toán và thuật toán” Các ví dụ về bài tốn và thuật tốn như trong sách giáo khoa Tin Học 10, sách bài tập, đó là các bài tốn rất điển hình, hay và cũng rất khó với các em học sinh. Để các em có thể tiếp thu được, mặc dù sách giáo khoa đã trình bầy rất cụ thể từ ý tưởng giải bài tốn, thuật tốn thực hiện, các ví dụ mơ tả thuật tốn. Thế nhưng làm thế nào để học sinh có thể hiểu, nắm vững và ghi nhớ các thuật tốn này, nhiều giáo viên vẫn chưa tìm ra cách giảng dạy phù hợp với khả năng tiếp thu của các em, cịn lúng túng trong cách truyền đạt, áp đặt trong sách giáo khoa dẫn đến các em chỉ nhớ thuật tốn máy móc chứ khơng hiểu bản chất của thuật tốn. Việc tiếp thu kiến thức của các em khơng sâu và nhanh qn Thực trạng của việc học nội dung “ Bài tốn và thuật tốn” Các em cịn gặp nhiều khó khăn trong q trình nắm bắt cũng như việc mơ tả thuật tốn nếu như tơi lấy ví dụ bằng các bộ INPUT khác. Rất ít các em tìm được các bước để giải một bài tốn, nếu có tìm được các em cũng khơng nhớ lâu và nhớ theo kiểu máy móc. Các em chưa hình dung ra được trình tự thực hiện các bước theo các chu trình khi điều kiện được thỏa mãn hay chưa, hay q trình thực hiện lặp đi lặp lại để thực hiện cơng việc. Hay nói đúng hơn là các em chưa biết thể hiện theo các bước của thuật tốn, lựa chọn thuật tốn tối ưu, chỉ ra được ba tính chất của thuật tốn. Chính vì các hạn chế trên dẫn tới chất lượng học sinh mắn bắt được thuật tốn và mơ tả thuật tốn cịn ít, làm cho kết quả mơn học thấp. Cũng vì những kết quả như trên nên khi lên lớp 11 các em rất bỡ ngỡ và cảm thấy xa lạ với mơn học lập trình., khó khăn để áp dụng các câu lệnh đã được học để viết một chương trình cụ thể Kết quả. Qua khảo sát các em khối 10 năm học 2014 – 2015, sau khi học xong bài học số 4 “ Bài tốn và thuật tốn” khi chưa áp dụng những giải pháp phân bậc hệ thống bài tập xây dựng thuật tốn giải bài tốn hướng tới lập trình giải các bài tốn trên máy tính, qua bài kiểm tra 15 phút với câu hỏi và kết quả thu được như sau Câu 1. Hãy trình bầy thuật tốn và mơ tả cho thuật tốn giải bài tốn sau bằng cách liệt kê hoặc bằng sơ đồ khối a Tính giá trị của Y= n n n Đa số các em chưa hình dung và biểu diễn được chu trình lặp của biến điều khiển, cịn lúng túng khi mơ tả thuật tốn, hiểu về bản chất của thuật toán chưa sâu. Cụ thể kết quả thu được Lớp Số HS 10A 10B 10G 45 45 45 Nắm vững thuật toán Chưa nắm vững thụât toán Số lượng 25 18 12 Số lượng 20 27 33 % 56 40 27 % 44 60 73 Vậy nên tơi đã đưa ra các bài tốn trong cuộc sống, gần với chương trình học của các em như bài tốn vo gạo, tính giá trị biểu thức, chuyển động ném ngang, tính gia tốc của vật rơi tự do, giải phương trình bậc nhất một ẩn hay đơn giản là bài tốn tính chu vi, diện tích của hình chữ nhật, hình vng, khi biết trước các cạnh. Các em đã tiếp cận nhẹ nhàng, làm rất tốt, từ từ và dần dần hiểu rõ về thuật tốn, biết trình bày thuật tốn từ dễ đến khó sau đó hình dung và hiểu được cách giải một bài tốn trên máy tính thực hiện. sau đây là hệ thống các bài tập có tính phân bậc từ mức độ dễ đến khó theo ba cấu trúc tuần tự, rẽ nhánh và cấu trúc lặp, dẫn dắt cho các em trước khi làm quen tiếp thu với các ví dụ về thuật tốn như trong sách giáo khoa Tin Học lớp 10 3. Giải pháp và tổ chức thực hiện a. Phân bậc hệ thống bài tập thuật tốn theo cấu trúc tuần tự Các bài tốn thực hiện theo cấu trúc tuần tự các em dễ hiểu, dễ nắm bắt hơn nhất, gần với các bài tốn tự nhiên. Các em đưa ra ý tưởng và nhanh chóng trình bày được các bước của bài tốn. Từ đó ta dễ dàng dẫn dắt tới các bước của thuật tốn để giải các bài tốn đó cho các em ở mức độ cao hơn Bài tốn 1: Thuật tốn nấu cơm ( là cơng việc hàng ngày của các em) INPUT: Gạo, nước, nồi OUTPUT: Cơm chín ngon B1. Lấy gạo theo định lượng cần thiết; B2. Vo gạo rồi đổ gạo, nước vào nồi; B3. Đun sơi cạn nước; B4. Giữ nhỏ lửa; B5. Cách 5 phút một: Nếm cơm chín chưa? + Nếu chưa chín, quay lại B5; + Nếu cơm chín chuyển sang B6; B6. Tắt lửa và bắc nồi cơm ra, kết thúc; Bài tốn 2: Bài tốn luộc rau muống INPUT: Rau muống, nước, muối, nồi, chanh, mì chính OUTPUT: Rau chín tới, nước xanh ngon B1. Nhặt rau, rửa rau, rửa nồi, đổ nước vào nồi vừa đủ ăn; B2. Bắc nồi lên bếp, vắt 5 giọt nước chanh vào nồi, đun sơi nước; B3. Cho rau vào nồi khoảng 1 phút đảo rau một lần đến khi sơi đều, rau mềm vừa tới thì tắt bếp; B4. Vớt rau ra đĩa, pha mì chính, muối, chanh vừa đủ vào nước rau; Bài tốn 3. Thuật tốn tính tổng của hai số a và b nhập vào từ bàn phím INPUT: Hai số a, b OUTPUT: Tổng S B1. Nhập a, b; B2. S←a+b; B3. Đưa ra S; Nhập a,b B1 S ← a+b B2 S B3 Ví dụ: B1. 7 9; 7 9 S ← 7+9 16 B2. S←7+9; B3. 16; Bài tốn 4: Xây dựng thuật tốn tính giá trị biểu thức y= (3x 2+7x)/5, Với x nhập vào từ bàn phím INPUT: x OUTPUT: Giá trị y B1: Nhập x; B2: y ← (3*x*x+7*x)/5; Nhập x B1 Y← (3*x*x+7*x)/5; B2 Y B3 B3: Hiển thị y và kết thúc; Bài tốn 5 : Thuật tốn tính diện tích, chu vi của hình vng có chiều dài các cạnh là a nhập vào từ bàn phím INPUT: Độ dài các cạnh hình vng là a. OUTPUT: S, C B1. Bắt đầu; B2. Nhập độ dài cạnh là a; Bắt đầu Nhập a S← a*a, C← a+a+a+a; B3. Tính S ← a*a, C← a+a+a+a; B4. Hiển thị S, C ; S, C B5. kết thúc; Kết thúc Mơ tả cho thuật tốn Bắt đầu B1. Bắt đầu; B2. 7; B3. S← 7*7, C← 7+7+7+7; B4. 49 28; B1 B2 B3 B4 B5 S← 7*7, C← 7+7+7+7; 49 28 Kết thúc B5. Kết thúc; Bài tốn 6: Xây dựng thuật tốn tính và đưa ra màn hình diện tích phần được gạch chéo trong hình sau, với a(a>0) nhập vào từ bàn phím Ý tưởng: Tính diện tích hình trịn có bán kính a, diện tích phần gạch chéo bằng 1/2 diện tích hình trịn INTPUT: Số a >0 OUTPUT: Diện tích phần gạch chéo Sgc Hình vẽ Nhập a B1 Sgc←π*a*a/2 B2 Sgc B3 B1. Nhập a>0; B2. Sgc←π*a*a/2; B3. Hiển thi Sgc và kết thúc; Bài tốn 7. Xây dựng thuật tốn tính và đưa ra màn hình vận tốc v khi chạm đất của một vật rơi từ độ cao h, biết rằng v = gh , trong đó g là gia tốc rơi tự do và g=9,8m/s2. Độ cao h (m) được nhập từ bàn phím INPUT: Độ cao h B1 Bắt đầu OUTPUT: Vận tốc v B1. Bắt đầu; B2: Nhập h; B2 Nhập h B3 v← ; B3: Tính v← * g * h ; B4: Hiển thị v ; B5. Kết thúc; B4 v B5 Kết thúc Bài tốn 8: Xây dựng thuật tốn hốn đổi gía trị của hai biến a và c qua biến trung gian b Ý tưởng: Chuyển gía trị của biến a sang biến b, chuyển gía trị của biến c sang biến a sau cùng chuyển gía trị của biến b sang biến c INPUT: a,b,c OUTPUT: Giá trị của a và c đã được hốn đổi cho nhau B1. Nhập giá trị a, b; B2. b ← a; B3. a← c; B4. c←b; B5. Đưa ra giá trị mới của a và c rồi kết thúc; x Nhập a, b B1 x Ban đầu b ← a B2 x b lấy gía trị của a a ← c B3 x a lấy giá trị của c c ← b B4 c lấy giá trị của b Đưa ra giá trị mới của a và c rồi kết thúc x x x B5 b. Phân bậc hệ thống bài tập Thuật tốn theo cấu trúc rẽ nhánh Với cấu trúc rẽ nhánh giúp cho học sinh biết lựa chọn thực hiện cơng việc khi điều kiện được thoả mãn hay khơng thoả mãn, ban đầu tơi đưa ra bài tốn tìm giá trị lớn nhất của hai số a, b sau đó dẫn dắt tới bài tốn tìm giá trị lớn nhất của dãy số ngun, các em đã nắm bài rất tốt. Các ví dụ sau đó sát với cấu trúc lập trình rẽ nhánh chương trình Tin Học 11. Phần lớn tơi hướng dẫn, gợi ý cho học sinh làm bằng hai cách liệt kê và sơ đồ khối Bài tốn 1: Xây dựng thuật tốn tìm gía trị lớn nhất trong hai số ngun a và b được nhập vào từ bàn phím INPUT: a, b là hai số nguyên OUTPUT: Đưa ra số Max là số lớn nhất trong hai số a, b B1. Nhập a, b; B2. Nếu a>b thì Max← a; Nhập a, b B3. Nếu b>a thì Max← b; B4. Kết luận Max là số cần tìm và kết thúc; Sai Mơ tả cho thuật tốn B1. a=8, b=5 ; a > b Đúng Max ← a Max ← b Đúng B2. a>b Max ← 8 ; Kết luận Max cần tìm B4 Hiển thị Max = 8 và kết thúc ; Bài tốn 2. Xây dựng thuật tốn kiểm tra một số được nhập vào từ bàn phím là số âm hay số dương INPUT: a OUTPUT: Kết luận a âm hoặc dương B1 Nhập a B1. Nhập số a; B2. Nếu a>0 Kết luận a dương, đến B4; B3. Kết luận a là số âm, đến B4 ; Sai B4. Kết thúc; a > Đúng a là số dương a là số âm Kết thúc B2 B3 B4 Mơ tả cho thuật tốn B1. 36; B2. 36>0 số vừa nhập là một số dương; B4. Kết thúc; Bài tốn 3. Xây dựng thuật tốn giải phương trình bậc nhất ax+b= 0 với a, b nhập từ bàn phím INPUT: Hai số a, b OUTPUT: Kết luận về nghiệm của phương trình ax+b=0 B1. Nhập a, b; B2. Nếu a=0, b# 0 thơng báo phương trình vơ nghiệm và kết thúc; B3. Nếu a=0, b=0 thơng báo phương trình có vơ số nghiệm và kết thúc; B4. a#0, x← b/a thơng báo có nghiệm rồi kết thúc; B1 Nhập a,b,c B2 a = 0 b # 0 Đúng Phương trình vơ nghiệm Đúng Phương trình có vơ số nghiệm Sai B3 a = 0 b = 0 Sai B4 a ≠ 0 Đúng x ← b/a Kết thúc B5 Bài tốn 4. Xây dựng thuật tốn nhập ba số bất kỳ a, b, c. Hãy kiểm tra ba số đó có thể là độ dài của một tam giác hay khơng? Nếu đúng hãy tính và hiển thị chu vi của tam giác đó Ý tưởng: Ba số a, b, c là ba cạnh của một tam giác khi thoả mãn điều kiện (a+b>c) và (b+c>a) và (a+c>b) , chu vi Cv = a+b+c INPUT: Ba số a,b,c OUTPUT: Kết luận ba số đó có phải ba cạnh của 1 tam giác, nếu phải tính chu vi Cv B1. Nhập ba số a,b,c; B2. Nếu (a+b>c) và (b+c>a) và (a+c>b) thơng báo ba số là ba cạnh của một tam giác, Cv ← (a+b+c), đến B4; B3. Kết luận ba số khơng là ba cạnh của một tam giác, đến B4; B4. Kết thúc; Bài tốn 5: Xây dựng thuật tốn tính giá trị của biểu thức x y nếu điểm (x,y) thuộc hình trịn bán kính r(r>0), tâm (a,b) B1 Nhập x, y, r Z = x+y trong trường hợp cịn lại B2 B1. Nhập x, y, r; x2+y2 0 thì đưa ra i; B5 i← i+1 quay lại B3; Ví dụ: Cho dãy số có 4 phần tử N=4, a1=7, a2=12, a3= 56, a4=43 Mơ tả thuật tốn cho dãy số trên B1. N=4, 7 12 56 43; B2. i←1; B3. i =10; {đúng} B3. S← S+ (2*i1)= 8+(2*11)=8+1=9; B3. S←S+i=8 +1=9; B4. i←i1=0 ; B4. i←i2=12=1 ; B5. i=0