(SKKN mới NHẤT) một số kinh nghiệm giúp học sinh khắc phục lỗi thường gặp khi viết chương trình bằng ngôn ngữ lập trình pascal tin học 11

18 4 0
(SKKN mới NHẤT) một số kinh nghiệm giúp học sinh khắc phục lỗi thường gặp khi viết chương trình bằng ngôn ngữ lập trình pascal tin học 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

1 Mở đầu 1.1 Lí chọn đề tài Ngày với phát triển vũ bão công nghệ thông tin, môn tin học trở thành môn học bắt buộc trường trung học phổ thông Tuy nhiên với tư tưởng học sinh, môn tin học mơn phụ nên em thường tâm đầu tư cho môn học Đặc biệt với nội dung học lập trình lớp 11, kiến thức tương đối khó khiến cho q trình dạy - học gặp nhiều khó khăn Vậy làm để tạo hứng thú cho học sinh từ phát huy tính tích cực chủ động em với môn học câu hỏi trăn trở Xuất phát từ thực tiễn giảng dạy trường thấy rằng, tiết thực hành phòng máy học sinh giáo viên hướng dẫn viết chạy chương trình pascal để xem kết em thường tỏ thích thú tiết học sau tập trung học kể tiết lý thuyết thực hành Tuy nhiên qua năm giảng dạy nhận thấy thực trạng chung em viết chương trình giấy hay máy tính tương đối đầy đủ câu lệnh mắc số lỗi phổ biến Điều dẫn đến tâm lý chán nản q trình sửa lỗi nhiều thời gian Chính để phần giúp em thuận lợi trình viết chương trình tơi chọn đề tài sáng kiến kinh nghiệm "Một số kinh nghiệm giúp học sinh khắc phục lỗi thường gặp viết chương trình ngơn ngữ lập trình Pascal - Tin học 11" 1.2 Mục đích sáng kiến Giúp học sinh hạn chế việc sinh lỗi viết chương trình mắc lỗi khắc phục nhanh lỗi phổ biến thường gặp Từ tiết kiệm thời gian viết chương trình hồn chỉnh, tạo hứng thú phát huy tính tích cực, sáng tạo em với môn học 1.3 Đối tượng nghiên cứu Học sinh lớp 11 - Trường THPT Vĩnh Lộc 1.4 Phương pháp nghiên cứu - Khảo sát, phân tích, giải vấn đề kết hợp lí thuyết thực hành - Kết hợp thực tiễn dạy học giáo dục trường THPT Vĩnh Lộc - Tham khảo tài liệu ngơn ngữ lập trình Pascal tài liệu sáng kiến kinh nghiệm - Tham khảo ý kiến đóng góp đồng nghiệp Nội dung sáng kiến kinh nghiệm 2.1 Cơ sở lí luận sáng kiến kinh nghiệm Trong bối cảnh toàn ngành Giáo dục Đào tạo nỗ lực đổi phương pháp dạy học theo hướng phát huy tính tích cực chủ động học sinh hoạt động học tập Điều 24.2 Luật giáo dục nêu rõ: “Phương pháp giáo dục phổ thơng phải phát huy tính tích cực, tự giác, chủ động, sáng tạo học sinh, phù hợp với đặc điểm lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh” Với số nội dung đề tài này, học sinh thuận lợi, tự tin lập trình giải toán TIEU LUAN MOI download : skknchat@gmail.com máy tính Qua nâng cao khả tự học, tự rèn luyện thông qua số tập, dạng tập cụ thể 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Qua thực tế giảng dạy trường năm qua, nhận thấy học đến chương trình tin học lớp 11 đa số học sinh nhận xét môn khó, vừa phải tìm thuật tốn đến viết chương trình phải nhớ hệ thống câu lệnh mà yêu cầu phải đến dấu chấm, dấy phẩy Vì học sinh thường gặp nhiều lỗi lập trình giải tốn , chí có lỗi em mắc phải nhiều lần không hiểu nguyên nhân xuất lỗi Bên cạnh có số lượng khơng nhỏ học sinh u thích tin học thích tìm hiểu số toán, dạng toán mở rộng nâng cao 2.3 Các giải pháp sử dụng để giải vấn đề 2.3.1 Một số lỗi thường gặp học sinh lập trình Pascal: 2.3.1.1 Đặt tên sai quy tắc - Trong ngôn ngữ lập trình Turbo Pascal, đối tượng dùng chương trình phải đặt tên theo quy tắc Tên là một dãy liên tiếp không quá 127 kí tự bao gồm chữ số, chữ cái hoặc dấu gạch dưới và bắt đầu bằng chữ cái hoặc dấu gạch dưới (Trong Free Pascal thì tên có thể có tới 255 kí tự) - Học sinh thường mắc lỗi đặt tên không đúng theo quy tắc của ngôn ngữ lập trình Pascal Các em thường đặt tên có dấu cách hay có thêm các kí tự khác, ngoài các kí tự được phép đặt tên ngôn ngữ lập trình Pascal - Biện pháp khắc phục: Để khắc phục lỗi này ở học sinh thì giáo viên cần kiểm tra lại thường xuyên qua tập đọc – hiểu phát lỗi qua tập viết chương trình và nhắc nhở mỡi các em mắc phải lỗi này - Đặc biệt giờ thực hành, giáo viên có thể chủ động viết một chương trình có khai báo một số tên không đúng quy tắc đặt tên của ngôn ngữ lập trình Pascal rồi dịch chương trình để chỉ lỗi như: Error: Fatal: Syntax error, “;” expected but “ordinal const” found - Ví dụ: Cho chương trình đơn giản sau Program Vi du 1; Begin writeln(‘Xin chao lop A1’); End; Giáo viên chạy chương trình để học sinh xem thơng báo lỗi quay lại chương trình yêu cầu học sinh tìm lỗi khắc phục? Tên chương trình sai quy tắc, sửa thành Vidu1 Vi_du_1 Chương trình lỗi Chương trình Program Vi du 1; Program Vi_du_1; Begin Begin writeln(‘Xin chao lop A1’); writeln(‘Xin chao lop A1’); End; End; 2.3.1.2 Viết sai tên dành riêng tên chuẩn - Học sinh thường mắc lỗi viết sai các tên nhầm lẫn tên dành riêng tên chuẩn viết chương trình TIEU LUAN MOI download : skknchat@gmail.com (SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11 - Biện pháp khắc phục: giáo viên yêu cầu học sinh nhớ chính xác các tên dành riêng tên chuẩn thường dùng chương trình Ngoài ra, giáo viên nên cài đặt phần mềm Free Pascal để hỗ trợ nhiều cho học sinh việc thực hành - Đặc biệt, các giờ thực hành, giáo viên có thể chuẩn bị trước một chương trình có viết sai tên Pascal rồi dịch chương trình để chỉ cho học sinh thấy lỗi Fatal: Syntax error 2.3.1.3 Khai báo thiếu biến - Khi viết chương trình nhiều học sinh chưa thể xác định được hết các biến cần sử dụng chương trình nên thường khai báo thiếu biến - Biện pháp khắc phục: Trước viết chương trình nên yêu câu học sinh xác định biến cần sử dụng kiểu liệu biến Sau viết xong mỗi chương trình, yêu cầu học sinh đọc lại chương trình để kiểm tra lại việc khai báo và sử dụng các biến - Trong giờ thực hành có thể sử dụng chương trình dịch của Pascal để kiểm tra việc khai báo biến cho chương trình Nếu nhấn F9 mà có thông báo compile failed với lỗi Error: Indentifier not found “D” thì có nghĩa là có biến “D” được sử dụng mà chưa khai báo - Học sinh cần bổ sung vào phần khai báo những biến chương trình sử dụng mà chưa có phần khai báo - Ví dụ: Chương trình giải phương trình bậc hai Bài tập thực hành 1, giáo viên chiếu chương trình khai báo thiếu biến D, yêu cầu học sinh xác định lỗi sửa lỗi Chương trình lỗi Chương trình Program Giai_PTB2; Program Giai_PTB2; uses crt; uses crt; Var a,b,c,x1,x2: real; Var a,b,c,x1,x2,D: real; Begin Begin clrscr; clrscr; writeln(‘a,b,c:’); readln(a,b,c); writeln(‘a,b,c:’); readln(a,b,c); D:=b*b-4*a*c; D:=b*b-4*a*c; x1:=(-b - sqrt(D))/(2*a); x1:=(-b - sqrt(D))/(2*a); x2:=-b/a - x1; x2:=-b/a - x1; writeln(x1:6:2, x2:6:2); writeln(x1:6:2, x2:6:2); readln; readln; END END 2.3.1.4 Đặt tên biến trùng - Trong mợt chương trình viết bằng ngôn ngữ lập trình Pascal, mỗi đối tượng có một tên và không phân biệt chữ hoa và chữ thường - Học sinh thường mắc sai lầm đặt tên các biến trùng Đặc biệt với những chương trình có sử dụng nhiều biến tham gia, học sinh thường đặt một biến có tên chữ thường, một biến có tên chữ in hoa mà không nhớ rằng Pascal không phân biệt chữ hoa và chữ thường (ví dụ: var c, C:integer;) - Biện pháp khắc phục: giáo viên cần kiểm tra lại thường xuyên và nhắc nhở các em mỗi các em mắc phải lỗi này (SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11 TIEU LUAN MOI download : skknchat@gmail.com (SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11 - Trong giờ thực hành, giáo viên có thể chủ động viết một chương trình có khai báo một biến tên “c” và một biến tên “C” rồi dịch chương trình để chỉ lỗi Error: Duplicate indentifier “c” 2.3.1.5 Tràn số không xác định được miền giá trị của biến - Trong ngôn ngữ lập trình Pascal, mỗi kiểu dữ liệu có một miền giá trị xác định Vì vậy, khai báo biến phải xác định được miền giá trị của nó chương trình - Học sinh thường chỉ nhớ kiểu dữ liệu mà không nhớ được miền giá trị của các kiểu dữ liệu Pascal Đặc biệt là với kiểu số nguyên, học sinh thường khai báo kiểu integer mà không xác định miền giá trị của biến có thể nhận thực hiện chương trình - Kết quả là chương trình vẫn dịch và chạy bình thường với bộ dữ liệu nhỏ đưa vào, thực hiện chương trình với những bộ dữ liệu lớn thì chương trình báo lỗi tràn số - Biện pháp khắc phục: giáo viên yêu cầu học sinh không chỉ nhớ kiểu dữ liệu mà phải nhớ cả miền giá trị của từng kiểu dữ liệu Pascal - Ngoài ra, với mỗi chương trình, giáo viên yêu cầu học sinh xác định giá trị mà biến có thể nhận thực hiện chương trình Đặc biệt là với những bài tập cho trước miền giá trị của dữ liệu vào thì giáo viên nên yêu cầu học sinh xác định miền giá trị của dữ liệu - Ví dụ với tập viết chương trình tính đưa hình diện tích hình vng có cạnh a với giá trị nguyên nằm phạm vi từ 100 đến 200 Cách Cách Program DT_hinh_vuong; Program DT_hinh_vuong; uses crt; uses crt; Var a: byte; S: Integer; Var a: byte; S: word; Begin Begin clrscr; clrscr; writeln(‘a:’); readln(a); writeln(‘a:’); readln(a); S:=a*a; S:=a*a; writeln(‘Dien tich= ‘,S:6); writeln(‘Dien tich= ‘,S:6); readln; readln; END END Học sinh thường viết chương trình theo hai cách khai báo trên, hai cách không sai để không mắc lỗi tràn số với test lớn khai báo cách hợp lí để đạt điểm tối đa 2.3.1.6 Gán kết quả phép chia cho biến kiểu số nguyên - Trong ngôn ngữ lập trình Pascal, kết quả thực hiện của phép chia là số thực Vì vậy, ta không thể gán kết quả của phép chia cho biến kiểu số nguyên - Học sinh thường nhớ được cú pháp của phép chia Pascal mà không để ý rằng kết quả của phép chia rất có thể là một số thực Hậu quả là các em thường mắc lỗi gán giá trị cho biến kiểu số nguyên bằng giá trị của phép chia - Biện pháp khắc phục: giáo viên yêu cầu học sinh xác định giá trị của phép chia, đồng thời yêu cầu các em nhớ phép chia lấy phần nguyên Pascal (SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11 TIEU LUAN MOI download : skknchat@gmail.com (SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11(SKKN.moi.NHAT).mot.so.kinh.nghiem.giup.hoc.sinh.khac.phuc.loi.thuong.gap.khi.viet.chuong.trinh.bang.ngon.ngu.lap.trinh.pascal.tin.hoc.11 - Trong các chương trình học sinh viết, mỗi học sinh gán kết quả phép chia cho biến kiểu số nguyên thì giáo viên cần chỉ rõ cho học sinh thấy được giá trị của phép chia có thể là một số thực nếu có là số nguyên thì Pascal cũng không được phép gán kết quả phép toán chia cho biến kiểu số nguyên mà phải sử dụng phép chia lấy phần nguyên “div” - Trong giờ thực hành, giáo viên có thể viết chương trình có sử dụng phép gán kết quả phép chia cho biến kiểu số nguyên rồi dịch chương trình để chỉ lỗi Error: Incompatible types: got “Extended” expected “SmallInt” Ví dụ: trường hợp kết phép chia số nguyên ta phải dùng phép div để gán kết cho biến kiểu nguyên đoạn chương trình sau: Var a, tuso, mauso: integer; a:=ucln(tuso,mauso); tuso:= tuso div a; mauso:= mauso div a; .3.1.7 Viết biểu thức mà chưa nhớ thứ tự thực phép toán Thứ tự ưu tiên phép tốn ngơn ngữ lập trình Pascal sau: - Lời gọi hàm - Biểu thức ngoặc - Toán tử NOT - Toán tử đổi dấu: - * , / , div, mod - + - or - >=, >,

Ngày đăng: 18/12/2023, 04:24

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

Tài liệu liên quan