Hướng dẫn học sinh phát hiện và sữa lỗi cú pháp khi viết chương trình bằng ngôn ngữ lập trình pascal trong chương trình tin học lớp 11

20 876 0
Hướng dẫn học sinh phát hiện và sữa lỗi cú pháp khi viết chương trình bằng ngôn ngữ lập trình pascal trong chương trình tin học lớp 11

Đ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

PHẦN I: ĐẶT VẤN ĐỀ I LÍ DO CHỌN ĐỀ TÀI Thế kỉ XXI kỉ Công nghệ thông tin truyền thông Vì việc trang bị kiến thức Tin học vấn đề có ý nghĩa tầm quan trọng lớn trình đào tạo nhân lực, bỗi dưỡng nhân tài cho đất nước Xác định tầm quan trọng nên từ năm 2006 môn Tin học Giáo dục-Đào tạo đưa vào giảng dạy cấp học, nhằm trang bị cho học sinh kiến thức bản, phổ thông ngành khoa học Tin học Đặc biệt chương trình SGK Tin học lớp 11 bậc THPT, nhà biên soạn sách đưa vào chương giúp học sinh tiếp cận với ngôn ngữ lập trình bậc cao Qua giúp em hình dung đời, cấu tạo, hoạt động ích lợi chương trình hoạt động máy tính Từ khơi gợi em niềm đam mê môn Tin học, tạo niềm tin để em dễ dàng tự định hướng, lựa chọn nghề nghiệp sau Tuy vậy, thực giảng dạy môn Tin học lớp 11 Trường THPT Lê Lợi, thấy rằng, việc học sinh lập trình giải toán máy tính thường gặp không khó khăn Phần lớn em gặp số lỗi mặt cú pháp ngữ nghĩa Trong để viết chương trình hoàn chỉnh học sinh phải có tư logic thuật toán, biết khai báo kiểu liệu cách hợp lí, biết sử dụng câu lệnh cú pháp Bản thân trình giảng dạy cố gắng hướng dẫn học sinh viết chương trình với yêu cầu Nhưng thời lượng thực hành lớp không nhiều mà phần lớn nhà em máy vi tính nên em không thực hành thường xuyên, dẫn đến em mắc phải số lỗi Vì vậy, từ năm học 2011-2012 đến tìm áp dụng số biện pháp: “Hướng dẫn học sinh phát sửa lỗi cú pháp viết chương trình ngôn ngữ lập trình Pascal chương trình Tin học 11” Trong trình áp dụng, thân tự thấy có kết định, muốn chia sẻ với bạn đồng nghiệp Hi vọng nhận nhiều ý kiến bổ ích để đề tài ngày hoàn thiện PHẦN II GIẢI QUYẾT VẤN ĐỀ I CƠ SỞ LÍ LUẬN Pascal ngôn ngữ lập trình bậc cao giáo sư Niklaus Wirth (trường đại học kỹ thuật , Zurich, Thụy sĩ) sáng tác công bố vào đầu năm 1970, với tên Pascal để kỷ niệm nhà toán học người Pháp Blaise Pascal kỷ 17 Lúc đầu, ngôn ngữ lập trình sáng tác nhằm giúp cho người học lập trình có thói quen viết chương trình có cấu trúc sáng sủa, rõ ràng, dễ hiểu dễ đọc cho người Giáo sư Wirth thấy tránh nhiều lỗi lập trình với ngôn ngữ có cấu trúc khối có kiểm tra kỹ lưỡng tương thích kiểu liệu Mà Pascal ngôn ngữ thế: biến kiểu liệu tự đem trộn lẫn với biến kiểu liệu khác Ngôn ngữ Pascal tách thông tin liệu (biến, hằng,…) lệnh cần dùng cho nhiệm vụ xác định thành khối riêng, tách khỏi phần lại chương trình để người lập trình giải dần phần một, khối chí cho nhiều người tham gia lập trình, người phụ trách vài khối Từ tính ưu việt ngôn ngữ lập trình Pascal mà ngôn ngữ sử dụng rộng dãi Pascal thích hợp dùng để giảng dạy nhà trường cho người bắt đầu học lập trình Do trường THPT Lê Lợi chọn ngôn ngữ lập trình để dạy học sinh giải toán máy tính Mặc dù mục tiêu chương trình giáo dục Tin học Bộ GD & ĐT không quy định phải dạy học sinh ngôn ngữ lập trình cụ thể Tuy nhiên trình học tập, học sinh trường mắc phải số lỗi lập trình Vì để khắc phục tình trạng mắc lỗi, cố gắng tìm giải pháp trình giảng dạy II THỰC TRẠNG CỦA VẤN ĐỀ 1.Thực trạng chung - Mặc dù Bộ giáo dục đào tạo xác định rõ ý nghĩa tầm quan trọng môn Tin học, lại môn học không thi Tốt nghiệp Đại học nên chưa giáo viên, phụ huynh học sinh quan tâm mức - Điều kiện phòng máy nhà trường chưa đáp ứng học sinh/máy, em phải ngồi chung -3 em/máy dẫn đến hiệu tiết thực hành chưa cao Do việc nắm bắt nội dung học bị hạn chế - Giáo viên tham gia học bồi dưỡng chuyên đề phương pháp giảng dạy môn Tin học Về phía giáo viên Có nhiều phương pháp dạy học tích cực đôi lúc áp dụng khó khăn Do nhiều nguyên nhân như: kinh nghiệm giảng dạy, đối tượng học sinh, điều kiện trường lớp… 3.Về phía học sinh - Do đa phần học sinh trường em nông thôn nên Tin học môn học mẻ lạ lẫm Phần lớn em tiếp xúc với máy tính Vì việc áp dụng phương pháp dạy học phù hợp với môn với đối tượng học sinh thực khó khăn - Học sinh trường THPT Lê Lợi hầu hết học Ban khoa học tự nhiên nên em thường học lệch, đa phần em trọng vào môn thi Đại học - Khi viết chương trình học sinh thường mắc lỗi cú pháp Đó lỗi mà viết chương trình học sinh không tuân thủ quy định ngôn ngữ lập trình như: Đặt sai tên hằng, biến, tên chương trình …, viết sai câu lệnh, viết sai từ khóa … III GIẢI PHÁP VÀ TỔ CHỨC THỰC HIỆN Giải pháp Xuất phát từ thực trạng trên, nhận thấy thân không không thay đổi cách dạy nhằm giúp học sinh chủ động trình tìm lỗi sửa lỗi học xong chương trình Tin học 11 có không học sinh chưa viết chương trình hoàn chỉnh Dẫn đến học sinh chán nản, ngày xa rời môn Tin học Vì để khắc phục tình trạng có số giải pháp sau dành cho lỗi cú pháp mà học sinh thường mắc phải nêu mục II, tiết lí thuyết tiết tập thực hành a) Đối với tiết lí thuyết * Giải pháp 1: Giáo viên tạo tình mắc lỗi Thực chia nhóm Yêu cầu nhóm tìm lỗi có chương trình Sau đại diện nhóm lên bảng trình bày Giáo viên nhận xét, tổng kết, nhấn mạnh nguyên nhân gây lỗi có chương trình Để khích lệ học sinh, giáo viên tiến hành đánh giá kết nhóm cho điểm * Giải pháp 2: Giáo viên nêu toán Thực chia nhóm Yêu cầu nhóm viết chương trình Chiếu kết nhóm Các nhóm khác nhận xét Giáo viên củng cố, chạy thử chương trình cho lớp quan sát Từ chương trình hoàn chỉnh đó, nhóm tự đối chiếu với câu trả lời nhóm để hoàn chỉnh chương trình nhóm b) Đối với tiết tập thực hành Học sinh thực hành theo yêu cầu SGK, giáo viên yêu cầu lớp thực hành nội dung Các em tự sửa lỗi, giáo viên quan sát, bao quát phòng máy, hỗ trợ cho học sinh yếu Sau đó, giáo viên chiếu chương trình có lỗi mà em chưa khắc phục lỗi đa phần em mắc phải Giáo viên phân tích nguyên nhân lỗi yêu cầu em sửa lại chương trình Tổ chức thực Trong trình giảng dạy áp dụng kinh nghiệm chương II hết chương trình Tin học lớp 11 Nhưng điều kiện không cho phép nên chương đưa số tiết làm ví dụ để minh họa cho đề tài 2.1 Khắc phục lỗi sai thường gặp chương II: ‘‘Chương trình đơn giản’’ a) Các lỗi thường gặp - Lỗi đặt tên hằng, tên biến trùng VD: Var a, A: byte; (Pascal không phân biệt chữ hoa chữ thường Do a A một) - Lỗi đặt tên hằng, tên biến, tên chương trình, không qui định ngôn ngữ lập trình - Ngăn cách biến phải dấu phẩy em thường dùng dấu chấm phẩy - Khi kết thúc câu lệnh dấu chấm phẩy - Khi viết từ khóa thường viết sai lỗi tả VD: Const viết Cont, end viết and, Real viết Read,… - Viết sai câu lệnh gán VD: x := 0; viết là: x = 0; - Khi viết xâu thường quên không đặt xâu vào cặp dấu nháy đơn - Khi viết thông báo hình biểu thức lại đặt cặp dấu nháy đơn với xâu kí tự - Khai báo biến thuộc kiểu liệu phần thân chương trình lại dùng biến với kiểu liệu khác dẫn đến sai kiểu VD : Khai báo biến a thuộc kiểu nguyên, phần thân chương trình lại có câu lệnh a := a/2 ; (biểu thức a/2 số thực, biến a thuộc kiểu nguyên nên lưu trữ giá trị thực) - … b) Biện pháp sửa lỗi * Tiết 7: Các thủ tục chuẩn vào/ra đơn giản Ví dụ: Hãy viết chương trình đưa hình dòng thông báo: ‘Xin chao cac ban hoc sinh lop 11A1 truong THPT Le Loi’ Các bước tiến hành sau : -Bước 1: Giáo viên chiếu chương trình viết sẵn cho học sinh quan sát (Ở trường THPT Lê Lợi lớp học có máy chiếu) Progam Viet thong bao ; Begin ; Writeln(‘Xin chao cac ban hoc sinh lop 11A1 truong THPT Le Loi) Realn; End - Bước Chia lớp thành nhóm Yêu cầu nhóm tìm lỗi sai có chương trình - Bước Đại diện nhóm lên bảng trình bày kết - Bước Giáo viên thực biên dịch chương trình để học sinh thấy lỗi sai phân tích để học sinh hiểu nguyên nhân sai Các lỗi sai chương trình : + Từ khóa Progam sai, là: Program (mã lỗi: 36) + Tên chương trình Viet thong bao sai, không theo quy tắc đặt tên ngôn ngữ lập trình Pascal (tên không chứa dấu cách) (mã lỗi: 85) + Câu lệnh Begin ; sai sau từ khóa Begin dấu ; (mã lỗi: 85) + Câu lệnh Writeln(‘Xin chao cac ban hoc sinh lop 11A1 truong THPT Le Loi) có lỗi sai, thiếu dấu đóng nháy xâu kí tự (mã lỗi:8) kết thúc câu lệnh dấu ; (mã lỗi: 85) + Thủ tục Realn sai, phải Readln (mã lỗi: 3) - Bước Chạy thử chương trình cho học sinh quan sát - Bước Giáo viên đánh giá kết cho điểm nhóm Qua ví dụ học sinh thấy có lỗi sai có mã lỗi 85, nhiên lỗi lại sai tình khác Do học sinh thụ động tra cứu bảng thông báo lỗi SGK khó tự sửa lỗi Cũng qua ví dụ học sinh phân tích nguyên nhân có lỗi sai cách sửa lỗi Do sau học sinh không mắc phải lỗi nêu * Tiết : Bài tập thực hành Thực hành theo yêu cầu SGK - Bước Yêu cầu lớp soạn thảo chương trình viết sẵn SGK trang 34: Program Uses Var Giai_PTB2 ; Crt ; a, b, c, D : Real ; x1, x2: Real; Begin Clrscr; Write(‘a, b, c: ’); Readln(a,b,c); D:= b * b – *a*c; x1:= (-b – sqrt(D)) / (2*a); x2:= -b/a –x1; write(‘x1= ’ , x1:6:2, ‘ x2= ’, x2:6:2); readln; end - Bước + Yêu cầu học sinh thực biên dịch chương trình để phát sửa lỗi Tuy nhìn chương trình viết sẵn SGK để soạn thảo chương trình em soạn thảo mắc nhiều lỗi Có nhiều nguyên nhân, kỹ soạn thảo chưa thành thạo dẫn đến sai lỗi tả, hay chưa nắm vững cách viết biểu thức, cách viết thông báo hình,… + Để học sinh tự sửa lỗi Giáo viên quan sát, bao quát phòng máy, hỗ trợ cho học sinh yếu Sau đó, giáo viên chiếu chương trình có lỗi mà em chưa khắc phục lỗi đa phần em mắc phải Giáo viên phân tích nguyên nhân lỗi yêu cầu em sửa lại chương trình Sau chương trình giáo viên chiếu lên chiếu: Program Uses Var Giai_PTB2 ; Crt ; a, b, c, D : Read ; x1, x2: Read; begin Clrscr; Write(‘a, b, c: ’); Readln(a;b;c); D:= b * b – *a*c; x1:= (-b – sqrt(D)) / (2a); x2:= -b/a –x1; write(‘x1= ’ x1:6:2, ‘ x2= ’, x2:6:2); readln; end; Giáo viên thực biên dịch, hướng dẫn học sinh sửa lỗi có chương trình Cụ thể chương trình có lỗi sai:  Sai kiểu liệu, Read mà Real (mã lỗi: 26)  Câu lệnh Read(a;b;c); sai ngăn cách biến phải dấu phẩy, sửa lại là: Read(a,b,c); (mã lỗi: 89)  Câu lệnh x1:= (-b – sqrt(D)) / (2a); sai phép nhân phải dùng kí hiệu *, sửa lại là: x1:= (-b – sqrt(D)) / (2*a); (mã lỗi: 89)  Câu lệnh write(‘x1= ’ x1:6:2, ‘ x2= ’, x2:6:2); sai ngăn cách kết phải dấu phẩy Sửa lại là: write(‘x1= ’, x1:6:2, ‘ x2= ’,x2:6:2); (mã lỗi: 89);  Câu lệnh end; sai kết thúc chương trình phải dấu chấm, sửa lại là: end (mã lỗi : 88) -Bước Khi hết lỗi mặt cú pháp, yêu cầu học sinh chạy chương trình yêu cầu sách giáo khoa Tuy nhiên có nhiều em thực chưa đúng, lỗi thường gặp là: Khi thực câu lệnh nhập Read(a,b,c) em dùng dấu chấm phẩy để ngăn cách giá trị VD: Khi nhập giá trị cho a, b, c, em gõ: ; 4; Như em chưa nắm vững cách nhập giá trị cho nhiều biến Lúc giáo viên cần làm mẫu cho học sinh quan sát nhấn mạnh cách nhập giá trị cho nhiều biến: giá trị phải gõ cách dấu cách kí tự xuống dòng (nhấn phím Enter) 2.2 Khắc phục lỗi sai chương III: ‘‘Cấu trúc rẽ nhánh lặp’’ a) Các lỗi thường gặp - Viết thiếu từ khóa như: then, do, downto, to… - Điều kiện câu lệnh rẽ nhánh hay câu lệnh lặp biểu thức logic - Câu lệnh trước từ khóa else có dấu chấm phẩy - Trong câu lệnh For…to …do giá trị đầu lại lớn giá trị cuối hay câu lệnh For… downto … giá trị đầu lại nhỏ giá trị cuối - Trong câu lệnh lặp While … câu lệnh làm thay đổi điều kiện lặp Do vòng lặp dừng lại … b) Biện pháp sửa lỗi * Tiết 11 – Bài ‘‘Cấu trúc rẽ nhánh’’ Ví dụ: Viết chương trình tìm nghiệm thực phương trình bậc hai : ax2 + bx + c = (a # 0) - Bước Chiếu chương trình chuẩn bị sẵn cho lớp quan sát Program Vidu ; Uses Var Crt ; a, b, c, d :Real ; x1, x2 : Real; begin clrscr; write(‘Moi nhap a, b, c: ’); Readln(a,b,c); d := b * b – * a*c; if d < then writeln(‘Phuong trinh vo nghiem’); else if d > then Begin x1 : = (-b – sqrt(d))/(2*a); x2 :=(-b + sqrt(d))/(2*a); writeln(‘Phuong trinh co hai nghiem, ’x1,x2); End; if d=0 then writeln(‘Phuong trinh co nghiem kep,’-b/2a); Readln End - Bước Chia lớp thành nhóm Yêu cầu nhóm tìm lỗi sai có chương trình - Bước Đại diện nhóm lên bảng trình bày kết - Bước Giáo viên thực biên dịch chương trình để học sinh thấy lỗi sai phân tích để học sinh hiểu nguyên nhân sai Các lỗi sai chương trình :  Câu lệnh writeln(‘Phuong trinh vo nghiem’); sai (mã lỗi: 113), câu lệnh đứng trước từ khóa else nên dấu chấm phẩy  Câu lệnh writeln(‘Phuong trinh co hai nghiem, ’x1,x2); sai (mã lỗi: 89) Danh sách kết hình câu lệnh gồm có xâu kí tự biến Các kết phải ngăn cách dấu phẩy, xâu kí tự phải đặt cặp dấu nháy đơn Sửa lại là: writeln(‘Phuong trinh co hai nghiem ’,x1:6:2,x2:6:2);  Câu lệnh writeln(‘Phuong trinh co nghiem kep,’-b/2a); sai Câu lệnh có lỗi sai: Thứ nhất, sai cách viết danh sách kết hình (mã lỗi 26) Thứ hai, viết biểu thức chưa với quy định Pascal (mã lỗi: 89) Sửa lại là: writeln(‘Phuong trinh co nghiem kep’,-b/(2*a)); Giáo viên chỉnh sửa lại chương trình thành chương trình hoàn chỉnh: Program Vidu ; Uses Crt ; Var a, b, c, d :Real ; x1, x2 : Real; begin clrscr; write(‘Moi nhap a, b, c: ’); Readln(a,b,c); d := b * b – * a*c; if d < then writeln(‘Phuong trinh vo nghiem’); else begin if d > then begin x1 : = (-b – sqrt(d))/(2*a); x2 :=(-b + sqrt(d))/(2*a); writeln(‘Phuong trinh co hai nghiem ’, x1:6:2,x2:6:2); end; if d=0 then writeln(‘Phuong trinh co nghiem kep ’,-b/(2*a)); End; Readln End - Bước Giáo viên chạy thử chương trình cho học sinh quan sát - Bước Giáo viên đánh giá kết cho điểm nhóm 2.3 Khắc phục lỗi sai chương IV: ‘‘Kiểu liệu có cấu trúc’’ a) Các lỗi thường gặp - Khi khai báo biến mảng thường viết sai từ khóa - Trong khai báo mảng số đầu số cuối chưa xác định - Khi tham chiếu đến phần tử mảng chiều thường viết sai Ví dụ để tham chiếu đến phần tử thứ mảng a học sinh viết a1 a(1) - Đối với ‘‘Kiểu xâu’’ học sinh thường nhầm lẫn hàm thủ tục - … b) Biện pháp sửa lỗi * Tiết 20 – Bài “Kiểu mảng” Ví dụ: Cho dãy A gồm n số nguyên dương A1, A2, …, An Tìm phần tử lớn dãy với số - Bước Sau học sinh nêu lại thuật toán tìm giá trị lớn (đã học lớp 10) Giáo viên chiếu chương trình chuẩn bị sẵn cho lớp quan sát Program Tim_max ; Uses Crt ; 10 Var A : aray[1 Nmax] of integer; n, i, cs: byte; max: integer; begin clrscr; write(‘Nhap n: ’); Readln(n); for i:=1 to n begin write(‘Nhap phan tu thu ’, i,’ :’); readln(a(i)); end; max:=a[1]; cs:=1; for i:=2 to n if a[i] > max then begin max:= a[i]; cs:=i; end; writeln(‘Gia tri lon nhat la: ’, max,’ tai vi tri: ’, cs) ; readln end - Bước Chia lớp thành nhóm Yêu cầu nhóm tìm lỗi sai có chương trình - Bước Đại diện nhóm lên bảng trình bày kết - Bước Giáo viên thực biên dịch chương trình để học sinh thấy lỗi sai phân tích để học sinh hiểu nguyên nhân sai Các lỗi sai chương trình :  Trong khai báo biến mảng: Var A: aray[1 Nmax] of integer; có tới lỗi sai Một là, sai từ khóa Array Aray (mã lỗi:3) Hai là, số cuối Nmax chưa xác định (mã lỗi:3) Lỗi nhiều học sinh không hiểu sai Vì em thấy SGK viết Do giáo viên cần làm rõ để học sinh hiểu, Nmax SGK có giá trị xác định 250 nhờ khai báo trước đó: Const Nmax=250;  Câu lệnh nhập Readln(a(i)); sai (mã lỗi: 64) Sửa lại là: Readln(a[i]); Chương trình sửa lại là: 11 Program Uses Const Var Tim_max ; Crt ; Nmax = 250; A : array[1 Nmax] of integer; n, i, cs: byte; max: integer; begin clrscr; write(‘Nhap n: ’); Readln(n); for i:=1 to n begin write(‘Nhap phan tu thu ’, i,’ :’); readln(a[i]); end; max:=a[1]; cs:=1; for i:=2 to n if a[i] > max then begin max:= a[i]; cs:=i; end; writeln(‘Gia tri lon nhat la: ’, max,’ tai vi tri: ’, cs) ; readln end - Bước Chạy thử chương trình cho lớp quan sát, để em khắc sâu thêm nội dung học - Bước Giáo viên đánh giá kết cho điểm nhóm 2.4 Khắc phục lỗi sai chương V: “Tệp thao tác với tệp” a) Các lỗi thường gặp - Quên không khai báo biến tệp Quên không gắn tên tệp Đường dẫn đến tệp sai Không mở tệp để đọc hay ghi thao tác đọc/ghi tệp Mở nhiều tệp Thao tác tệp xong không thực đóng tệp … 12 b) Biện pháp sửa lỗi Tiết 38 – Ví dụ làm việc với tệp Ví dụ: Cho tệp SO.INP chứa số nguyên, số cách dấu cách Hãy viết chương trình tính tổng số nguyên dương có tệp trên, kết ghi lên tệp SO.OUT - Bước Chia lớp thành nhóm Nhiệm vụ nhóm giải toán - Bước Giáo viên thu kết nhóm Soạn thảo chiếu kết nhóm cho lớp quan sát Đây chương trình nhóm đó: Program Vi_du; Var f, g : Text; n, s : integer ; begin asign(f, ‘SO.INP’) ; S := ; while not eof(f) begin read(f,n) ; if n > then S :=S + n ; end; writeln(g, ‘Tong cac so duong co tep la: ’, s); end - Bước Yêu cầu nhóm lại phát lỗi sai Sau giáo viên củng cố Các lỗi sai có chương trình là:  Câu lệnh asign(f, ‘SO.INP’) ; sai (mã lỗi: 3), viết sai tả từ khóa assign  Câu lệnh while not eof(f) sai (mã lỗi:104), tệp chưa mở để nhập liệu  Câu lệnh writeln(g, ‘Tong cac so duong co tep la: ’, s); sai (mã lỗi: 105), tệp chưa mở để xuất liệu  Thiếu câu lệnh đóng tệp Trong trường hợp này, thực biên dịch máy tính không báo lỗi (không sai mặt cú pháp) Tuy nhiên sau thực chương trình, mở tệp SO.OUT để xem kết kết tệp Nguyên nhân chưa thực đóng tệp nên việc ghi tệp chưa hoàn tất 13 Giáo viên thực chỉnh sửa chương trình thành chương trình hoàn chỉnh: Program Vi_du; Var f, g : Text; n, s : integer ; begin assign(f, ‘SO.INP’) ; reset(f); assign(g,’SO.OUT’); rewrite(g); S := ; while not eof(f) begin read(f,n) ; if n > then S :=S + n ; end; writeln(g, ‘Tong cac so duong co tep la: ’, s); close(f); close(g); end Giáo viên chạy thử chương trình cho học sinh quan sát Bước Từ chương trình hoàn chỉnh trên, nhóm tự đối chiếu với câu trả lời nhóm để hoàn chỉnh chương trình nhóm 2.5 Khắc phục lỗi sai chương VI: “Chương trình lập trình có cấu trúc” a) Các lỗi thường gặp + Không phân biệt hàm thủ tục + Viết sai từ khoá hàm thủ tục + Trong hàm lệnh trả giá trị cho hàm + Gán giá trị biến cho thủ tục + Quên khai báo kiểu liệu cho tên hàm … b) Biện pháp sửa lỗi * Tiết 44 – Ví dụ cách viết sử dụng chương trình Ví dụ: Viết chương trình thực rút gọn phân số, có sử dụng hàm tính ước chung lớn hai số nguyên 14 - Bước Giáo viên chiếu chương trình viết sẵn cho học sinh quan sát: program Rut_gon; var tuso, mauso, a: integer; funtion UCLN(x,y:integer); var sodu:integer; begin while y < > begin Sodu := x mod y; x:=y; y:=sodu; end; end; begin write(‘Moi ban nhap tu so va mau so: ’) ; readln(tuso, mauso) ; UCLN :=x; a:=UCLN(tuso, mauso); if a > then begin tuso := tuso div a ; mauso := mauso div a ; end ; writeln(tuso :5, mauso :5) ; readln; end - Bước Chia lớp thành nhóm Yêu cầu nhóm tìm lỗi sai có chương trình - Bước Đại diện nhóm lên bảng trình bày kết 15 - Bước Giáo viên thực biên dịch chương trình để học sinh thấy lỗi sai phân tích để học sinh hiểu nguyên nhân sai Các lỗi sai chương trình : + Từ khóa Funtion sai (mã lỗi : 86) , : Function Chưa khai báo kiểu liệu cho tên hàm UCLN (mã lỗi : 86), sửa lại là: Function UCLN(x,y :integer) : integer ; + Câu lệnh UCLN: = x; sai (mã lỗi: 88) Trình biên dịch thông báo câu lệnh thiếu dấu “(” chất câu lệnh sai đặt sai vị trí Câu lệnh gán giá trị cho tên hàm phải nằm chương trình Cụ thể phải nằm câu lênh end; kết thúc chương trình - Bước Chạy thử chương trình cho học sinh quan sát - Bước Giáo viên đánh giá kết cho điểm nhóm IV KIỂM NGHIỆM Năm học 2011 – 2012 phân công giảng dạy lớp 11 Ban khoa học tự nhiên là: 11A3, 11A4, 11A5 Đề tài thực lớp 11A3 đạt kết tốt Năm học 2012 – 2013 phân công giảng dạy lớp 11: 11A1, 11A2, 11A3, 11A4, 11A5, 11A8, 11A10, 11A11 Đề tài triển khai lớp lớp: 11A1, 11A2, 11A3, 11A8, 11A10, 11A11 Với việc nghiên cứu kĩ chương trình sách giáo khoa, tài liệu tham khảo, lựa chọn phương pháp giảng dạy phù hợp nên lớp triển khai đề tài thu kết thực Biểu hiện:Mức độ tập trung ý lớp cao, học sinh tham gia cách tích cực, em chủ động hơn, hứng thú học tập, thực hành Kết thu khả quan Ở tiết kiểm tra đề tất lớp tương đương độ khó Nhưng kết lớp không triển khai đề tài thấp so với lớp triển khai đề tài Cụ thể, với đề kiểm tra học kì II, kết lớp sau (xem trang bên): 16 + Năm học 2011 – 2012: GIỎI LOẠI LỚP SĨ SỐ KHÁ TB YẾU, KÉM SL % SL % SL % SL % 11A3 47 11 23,40 25 53,19 10 21,28 2,13 11A4 45 11,11 20 44,44 16 35,56 8,89 11A5 46 13,04 19 41,30 17 36,96 8,70 + Năm học: 2012 – 2013: GIỎI LOẠI KHÁ YẾU TB LỚP SĨ SỐ SL % SL % SL % SL % 11A1 47 12 25,53 26 55,32 19,15 0 11A2 47 11 23,40 26 55,32 10 21,28 0 11A3 45 10 22,22 22 48,89 12 26,67 2,22 11A8 45 20,00 26 57,78 20,00 2,22 11A10 47 12 25,53 23 48,94 11 23,40 2,13 11A11 47 14 29,79 24 51,06 19,15 0 11A4 45 11,11 18 40,00 17 37,78 11,11 11A5 43 9,30 19 44,19 17 39,53 6,98 17 PHẦN III: KẾT LUẬN VÀ ĐỀ XUẤT I KẾT LUẬN Trên kết trình nghiên cứu thân khoảng thời gian từ năm 2011 đến Khi áp dụng với đối tượng học sinh vùng nông thôn học sinh trường THPT Lê Lợi thấy đề tài thực có hiệu Việc “Hướng dẫn học sinh phát sửa lỗi cú pháp viết chương trình ngôn ngữ lập trình Pascal chương trình Tin học 11” giúp học sinh không lúng túng mắc lỗi trước Điều giúp đa số học sinh có hứng thú việc lập trình nói riêng môn Tin học nói chung Tuy nhiên biện pháp sửa lỗi cú pháp tối ưu dành cho tất tiết dạy Vì thế, trình dạy học giáo viên cần biết phát lựa chọn biện pháp thích hợp đối việc sửa lỗi để học trở nên sinh động Lĩnh vực mà nghiên cứu áp dụng phạm vi hẹp, khó tránh khỏi hạn chế Một lần mong nhận góp ý đồng nghiệp để đề tài ngày hoàn thiện Tôi xin chân thành cảm ơn II ĐỀ XUẤT Để nâng cao chất lượng dạy học có số đề xuất sau: - Các cấp lãnh đạo cần quan tâm đến sở vật chất Nhà trường Nên tăng cường thêm phòng máy, máy tính phòng thực hành Để đảm bảo học sinh/ máy tính - Tăng cường cho giáo viên giảng dạy môn Tin học tiếp thu chuyên đề, phần mềm phục vụ cho công việc giảng dạy - Tăng cường cho giáo viên tham gia học bồi dưỡng chuyên đề phương pháp giảng dạy môn Tin học XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh Hóa, ngày 10 tháng năm 2013 Tôi xin cam đoan SKKN viết, không chép nội dung người khác Người viết SKKN Lê Thị Huyên 18 TÀI LIỆU THAM KHẢO Hồ Sĩ Đàm (chủ biên) nhóm tác giả - Sách giáo khoa Tin học 11 – Nhà xuất giáo dục năm 2007 Hồ Sĩ Đàm (chủ biên) nhóm tác giả - Sách tập Tin học 11 – Nhà xuất giáo dục năm 2007 Hồ Sĩ Đàm (chủ biên) nhóm tác giả - Sách giáo viên Tin học 11 – Nhà xuất giáo dục năm 2007 Quách Tuấn Ngọc – Ngôn ngữ lập trình Pascal – Nhà xuất giáo dục http://www.thnt.com.vn http://www.edu.net 19 MỤC LỤC Trang PHẦN I: ĐẶT VẤN ĐỀ………………………………………………………… I Lí chọn đề tài……………………………………………………… PHẦN II: GIẢI QUYẾT VẤN ĐỀ……………………………………………… I Cơ sở lí luận …………………………………………………………… II Thực trạng vấn đề ……………………………………………….… III GIẢI PHÁP VÀ TỔ CHỨC THỰC HIỆN………………………………… Giải pháp………………………………………………………… Tổ chức thực hiện.………………………………………………… IV KIỂM NGHIỆM… …………………………………………………… 16 PHẦN III: KẾT LUẬN VÀ ĐỀ XUẤT………………………………………… 18 TÀI LIỆU THAM KHẢO……………………………………………………… 19 20 [...]... LUẬN VÀ ĐỀ XUẤT I KẾT LUẬN Trên đây là kết quả của quá trình nghiên cứu của bản thân trong khoảng thời gian từ năm 2 011 đến nay Khi áp dụng với đối tượng là học sinh vùng nông thôn như học sinh trường THPT Lê Lợi tôi thấy đề tài thực sự có hiệu quả Việc Hướng dẫn học sinh phát hiện và sửa lỗi cú pháp khi viết chương trình bằng ngôn ngữ lập trình Pascal trong chương trình Tin học 11 đã giúp học sinh. .. giá kết quả và cho điểm các nhóm IV KIỂM NGHIỆM Năm học 2 011 – 2012 tôi được phân công giảng dạy 3 lớp 11 Ban khoa học tự nhiên là: 11A3, 11A4, 11A5 Đề tài được thực hiện trên lớp 11A3 và đã đạt được kết quả tốt Năm học 2012 – 2013 tôi được phân công giảng dạy 8 lớp 11: 11A1, 11A2, 11A3, 11A4, 11A5, 11A8, 11A10, 11A11 Đề tài được triển khai trên lớp 6 lớp: 11A1, 11A2, 11A3, 11A8, 11A10, 11A11 Với việc... còn lúng túng hoặc mắc lỗi như trước đây Điều đó đã giúp đa số học sinh có hứng thú đối với việc lập trình nói riêng và bộ môn Tin học nói chung Tuy nhiên không có một biện pháp sửa lỗi cú pháp nào tối ưu nào dành cho tất cả các tiết dạy Vì thế, trong quá trình dạy học giáo viên cần biết phát hiện và lựa chọn những biện pháp thích hợp đối việc sửa lỗi để các giờ học trở nên sinh động hơn Lĩnh vực mà... Bước 2 Chia lớp thành 4 nhóm Yêu cầu các nhóm tìm lỗi sai có trong chương trình ở trên - Bước 3 Đại diện các nhóm lên bảng trình bày kết quả - Bước 4 Giáo viên thực hiện biên dịch chương trình để học sinh thấy được các lỗi sai và phân tích để học sinh hiểu được nguyên nhân vì sao sai Các lỗi sai trong chương trình trên là :  Trong khai báo biến mảng: Var A: aray[1 Nmax] of integer; có tới 2 lỗi sai Một... :5) ; readln; end - Bước 2 Chia lớp thành 4 nhóm Yêu cầu các nhóm tìm lỗi sai có trong chương trình ở trên - Bước 3 Đại diện các nhóm lên bảng trình bày kết quả 15 - Bước 4 Giáo viên thực hiện biên dịch chương trình để học sinh thấy được các lỗi sai và phân tích để học sinh hiểu được nguyên nhân vì sao sai Các lỗi sai trong chương trình trên là : + Từ khóa Funtion sai (mã lỗi : 86) , đúng là : Function... duong co trong tep la: ’, s); close(f); close(g); end Giáo viên chạy thử chương trình cho học sinh quan sát Bước 4 Từ chương trình hoàn chỉnh ở trên, các nhóm tự đối chiếu với câu trả lời của nhóm mình để hoàn chỉnh chương trình của nhóm 2.5 Khắc phục những lỗi sai cơ bản trong chương VI: Chương trình con và lập trình có cấu trúc” a) Các lỗi thường gặp + Không phân biệt được hàm và thủ tục + Viết sai... hàm và thủ tục + Trong hàm không có lệnh trả về giá trị cho hàm + Gán giá trị của biến cho thủ tục + Quên khai báo kiểu dữ liệu cho tên hàm … b) Biện pháp sửa lỗi * Tiết 44 – Ví dụ về cách viết và sử dụng chương trình con Ví dụ: Viết chương trình thực hiện rút gọn phân số, trong đó có sử dụng hàm tính ước chung lớn nhất của hai số nguyên 14 - Bước 1 Giáo viên chiếu chương trình đã viết sẵn cho học sinh. .. khác Người viết SKKN Lê Thị Huyên 18 TÀI LIỆU THAM KHẢO 1 Hồ Sĩ Đàm (chủ biên) và nhóm tác giả - Sách giáo khoa Tin học 11 – Nhà xuất bản giáo dục năm 2007 2 Hồ Sĩ Đàm (chủ biên) và nhóm tác giả - Sách bài tập Tin học 11 – Nhà xuất bản giáo dục năm 2007 3 Hồ Sĩ Đàm (chủ biên) và nhóm tác giả - Sách giáo viên Tin học 11 – Nhà xuất bản giáo dục năm 2007 4 Quách Tuấn Ngọc – Ngôn ngữ lập trình Pascal – Nhà... 41,30 17 36,96 4 8,70 + Năm học: 2012 – 2013: GIỎI LOẠI KHÁ YẾU TB LỚP SĨ SỐ SL % SL % SL % SL % 11A1 47 12 25,53 26 55,32 9 19,15 0 0 11A2 47 11 23,40 26 55,32 10 21,28 0 0 11A3 45 10 22,22 22 48,89 12 26,67 1 2,22 11A8 45 9 20,00 26 57,78 9 20,00 1 2,22 11A10 47 12 25,53 23 48,94 11 23,40 1 2,13 11A11 47 14 29,79 24 51,06 9 19,15 0 0 11A4 45 5 11, 11 18 40,00 17 37,78 5 11, 11 11A5 43 4 9,30 19 44,19 17... (mã lỗi: 3) Hai là, chỉ số cuối Nmax chưa được xác định (mã lỗi: 3) Lỗi này nhiều học sinh vẫn không hiểu vì sao sai Vì các em thấy trong SGK cũng viết như vậy Do đó giáo viên cần làm rõ để học sinh hiểu, Nmax trong SGK đã có giá trị xác định là 250 nhờ đã khai báo hằng trước đó: Const Nmax=250;  Câu lệnh nhập Readln(a(i)); sai (mã lỗi: 64) Sửa lại là: Readln(a[i]); Chương trình được sửa lại là: 11 Program

Ngày đăng: 05/06/2016, 22:49

Từ khóa liên quan

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

Tài liệu liên quan