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 303 0
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 tốn 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, tơi 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 dãy liên tiếp khơng q 127 kí tự bao gồm chữ số, chữ dấu gạch bắt đầu chữ dấu gạch (Trong Free Pascal tên có tới 255 kí tự) - Học sinh thường mắc lỗi đặt tên không theo quy tắc 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 kí tự khác, ngồi kí tự 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 học sinh 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 nhắc nhở em mắc phải lỗi - Đặc biệt thực hành, giáo viên chủ động viết chương trình có khai báo số tên không quy tắc đặt tên ngôn ngữ lập trình Pascal dịch chương trình để 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 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 tên nhầm lẫn tên dành riêng tên chuẩn viết chương trình - Biện pháp khắc phục: giáo viên yêu cầu học sinh nhớ xác tên dành riêng tên chuẩn thường dùng chương trình Ngồ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, thực hành, giáo viên chuẩn bị trước chương trình có viết sai tên Pascal dịch chương trình để 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 hết 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 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 sử dụng biến - Trong thực hành sử dụng chương trình dịch 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” có nghĩa có biến “D” sử dụng mà chưa khai báo - Học sinh cần bổ sung vào phần khai báo 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 chương trình viết ngơn ngữ lập trình Pascal, đối tượng có tên không phân biệt chữ hoa chữ thường - Học sinh thường mắc sai lầm đặt tên biến trùng Đặc biệt với chương trình có sử dụng nhiều biến tham gia, học sinh thường đặt biến có tên chữ thường, biến có tên chữ in hoa mà không nhớ Pascal không phân biệt chữ hoa 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 nhắc nhở em em mắc phải lỗi - Trong thực hành, giáo viên chủ động viết chương trình có khai báo biến tên “c” biến tên “C” dịch chương trình để lỗi Error: Duplicate indentifier “c” 2.3.1.5 Tràn số không xác định miền giá trị biến - Trong ngơn ngữ lập trình Pascal, kiểu liệu có miền giá trị xác định Vì vậy, khai báo biến phải xác định miền giá trị chương trình - Học sinh thường nhớ kiểu liệu mà không nhớ miền giá trị kiểu liệu Pascal Đặc biệt 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ị biến nhận thực chương trình - Kết chương trình dịch chạy bình thường với liệu nhỏ đưa vào, thực chương trình với liệu lớn 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 nhớ kiểu liệu mà phải nhớ miền giá trị kiểu liệu Pascal - Ngồi ra, với chương trình, giáo viên u cầu học sinh xác định giá trị mà biến nhận thực chương trình Đặc biệt với tập cho trước miền giá trị liệu vào giáo viên nên yêu cầu học sinh xác định miền giá trị 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 phép chia cho biến kiểu số ngun - Trong ngơn ngữ lập trình Pascal, kết thực phép chia số thực Vì vậy, ta khơng thể gán kết phép chia cho biến kiểu số nguyên - Học sinh thường nhớ cú pháp phép chia Pascal mà không để ý kết phép chia số thực Hậu em thường mắc lỗi gán giá trị cho biến kiểu số nguyên giá trị 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ị phép chia, đồng thời yêu cầu em nhớ phép chia lấy phần nguyên Pascal - Trong chương trình học sinh viết, học sinh gán kết phép chia cho biến kiểu số nguyên giáo viên cần rõ cho học sinh thấy giá trị phép chia ln số thực có số ngun Pascal khơng phép gán kết phép tố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 thực hành, giáo viên viết chương trình có sử dụng phép gán kết phép chia cho biến kiểu số nguyên dịch chương trình để 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: 11/07/2020, 12:14

Từ khóa liên quan

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

Tài liệu liên quan