Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
161,5 KB
Nội dung
MỤC LỤC Trường PTDTNT Hướng Hoá A PHẦN MỞ ĐẦU I Lý chọn đề tài Giáo dục phổ thông nước ta thực bước chuyển từ chương trình giáo dục tiếp cận nội dung sang tiếp cận lực người học, nghĩa từ chỗ quan tâm đến việc học sinh học đến chỗ quan tâm học sinh vận dụng qua việc học Để đảm bảo điều đó, định phải thực thành công việc chuyển từ phương pháp dạy học theo lối “truyền thụ chiều” sang dạy học, cách vận dụng kiến thức, rèn luyện kĩ năng, hình thành lực phẩm chất; đồng thời phải chuyển cách đánh giá kết giáo dục từ nặng kiểm tra trí nhớ sang kiểm tra, đánh giá lực vận dụng kiến thức giải vấn đề, coi trọng kiểm tra, đánh giá kết học tập với kiểm tra, đánh giá trình học tập để tác động kịp thời nhằm nâng cao chất lượng hoạt động dạy học giáo dục Trong trình bồi dưỡng học sinh giỏi, chủ đề chương trình vấn đề chiếm vai trò quan trọng Bởi vì, sử dụng chương trình để hợp lý hóa, tiết kiệm công sức lập trình Đồng thời, chương trình giúp cho người lập trình dễ sửa chữa, dễ kiểm tra Vì tất đề thi học sinh giỏi khối THCS sử dụng chương trình để giải toán Vấn đề đặt là: gợi động hoạt động cho học sinh giảng dạy chương trình nào? Đó vấn đề mà thân quan tâm Chính vậy, mạnh dạn đưa kinh nghiệm “Giúp học sinh hình thành kỹ xây dựng chương trình ôn luyện Học sinh giỏi Tin học THCS” cụ thể thân thực giảng dạy Bồi dưỡng Học sinh giỏi trường Phổ thông Dân tộc Nội trú Hướng Hoá để đồng nghiệp tham khảo Sáng kiến kinh nghiệm Trang Trường PTDTNT Hướng Hoá II Mục đích đề tài Tạo động cho học sinh ý thức ý nghĩa hoạt động sử dụng chương trình công việc lập trình Từ đó, học sinh liên hệ , vận dụng sáng tạo vào giải toán lập trình tình thực tế III Phương pháp nghiên cứu Phương pháp nghiên cứu dựa lí thuyết thực tiễn trình bồi dưỡng học sinh giỏi trường Phổ thông Dân tộc Nội trú Hướng Hoá để đưa kết luận phù hợp IV Phạm vi đối tượng nghiên cứu Phạm vi nghiên cứu - Nghiên cứu lí luận: Phân tích - tổng hợp- khái quát - Nghiên cứu thực tiễn: đề tài tập trung nghiên cứu phạm vi học sinh bồi dưỡng để chuẩn bị cho kì thi Học sinh giỏi cấp trường, cấp Tỉnh năm học 2013-2014, 2014-2015, 2015-2016 Đối tượng nghiên cứu Đối tượng nghiên cứu kỹ xây dựng chương trình học sinh bồi dưỡng Học sinh giỏi V Thời gian thực đề tài Các năm học 2013 – 2014, 2014 – 2015 năm học 2015 - 2016 Sáng kiến kinh nghiệm Trang Trường PTDTNT Hướng Hoá B PHẦN NỘI DUNG I Cơ sở lý luận Lập trình từ xuống Khi lập trình giải toán lớn, viết chương trình mạch từ xuống người lập trình vất vả chí không thực Mặc khác, có viết việc sửa đổi kiểm tra lỗi khó khăn phải đụng chạm đến toàn chương trình Để khắc phục điều đó, người ta phân tích việc giải toán thành công việc tương đối độc lập Sau chi tiết dần công việc thành các công việc nhỏ Điều có nghĩa "phân mảnh" dần theo cấp Turbo Pascal cho phép người lập trình "phân mảnh" chương trình nhằm phục vụ ý đồ Có nghĩa chia chương trình lớn thành nhiều phần nhỏ giải phần (mỗi phần nhỏ gọi chương trình con) Sau tuỳ nội dung công việc mà lắp ghép chương trình nhỏ lại với để giải toán Phương pháp lập trình có phân mảnh gọi TOP-DOWN PROGRAMMING (Lập trình từ gốc đến hay gọi lập trình có cấu trúc) Phân loại cấu trúc chung chương trình con: Turbo Pascal cho phép xây dựng hai loại chương trình thủ tục (Procedure) hàm (Function) Trong đó: Thủ tục chương trình dùng để thực số thao tác xử lý để giải công việc cụ thể phân mảnh Hàm chương trình dùng để xác định giá trị đại lượng có kiểu liệu đơn giản (số, kí tự, xâu kí tự, logíc) Giá trị đại lượng gọi giá trị trả hàm Sáng kiến kinh nghiệm Trang Trường PTDTNT Hướng Hoá Thủ tục 2.1 Định nghĩa thủ tục: Một thủ tục định nghĩa theo cú pháp sau: PROCEDURE TênThủTục [(Danh sách tham số hình thức)] ; Các định nghĩa khai báo địa phương; BEGIN Các câu lệnh xử lý; {thân thủ tục} END; Trong đó: - TênThủTục: là định danh người sử dụng đặt theo nguyên tắc đặt tên Turbo Pascal - Danh sách tham số hình thức: tên đối tượng đóng vai trò nhận thông tin vào cho thủ tục hoạt động Tham số hình thức có hai loại: tham biến tham trị Các tham số hình thức xác định rõ kiểu liệu chúng kiểu liệu người dùng kiểu phải định nghĩa trước định nghĩa trực tiếp Nếu tham biến phải có từ khoá Var đứng trước Ví dụ: PROCEDURE UCLN(m,n:Word; Var a:Word); TYPE MANG = Array[1 100] Of Integer; ; PROCEDURE SapXep(Var A:Mang; N:Word); ; Một thủ tục tham số hình thức Khi phần khai báo sau tên thủ tục cặp dấu ngoặc Ví dụ: PROCEDURE Sáng kiến kinh nghiệm TO_MAU; Trang Trường PTDTNT Hướng Hoá - Các định nghĩa khai báo địa phương: khai báo hằng, kiểu, biến, chương trình Các đối tượng khai báo dùng cho thủ tục chương trình chứa - Các câu lệnh xử lý: hệ thống câu lệnh cài đặt nhằm thực giải thuật thiết kế cho thủ thục Ví dụ: Để viết thủ tục tìm ước số chung lớn hai số nguyên dương m n cho trước ta cho m, n đóng vai trò tham trị, giá trị ước số chung lớn tìm lưu tham biến a Thủ tục viết sau: PROCEDURE UCLN(m,n:Word; Var a:Word); BEGIN While m n if m>n then m:=m-n else n:=n-m; a:=m; END; 2.2 Lời gọi thủ tục Sau thủ tục định nghĩa, muốn sử dụng thủ tục phải thực lời gọi thủ tục Lời gọi thủ tục thực sau: Nếu thủ tục có tham số hình thức lời gọi thủ tục phải có tên thủ tục tham số thực tế kèm theo sau: TênThủTục [(danh sách tham số thực tế)]; Nếu thủ tục tham số hình thức lời gọi thủ tục có tên thủ tục: TênThủTục; Khi thực lời gọi thủ tục, có truyền biến cho tham biến tham trị trình xử lý giá trị biến bị thay đổi Tuy nhiên, thủ tục hoạt động xong thì: - Nếu tham số thực tế biến truyền theo kiểu tham trị biến lấy lại giá trị trước truyền cho thủ tục - Nếu tham số thực tế biến truyền theo kiểu tham biến biến giữ lại giá trị lần thay đổi sau Sáng kiến kinh nghiệm Trang Trường PTDTNT Hướng Hoá Hàm 3.1 Định nghĩa hàm: Một hàm định nghĩa theo cú pháp sau: FUNCTION TênHàm [(Danh sách tham số hình thức)] : ; Các khai báo địa phương; Định nghĩa chương trình hàm; BEGIN Các câu lệnh xử lý; {thân hàm} END; Trong đó: TênHàm định danh người sử dụng đặt theo nguyên tắc đặt tên Turbo Pascal Danh sách tham số hình thức giống thủ tục Kiểu kiểu giá trị trả hàm Ví dụ: FUNCTION UCLN(m,n:Word):Word; Một hàm tham số hình thức Khi phần khai báo sau tên hàm cặp dấu ngoặc Ví dụ: FUNCTION SO_NGAU_NHIEN:Word; Các khai báo địa phương giống thủ tục Các câu lệnh xử lý giống thủ tục Tuy nhiên thân hàm bắt buộc phải có câu lệnh gán tên hàm giá trị trả hàm, giá trị dạng biểu thức có kiểu kiểu giá trị trả hàm, theo cú pháp: TênHàm:= Biểu thức; Trong kiểu Biểu thức phải trùng với kiểu giá trị trả hàm Sáng kiến kinh nghiệm Trang Trường PTDTNT Hướng Hoá 3.2 Lời gọi hàm: Khi sử dụng hàm phải thực lời gọi hàm Thực lời gọi hàm để lấy giá trị trả hàm Vì lời gọi hàm phải đặt biểu thức có xử lý giá trị Khi thực lời gọi hàm phải truyền tham số thực tế cho giống thủ tục Ví dụ: USES CRT; Var m,n,a:Word; FUNCTION UCLN(m,n:Word):Word; BEGIN While m n if m>n then m:=m-n else n:=n-m; UCLN:=m; END; BEGIN Readln(m,n); a:= UCLN(m,n); Writeln('USCLN ', m ,' ', n ,' là: ', a); END Chương trình gồm có hai hàm: Hàm UCLN(m,n)có giá trị trả hàm ước số chung lớn hai số nguyên dương m n Biến toàn cục biến địa phương Biến toàn cục biến khai báo sau từ khoá VAR chương trình Biến địa phương biến khai báo sau từ khoá VAR chương trình USES CRT; VAR Khai báo biến toàn cục; PROCEDURE AAA(danh sách tham số hình thức); Var Khai báo biến địa phương; Begin ; End; BEGIN Sáng kiến kinh nghiệm Trang Trường PTDTNT Hướng Hoá ; END Phạm vi sử dụng biến địa phương thân chương trình khai báo chúng chương trình chứa chương trình Thời gian tồn chúng từ chương trình gọi thực thực xong Còn phạm vi sử dụng biến toàn cục toàn chương trình (trong chương trình tất chương trình nó) thời gian tồn chúng chương trình hoạt động Chú ý (1) Tên tham số hình thức tên biến địa phương chương trình không trùng (2) Tên biến địa phương trùng tên với tên biến toàn cục Tuy nhiên chương trình gọi, có sử dụng biến trùng tên trình chương trình hoạt động, Turbo Pascal hiểu biến địa phương, biến toàn cục tạm thời bị che dấu chương trình hoạt động xong (3) Biến toàn cục tham gia chương trình con, tác động ảnh hưởng đến giống chúng tham gia chương trình Ngược lại, biến địa phương tham gia chương trình khai báo chúng, tham gia chương trình II Cơ sở thực tiễn Mục đích việc viết chương trình Để giúp học sinh hiểu mục đích việc viết chương trình Giáo viên cho HS thực tập sau viết nhận xét: Xét toán : “Viết chương trình cho máy tính chu vi, diện tích đường chéo hai hình chữ nhật theo hai kích thước hình Trong đó: - Hình thứ có hai kích thước a1, a2; Sáng kiến kinh nghiệm Trang Trường PTDTNT Hướng Hoá - Hình thứ hai có hai kích thước b1, b2 Var a1, b1, a2, b2, p1, p2, S1, S2, d1, d2: Real; Begin Writeln('Nhap hai canh cua HCN thu nhat:'); Write('a1 = '); Readln(a1); Write('b1 = '); Readln(b1); Writeln('Nhap hai canh cua HCN thu hai:'); Write('a2 = '); Readln(a2); Write('b2 = '); Readln(b2); p1 := * (a1 + b1); p2 := * (a2 + b2); S1 := a1 * b1; S2 := a2 * b2; d1 := sqrt(a1 * a1 + b1 * b1); d2 := sqrt(a2 * a2 + b2 * b2); Writeln('Hinh chu nhat thu nhat:'); Writeln('Chu vi bang ',p1); Writeln('Dien tich bang : ',S1); Writeln('Duong cheo bang: ',d1); Writeln('Hinh chu nhat thu hai:'); Writeln('Chu vi bang ',p2); Writeln('Dien tich bang : ',S2); Writeln('Duong cheo bang: ',d2); Readln End Với chương trình để thực yêu cầu đề bài, phải viết viết lại hai dòng liên tiếp tính chu vi, diện tích đường chéo hình chữ nhật Giả sử phải tính đến n hình chữ nhật vấn đề thực phức tạp Trong toán ta chưa có phần kiểm tra điều kiện nhập vào hình Nếu có thêm điều kiện này, chắn chương trình dài Vấn đề đặt là: làm xóa bỏ hạn chế này? Ở đây, hướng dẫn cho học sinh sử dụng chương trình để khắc phục hạn chế Thay phải viết nhiều lần lệnh nhập, tính tính lại cho hình ta viết thủ tục: thủ tục nhập hai cạnh hình chữ nhật thủ tục Tính ba giá trị cho hình Var a1, b1, a2, b2: Real; Procedure nhapDoDai(Var x, y: Real; i: Byte); Begin Writeln('Nhap hai kich thuoc cua HCN thu ',i,':'); Repeat Write('Canh thu nhat: '); Readln(x); Write('Canh thu hai : '); Readln(y); If (x 0); End; Procedure Tinh(a, b: Real; k: Byte); Begin Writeln('Hinh chu nhat thu ',k,':'); Writeln('Chu vi bang: ',2 * (a + b)); Writeln('Dien tich bang : ',a * b); Writeln('Duong cheo bang: ',sqrt(a * a + b * b)); End; Begin Nhap(a1, b1, 1); nhapDoDai(a2, b2, 2); Tinh(a1, b1, 1); tinh(a2, b2, 2); Readln End Như việc viết chương trình xoá bỏ dài dòng không cần thiết (lặp lặp lại công việc) so với cách viết thông thường, với cách viết chương trình ta dễ dàng kiểm tra tính đắn trước lắp ráp vào chương trình chính, dễ dàng xác định sai sót điều chỉnh câu lệnh cho phù hợp Các bước hướng dẫn học sinh xây dựng chương trình cho toán 2.1 Xác định cần xây dựng chương trình để giải toán Xác định cần xây dựng chương trình bước quan trọng để giải toán đề thi Học sinh giỏi Vì giáo viên cần hướng dẫn, đưa số ví dụ cụ thể để học sinh tham khảo, từ hình thành thói quen, kỹ xác định cần chương trình Ví dụ với toán “Viết chương trình cho máy tính chu vi, diện tích đường chéo hai hình chữ nhật theo hai kích thước hình” ta cần xây dựng hai chương trình nhapDoDai tinh Hoặc toán “Nhập vào dãy số nguyên gồm n phần tử Sau in phần tử dãy số nguyên tố” ta chia toán thành công việc là: Sáng kiến kinh nghiệm Trang 11 Trường PTDTNT Hướng Hoá - Nhập dãy n số nguyên - Kiểm tra xem số có phải số nguyên tố hay không - In kết tất số nguyên tố dãy vừa nhập Do ta cần xây dựng chương trình nhapDay, kTSNT, inKetQua Từ toán dần hình thành cho học sinh kỹ xác định chương trình cần thiết để giải toán 2.2 Sử dụng hàm hay thủ tục để viết chương trình Hầu hết toán giải hàm thủ tục Nhưng việc chọn hàm hay thủ tục cho phù hợp với toán riêng biệt giúp giải toán cách rõ ràng, tiện lợi khoa học Do việc xác định hàm hay thủ tục bước quan trọng Việc chọn phụ thuộc vào bước xác định chương trình Thông thường, chương trình thể việc nhập, xuất liệu ta thường viết dạng thủ tục chương trình thể việc tính toán, kiểm tra điều kiện thể dạng hàm Xét toán “Nhập vào dãy số nguyên gồm n phần tử Sau in phần tử dãy số nguyên tố” với chương trình nhapDay, kTSNT, inKetQua viết thành thủ tục hàm là: - Procedure nhapDay(……….); - Function kTSNT(………): boolean; - Procedure inKetQua(…….); 2.3 Khai báo tham trị hay tham biến chương trình Việc khai báo tham biến hay tham trị ảnh hưởng đến kết chương trình Khi sử dụng tham trị tham số thực tế biến truyền theo kiểu tham trị biến lấy lại giá trị trước truyền cho thủ tục, biến truyền theo kiểu tham biến biến giữ lại giá trị lần thay đổi sau Do đó, giáo viên phải cần củng cố, khắc sâu thêm cho học sinh thông qua ví dụ, toán cụ thể để học sinh hiểu chất việc khai báo Sáng kiến kinh nghiệm Trang 12 Trường PTDTNT Hướng Hoá Với chương trình “Tìm ước chung lớn số a b” ta quan tâm đến việc đưa kết ƯCLN a b mà không cần thay đổi giá trị a hay b Do ta cần khai báo tham số a b tham trị Var a,b: integer; Function uCLN(m,n:integer):integer; Begin While mn if m>n then m:=m-n else n:=n-m; uCLN:=m; End; Begin a:=15; b:=5; Writeln(‘UCLN la: ’,uCLN(a,b)); Writeln(‘a= ’,a,‘ b= ’,b); Readln End Kết chương trình là: UCLN la: a=15 b=5 Rõ ràng ta thấy giá trị hai biến a b không thay đổi thoát khỏi hàm uCLN Với toán “Hoán đổi giá trị hai biến a, b cho nhau” ta thấy giá trị a b đổi chỗ cho nhau, không giống trước nên ta phải khai báo tham số a b tham biến Var a,b: integer; Procedure hoanDoi(var x,y:integer); Var tg:integer; Begin tg:=x; x:=y; y:=tg; End; Begin a:=15; b:=5; hoanDoi(a,b); Writeln(‘a= ‘,a,’ b= ‘,b); Readln End Kết chương trình là: Sáng kiến kinh nghiệm Trang 13 Trường PTDTNT Hướng Hoá a=5 b=15 Ta thấy với cách truyền tham biến này, giá trị a b thay đổi thoát khỏi thủ tục hoán đổi 2.4 Gọi hàm, thủ tục Việc gọi thủ tục đơn giản viết tên thủ tục tham số thực tế truyền vào, thủ tục tham số thực tế cần viết tên thủ tục Còn thực lời gọi hàm để lấy giá trị trả hàm Vì lời gọi hàm phải đặt biểu thức có xử lý giá trị Một số ví dụ 3.1 Viết chương trình in tất số nguyên tố nhỏ n (n nhập từ bàn phím, n[...]... xây dựng những chương trình con nào để giải quyết bài toán Xác định cần xây dựng những chương trình con nào là bước quan trọng nhất để giải quyết bài toán trong các đề thi Học sinh giỏi Vì vậy giáo viên cần hướng dẫn, đưa ra một số ví dụ cụ thể để học sinh có thể tham khảo, từ đó hình thành thói quen, kỹ năng xác định mình cần những chương trình con nào Ví dụ với bài toán “Viết chương trình cho máy... viết chương trình con sẽ xoá bỏ sự dài dòng không cần thiết (lặp đi lặp lại một công việc) so với cách viết thông thường, và với cách viết chương trình con ta còn dễ dàng kiểm tra tính đúng đắn trước khi lắp ráp vào chương trình chính, do đó sẽ dễ dàng xác định sai sót và điều chỉnh các câu lệnh cho phù hợp 2 Các bước hướng dẫn học sinh xây dựng chương trình con cho một bài toán 2.1 Xác định cần xây dựng. .. vừa nhập Do đó ta cần xây dựng những chương trình con như nhapDay, kTSNT, inKetQua Từ những bài toán như vậy sẽ dần hình thành cho học sinh kỹ năng xác định các chương trình con cần thiết để giải bài toán 2.2 Sử dụng hàm hay thủ tục để viết các chương trình con Hầu hết các bài toán có thể giải được chỉ bằng hàm hoặc chỉ bằng thủ tục Nhưng việc chọn hàm hay thủ tục cho phù hợp với từng bài toán riêng... được Qua quá trình ôn luyện học sinh giỏi tại trường trong các năm học 20132014, 2014-2015, 2015-2016 nhờ áp dụng các định hướng trên mà thành tích của các em tại kì thi học sinh giỏi cấp trường ngày càng tiến bộ, học sinh đã có thể phân tích, đưa ra các hàm thủ tục hợp lí hơn đối với từng bài toán trong các đề thi Cụ thể qua các năm các em đã đạt được thành tích ở cấp trường như sau: Năm học 2013-2014... Thanh Tiên (2004), Giáo trình Ngôn ngữ lập trình Turbo Pascal, Trường Đại học Sư phạm Huế 2 Vụ giáo dục trung học (2014), Tài liệu tập huấn Dạy học và kiểm tra, đánh giá kết quả học tập theo định hướng phát triển học sinh môn Tin học cấp Trung học cơ sở, Bộ giáo dục và đào tạo 3 Phạm Thế Long(Chủ biên)- Bùi Việt Hà- Quách Tất Kiên- Bùi Văn Thanh (2014), Tin học dành cho trung học cơ sở Quyển 3, Nhà... giúp chúng ta giải quyết bài toán một cách rõ ràng, tiện lợi và khoa học hơn Do đó việc xác định hàm hay thủ tục cũng là một bước rất quan trọng Việc chọn này phụ thuộc vào bước xác định các chương trình con ở trên Thông thường, các chương trình con thể hiện việc nhập, xuất dữ liệu ta thường viết ở dạng thủ tục còn các chương trình con thể hiện việc tính toán, kiểm tra điều kiện sẽ được thể hiện ở dạng... ra các phần tử trong dãy là số nguyên tố” với các chương trình con như nhapDay, kTSNT, inKetQua thì sẽ viết thành 2 thủ tục và 1 hàm đó là: - Procedure nhapDay(……….); - Function kTSNT(………): boolean; - Procedure inKetQua(…….); 2.3 Khai báo là tham trị hay tham biến trong chương trình con Việc khai báo tham biến hay tham trị ảnh hưởng đến kết quả của chương trình Khi sử dụng tham trị nếu tham số thực... 2013-2014 Nhất Nhì 0 0 Năm học 2014-2015 Ba KK 0 1 Nhất Nhì 1 0 Năm học 2015-2016 Ba KK 1 0 Nhất Nhì 1 1 Ba KK 1 0 II Kiến nghị Tôi mong ước rằng trong tương lai, phòng máy vi tính sẽ được mở rộng, đảm bảo số lượng máy tính tạo điều kiện cho các em học sinh được làm quen với máy tính nhiều hơn, thực hành nhiều hơn Vì có như vậy chất lượng dạy và học của giáo viên và học sinh mỗi ngày đạt chất lượng... chu vi, diện tích và đường chéo của hai hình chữ nhật theo hai kích thước của mỗi hình” thì ta cần xây dựng hai chương trình con là nhapDoDai và tinh như ở trên Hoặc là đối với bài toán “Nhập vào một dãy số nguyên gồm n phần tử Sau đó in ra các phần tử trong dãy là số nguyên tố” thì ta sẽ chia bài toán ra thành 3 công việc đó là: Sáng kiến kinh nghiệm Trang 11 Trường PTDTNT Hướng Hoá - Nhập dãy n số nguyên... biến thì biến đó sẽ giữ lại giá trị của lần thay đổi sau cùng Do đó, giáo viên phải cần củng cố, khắc sâu thêm cho học sinh thông qua các ví dụ, các bài toán cụ thể để học sinh có thể hiểu hơn các bản chất của việc khai báo Sáng kiến kinh nghiệm Trang 12 Trường PTDTNT Hướng Hoá Với chương trình “Tìm ước chung lớn nhất của 2 số a và b” ta chỉ quan tâm đến việc đưa ra kết quả ƯCLN của a và b mà không cần