Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Trung học phổ thông Lớp 11 Giảng dạy theo hướng phát huy tính tích cực của học sinh trong lập trình lập tr...

Tài liệu Giảng dạy theo hướng phát huy tính tích cực của học sinh trong lập trình lập trình pascal

.DOCX
17
198
76

Mô tả:

MỤC LỤC Phần I: MỞ ĐẦU 1 1. Lý do về tính cấp thiết.............................................................................1 2. Mục đích của việc nghiên cứu................................................................4 3. Kết quả cần đạt được..............................................................................4 4. Đối tượng, phạm vi và kế hoạch nghiên cứu.........................................4 Phần II: NỘI DUNG.......................................................................................5 1. Cơ sở lý luận của vấn đề nghiên cứu tổng kết kinh nghiệm................5 1.1 Một số khái niệm...................................................................................5 1.2 Lợi ích của việc sử dụng chương trình con.........................................5 1.3 Phân loại chương trình con..................................................................5 1.4 Cấu trúc chương trình con...................................................................6 1.5 Sử dụng chương trình con....................................................................7 2. Thực trạng vấn đề nghiên cứu tổng kết kinh nghiệm..........................7 3. Một số ví dụ..............................................................................................8 3.1 Chương trình VD3.................................................................................8 3.2 Chương trình VD4 (Làm việc theo nhóm)........................................11 4. Kết quả thực hiện..................................................................................15 Phần III: KẾT LUẬN VÀ KHUYẾN NGHỊ................................................16 1. Những đánh giá cơ bản.........................................................................16 2. Các khuyến nghị được đề xuất từ sáng kiến kinh nghiệm.................16 Phần IV: TÀI LIỆU THAM KHẢO..............................................................17 1 Giảng dạy theo hướng phát huy tính tích cực của học sinh trong lập trình lập trình Pascal Phần I: MỞ ĐẦU 1. Lý do về tính cấp thiết - Bước sang thế kỷ XXI - Thế kỷ của sự phát triển mạnh mẽ khoa học, kỹ thuật và công nghệ, trước yêu cầu mới của của sự nghiệp công nghiệp hoá hiện đại hoá đất nước đòi hỏi các nhà trường phải đào tạo nên những con người lao động thông minh, sáng tạo, độc lập, tự chủ, vì lợi ích của cộng đồng, của nhân loại. Để đạt được mục tiêu này ngành giáo dục đã đưa bộ môn Tin vào nhà trường giúp cho thầy và trò tiếp cận với công nghệ mới - công nghệ hiện đại của nền văn minh thông tin, thích ứng với sự phát triển của xã hội. - Khi tin học được đưa vào nhà trường nghiên cứu như các bộ môn khoa học khác, các kiến thức tin học được đúc kết từ trong thực tiễn và phát triển dựa trên nhu cầu khai thác của người dùng, do đó có nhiều điều kiện thuận lợi để sử dụng các phương tiện dạy học - phát huy tính tích cực trong học tập của học sinh. Tuy nhiên, kỹ năng vận dụng những tri thức đã học vào việc giải quyết những bài toán trong thực tiễn của học sinh còn nhiều hạn chế. - Mặt khác, vào giữa những năm 60 của thập kỷ này, khi mà việc lập trình cho máy tính mang nặng tính kinh nghiệm, tính “nghệ thuật”; Với những chương trình nhìn chung là khó đọc, khó kiểm soát lỗi ngay cả chính tác giả đã tạo ra nó, và đặc biệt là không có cách nào khẳng định được tính đúng đắn của một chương trình, ngoài việc kiểm tra chương trình ấy thông qua một số lần chạy thử với những dữ liệu vào khác nhau, nếu thấy kết quả những lần chạy thử đó là đúng thì khẳng định là chương trình đúng. Từ đó nảy sinh vấn đề làm thế nào giải quyết được những tồn tại nêu trên. Vấn đề này đã lôi kéo 2 nhiều nhà Tin học lý thuyết nổi tiếng quan tâm và tham gia. Phương pháp lập trình có cấu trúc được đề xuất trong bối cảnh ấy. - Lập trình có cấu trúc cho phép tạo ra những chương trình sáng sủa, dễ đọc, dễ hiểu, dễ kiểm tra và điều quan trọng là có thể chứng minh được tính đúng đắn của một chương trình. - Tư tưởng chính của lập trình có cấu trúc là modul hoá chương trình, nghĩa là từ một chương trình lớn, có thể phân ra thành những chương trình nhỏ, hay những chương trình con, tương đối độc lập nhau và có thể giải quyết mộ cách độc lập từng chương trình một. Trên cơ sở đó, có thể kiểm chứng tính đúng đắn của mỗi chương trình con, rồi ghép nối lại thành chương trình hoàn chỉnh. - Trong khi viết chương trình, ta thường gặp những đoạn chương trình được lặp đi, lặp lại nhiều lần ở những chỗ khác nhau làm cho chương trình trở nên dài dòng. Trong Pascal cho phép viết đoạn chương trình đó thành một chương trình con, mỗi khi cần, ta viết thủ tục gọi chương trình con đó ra cùng với những tham số tương ứng. Cách đó làm cho chương trình trở nên ngắn gọn, sáng sủa và tiết kiệm được công sức lập trình. - Với những bài toán lớn, phức tạp sẽ tương ứng với một chương trình rất lớn, rất dài; việc nhìn khái quát tổng thể cả chương trình, cũng như việc gỡ rối, sửa lỗi là rất khó khăn. Việc xây dựng một chương trình con cho phép tách chương trình lớn thành những chương trình nhỏ hơn, đơn giản hơn làm cho việc kiểm tra, sửa chữa chương trình được dễ dàng, thuận tiện hơn. Sau khi tạo xong các chương trình con này ta chỉ việc ghép chúng lại thành một chương trình hoàn chỉnh. Chính lý do này làm cho giá thành xây dựng toàn bộ chương trình giảm xuống và bớt đi được công sức thủ công của người lập trình. Chính vì vậy, tôi muốn vận dụng cách viết và sử dụng chương trình con trong lập trình có cấu trúc để giúp cho học sinh có kỹ năng giải quyết một số bài toán được nhanh hơn, chính xác hơn và việc kiểm soát toàn bộ chương trình cũng thuận tiện hơn. 3 2. Mục đích của việc nghiên cứu - Mục đích của việc nghiên cứu sử dụng chương trình con trong lập trình có cấu trúc nhất là lập trình Pascal nhằm giúp học sinh phát huy tính tích cực, tự giác, chủ động, sáng tạo, rèn luyện thói quen làm việc độc lập và kỹ năng lập trình, giảm bớt thời gian, công sức khi lập trình; giúp cho việc kiểm tra, sửa chữa chương trình trở nên đơn giản hơn, dễ dàng hơn và thuận tiện hơn. Bên cạnh đó, học sinh còn biết vận dụng để giải quyết các bài toán thường gặp trong thực tế; gây hứng thú trong học tập, làm cho “Học” là quá trình kiến tạo; là niềm say mê để từ đó học sinh biết khai thác và xử lý thông tin, tự hình thành hiểu biết, năng lực và phẩm chất. 3. Kết quả cần đạt được - Phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh; tạo thói quen làm việc độc lập; bồi dưỡng cho học sinh phương pháp tự học, khả năng hợp tác; rèn luyện kĩ năng lập trình và kỹ năng vận dụng kiến thức vào việc giải quyết các bài toán thường gặp trong thực tiễn; tác động đến tình cảm, đem lại niềm vui, hứng thú và trách nhiệm học tập cho học sinh. 4. Đối tượng, phạm vi và kế hoạch nghiên cứu - Đối tượng nghiên cứu là học sinh trung học phổ thông. - Phạm vi và kế hoạch nghiên cứu: Khối 11 (Lớp 11B5, 11B6) - Trường THPT XXX 4 Phần II: NỘI DUNG 1. Cơ sở lý luận của vấn đề nghiên cứu tổng kết kinh nghiệm 1.1 Một số khái niệm - Lập trình: Là sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán. - Ngôn ngữ lập trình: Là ngôn ngữ để viết chương trình. - Chương trình: Là cách mô tả thuật toán bằng một ngôn ngữ mà máy tính có thể hiểu và thực hiện được. - Thuật toán: Là dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác đó từ Input ta thu được Output của bài toán. - Chương trình con: Là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (đựơc gọi) từ nhiều vị trí khác nhau trong chương trình. 1.2 Lợi ích của việc sử dụng chương trình con - Tránh việc phải viết lặp đi, lặp lại cùng một dãy lệnh nào đó trong một chương trình. - Hỗ trợ việc thực hiện viết các chương trình lớn. - Phục vụ cho quá trình trìu tượng hoá. - Mở rộng khả năng ngôn ngữ. - Thuận tiện cho việc phát triển và khả năng nâng cấp chương trình. 1.3 Phân loại chương trình con - Chương trình con có 2 loại cơ bản: Chương trình con hàm Chương trình con thủ tục 5 + Hàm (Function): Là một chương trình con thực hiện một số thao tác nào đó và trả về giá trị qua tên hàm. + Thủ tục (Procedure): Là một chương trình con thực hiện các thao tác nhất định nhưng không trả về giá trị nào qua tên của nó. 1.4 Cấu trúc chương trình con - Cấu trúc chung: [] Begin []; {Phần thân chương trình con} End; - Cấu trúc của Hàm: Function Tên_hàm ([khai báo các tham số, nếu cần]): kiểu DL; [] { Label, Const, Type, Var, ... } Begin ; {Phần thân hàm} End; - Cấu trúc của thủ tục: Procedure Tên_thủ tục ([khai báo các tham số, nếu cần]); [; {Phần thân thủ tục} End; 6 1.5 Sử dụng chương trình con - Cách gọi chương trình con: Tên chương trình con (cùng với tham số, nếu có); - Các tham số được sử dụng trong chương trình con + Tham số hình thức: được viết trong phần khai báo tên chương trình con. + Tham số thực sự: được viết trong lời gọi chương trình con. + Tham biến: Là tham số hình thức viết sau Var. Khi đó tham số thực sự của nó phải là biến, không được là giá trị. Tham số thực sự có thể bị thay đổi trong chương trình con và sau khi ra khỏi chương trình con nó vẫn giữ nguyên giá trị thay đổi đó. + Tham trị: Là tham số hình thức không có Var. Khi đó tham số thực sự của nó có thể là giá trị, biến hoặc biểu thức. Tham số thực sự có thể bị thay đổi trong chương trình con, nhưng sau khi ra khỏi chương trình con nó lại mang giá trị ban đầu. 2. Thực trạng vấn đề nghiên cứu tổng kết kinh nghiệm - Với những chương trình lớn thường rất dài, nhìn chung là khó đọc, khó kiểm soát lỗi nhất là đối với học sinh trung học phổ thông, và đặc biệt là không có cách nào khẳng định được tính đúng đắn của một chương trình, ngoài việc kiểm tra chương trình ấy thông qua một số lần chạy thử với những dữ liệu vào khác nhau, nếu thấy kết quả những lần chạy thử đó là đúng thì khẳng định là chương trình đúng. Để giúp cho học sinh say mê với môn học, giảm bớt thời gian và công sức khi lập trình; rèn luyện khả năng làm việc độc lập, tích cực, chủ động, sáng tạo, có tinh thần hợp tác khi làm việc theo nhóm, biết vận dụng những kiến thức đã học để giải quyết một số bài toán thường gặp trong thực tiễn, từ đó nảy sinh vấn đề là phải hướng dẫn cho học sinh cách viết và sử dụng chương trình con trong lập trình Pascal làm cho chương trình sáng sủa, dễ đọc, dễ hiểu, dễ kiểm tra và điều quan trọng là có thể chứng minh được tính đúng đắn của một chương trình. 7 3. Một số ví dụ - VD1: Viết chương trình tính: an+bm+cp+dq - VD2: Viết chương trình tính: n! + m! + p! + q! a c m p S    b d n q - VD3: Viết chương trình tính: - VD4: Viết chương trình: + Sắp xếp dãy a = {a1, a2, a3, ..., an} tăng dần + Sắp xếp dãy a tăng dần sao cho số chẵn đứng trước, số lẻ đứng sau + Sắp xếp dãy a tăng dần sao cho chẵn lẻ xen kẽ 3.1 Chương trình VD3 - Chương trình không sử dụng chương trình con Program congPS; var a,b,c,d,m,n,p,q:integer; tu,mau,t1,m1,uc:integer; S:real; Begin writeln('Nhap phan so a/b'); repeat write('Nhap tu so a = '); readln(a); write('Nhap mau so b = '); readln(b); if b=0 then writeln('Nhap lai phan so'); until (b<>0); writeln('Nhap phan so c/d'); repeat 8 write('Nhap tu so c = '); readln(c); write('Nhap mau so d = '); readln(d); if d=0 then writeln('Nhap lai phan so'); until (d<>0); writeln('Nhap phan so m/n'); repeat write('Nhap tu so m = '); readln(m); write('Nhap mau so n = '); readln(n); if n=0 then writeln('Nhap lai phan so'); until (n<>0); writeln('Nhap phan so p/q'); repeat write('Nhap tu so p = '); readln(p); write('Nhap mau so q = '); readln(q); if q=0 then writeln('Nhap lai phan so'); until (q<>0); tu:=(a*d*n*q+c*b*n*q+m*b*d*q+p*b*d*n); mau:=(b*d*n*q); t1:=tu; m1:=mau; while t1<>m1 do if t1>m1 then t1:=t1-m1 else m1:=m1-t1; uc:=m1; 9 tu:=tu div uc; mau:=mau div uc; writeln('S = ',tu,'/',mau); readln; End. - Chương trình sử dụng chương trình con Program congPS; var a,b,c,d,m,n,p,q:integer; tu,mau:integer; S:real; Procedure Nhap_PS(Var t,m:integer); begin repeat write('Nhap tu so: '); readln(t); write('Nhap mau so: '); readln(m); if m=0 then writeln('Nhap lai phan so'); until (m<>0); end; Function UCLN(x,y:integer):integer; begin while x<>y do if x>y then x:=x-y else y:=y-x; UCLN:=y; end; Procedure Toi_gian_PS(Var t,m:integer); Var k: integer; Begin 10 k:=UCLN(t,m); t:=t div k; m:=m div k; writeln(t,'/',m); end; Begin writeln('Nhap phan so a/b'); Nhap_PS(a,b); writeln('Nhap phan so c/d'); Nhap_PS(c,d); writeln('Nhap phan so m/n'); Nhap_PS(m,n); writeln('Nhap phan so p/q'); Nhap_PS(p,q); tu:=(a*d*n*q+c*b*n*q+m*b*d*q+p*b*d*n); mau:=(b*d*n*q); write('S = '); Toi_gian_PS(tu,mau); readln; End. 3.2 Chương trình VD4 (Làm việc theo nhóm) - Chia nhỏ bài toán rồi giao cho các thành viên trong nhóm + Nhóm trưởng: Tổng hợp và viết chương trình chính + Thành viên 1: Viết chương trình con sắp xếp dãy a tăng dần + Thành viên 2: Tách mảng a thành 2 mảng chẵn và mảng lẻ + Thành viên 3: Sắp xếp dãy a chẵn trước, lẻ sau + Thành viên 4: Sắp xếp dãy a tăng dần sao cho chẵn, lẻ xen kẽ - Các thành viên làm việc độc lập rồi gửi chương trình cho nhóm trưởng tích hợp Program BT_Sapxep; 11 Type mang = array[1..100] of integer; Var a,b,c:mang; n,nb,nc:integer; Procedure Nhap_mang; Var i:integer; begin for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; end; Procedure In_mang(Var m:mang); Var i:integer; begin for i:=1 to n do write(m[i],' '); writeln; end; Procedure SX(Var m:mang); Var i,j,tg:integer; begin for i:=1 to n-1 do for j:=n downto i+1 do if a[j] - Xem thêm -