Đăng ký Đăng nhập
Trang chủ Hướng dẫn học sih lớp 11 phát hiện và sửa lỗi cú pháp khi viết chương trình bằng...

Tài liệu Hướng dẫn học sih lớp 11 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

.DOC
16
75
142

Mô tả:

MỤC LỤC 1. Mở đầu 1.1 Lý do chọn đề tài ………………………………………………………2 1.2 Mục đích nghiên cứu …………………………………………………..2 1.3 Đối tượng nghiên cứu ………………………………………………….2 1.4 Phương pháp nghiên cứu ………………………………………………2 2. Nội dung sáng kiến kinh nghiệm ……………………………………….. 2 2.1 Cơ sở lý luận …………………………………………………………. 2 2.2 Thực trạng dạy học môn Tin học tại trường THPT Nông Cống 1…… .3 2.3 Giải quyết vấn đề ………………………………………………………3 2.3.1 Đối với lý thuyết ………………………………………………..3 2.3.2 Đối với thực hành ……………………………………………….3 2.3.2.1 Khắc phục những lỗi sai cơ bản thường gặp trong chương II: ‘‘Chương trình đơn giản’’. ......................................................4 2.3.2.2 Khắc phục những lỗi sai cơ bản trong chương III: ‘‘Cấu trúc rẽ nhánh và lặp’’. ………………………………………….. 6 2.3.2.3 Khắc phục những lỗi sai cơ bản trong chương IV: ‘‘Kiểu dữ liệu có cấu trúc’’. …………………………………………. 9 2.3.2.4 . Khắc phục những lỗi sai cơ bản trong chương V: “Tệp và thao tác với tệp”. ………………………………………….. 11 2.3.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”. ……………………….. 13 2.4 Hiệu quả ………………………………………………………………. 14 3. Kết luận, kiến nghị …………………………………………………….. 15 Tài liệu tham khảo 1 1. Mở đầu 1.1 Lý do chọn đề tài Căn cứ vào kế hoạc năm học 2019 – 2020 của trường THPT Nông Cống 1, Tổ Toán – Tin, chuyên đề của trường THPT Nông Cống 1 “Tăng cường vận dụng kiến thức liên môn gắn liền với thực tế, thực tiễn trong giảng dạy, chú trọng phát huy năng lực và tính chủ động, sáng tạo của học sinh”. Chương trình tin học 11 nghiên cứu về NNLT Pascal là chương trình khó, có cấu trúc chă ̣t chẽ. Để viết được một chương trình hoàn chnnh thna mãnn yêu cầu của bài toán đặt ra trên máy tính thì học sinh phải có tư duy lôgic về thuật toán, khả năng sử dụng máy tính thành thạo, sử dụng các câu lệnh và khai báo kiểu dữ liệu một cách hợp lý. Tuy nhiên khi tiến hành viết chương trình trên máy tính học sinh thường gặp một số lỗi cơ bản về mặt cú pháp và ngữ nghĩa. 1.2 Mục đích nghiên cứu Khi thực hiện giảng dạy môn Tin học lớp 11 tại Trường THPT Nông Cống 1, tôi thấy rằng, việc học sinh lập trình giải các bài toán trên máy tính thường gặp không ít khó khăn. Phần lớn các em đều gặp một số lỗi cơ bản về mặt cú pháp và ngữ nghĩa. Trong khi đó để viết được một chương trình hoàn chnnh thì học sinh phải có tư duy logic về thuật toán, biết khai báo kiểu dữ liệu một cách hợp lí, biết sử dụng các câu lệnh đúng cú pháp. Bản thân tôi trong quá trình giảng dạy cũng đãn cố gắng hướng dẫn học sinh viết chương trình đúng với yêu cầu trên. Nhưng do thời lượng thực hành trên lớp không nhiều nên các em không được thực hành thường xuyên, dẫn đến các em vẫn mắc phải một số lỗi cơ bản. Vì vậy, tôi đãn áp dụng một số biện pháp: “Hướng dẫn học sinh lớp 11 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 quá trình áp dụng, bản thân tôi tự thấy đãn có những kết quả nhất định, muốn được chia sẻ với các bạn đồng nghiệp. Hi vọng sẽ nhận được nhiều ý kiến bổ ích để đề tài của tôi ngày một hoàn thiện hơn. 1.3 Đối tượng nghiên cứu Áp dụng cho học sinh khối 11 trường THPT Nông Cống 1 với mục đích rèn cho học sinh kỹ năng viết chương trình, giúp học sinh tự tìm và sửa chữa lỗi 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 được thực hiện cả trên lớp và ở phòng thực hành. 1.4 Phương pháp nghiên cứu - Phương pháp nghiên cứu xây dựng cơ sở lý thuyết: giáo viên tạo ra lỗi để học sinh giải quyết vấn đề. - Phương pháp thực hành các bài thực hành sách giáo khoa tin học 11. 2 Nội dung sáng kiến kinh nghiệm 2.1 Cơ sở lý luận - Xuất phát từ thực trạng trên, tôi nhận thấy nếu bản thân không thay đổi cách dạy nhằm giúp học sinh chủ động hơn trong quá trình tìm lỗi và sửa lỗi thì học xong chương trình Tin học 11 có không ít học sinh vẫn chưa viết được một chương trình hoàn chnnh. Dẫn đến học sinh sẽ chán nản, ngày càng xa rời môn Tin học. Vì vậy để khắc phục tình trạng trên tôi đãn có một số giải pháp hướng dẫn học sinh tự tìm và 2 sửa lỗi cú pháp mà học sinh thường mắc phải ở cả những tiết lí thuyết và tiết bài tập và thực hành 2.2 Thực trạng dạy học môn Tin học tại trường THPT Nông Cống 1. - Điều kiện phòng máy nhà trường chưa đáp ứng được 1 học sinh/máy, các em còn phải ngồi chung 2 em/máy dẫn đến hiệu quả của các tiết thực hành chưa cao. Do đó việc nắm bắt nội dung các bài học bị hạn chế. - Khi viết chương trình học sinh thường mắc các lỗi cú pháp. Đó là lỗi mà khi viết chương trình học sinh không tuân thủ đúng quy định của ngôn ngữ lập trình như: Đặt sai các tên hằng, biến, tên chương trình …, viết sai các câu lệnh, viết sai các từ khóa … - Phần lớn khi dạy lập trình cho học sinh giáo viên thường sử dụng hai phương pháp: + Phương pháp dùng bảng: Đối với phương pháp này giáo viên thường viết sẵn chương trình cho học sinh hoặc cho học sinh khá gini lên viết chương trình và những học sinh còn lại chn việc chép vào vở để đảm bảo thời gian của mô ̣t tiết học. Các chương trình viết sẵn này thông thường không có lỗi sai. + Phương pháp dạy tại phòng thực hành: Giáo viên viết chương trình bằng ngôn ngữ lập trình Pascal rồi chạy chương trình đó cho học sinh. Học sinh ghi bài và gõ lại đúng chương trình đó. - Tuy nhiên khi gặp bài toán tương tự thì học sinh lại lập trình mắc rất nhiều lỗi sai. Tại phòng thực hành với số lượng học sinh và số máy tính nhiều nên giáo viên không thể có đủ thời gian để sửa lỗi và hướng dẫn từng máy nên viê ̣c học sinh phải biết tự tìm ra lỗi sai và hình thành kỹ năng viết chương trình là vấn đề cần thiết. 2.3 Giải quyết vấn đề 2.3.1 Đối với lý thuyết * Giải pháp 1: Giáo viên tạo tình huống mắc lỗi. Thực hiện chia nhóm. Yêu cầu các nhóm tìm ra lỗi có trong chương trình. Sau đó đại diện các 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 ra các lỗi có trong chương trình. Để khích lệ học sinh, giáo viên tiến hành đánh giá kết quả các nhóm và cho điểm. * Giải pháp 2: Giáo viên nêu bài toán. Thực hiện chia nhóm. Yêu cầu mỗi nhóm viết chương trình. Chiếu kết quả của một nhóm bất kì. Các nhóm khác nhận xét sau đó giáo viên củng cố, chạy thử chương trình cho cả lớp quan sát. Từ chương trình hoàn chnnh đó, các nhóm tự đối chiếu với câu trả lời của nhóm mình để hoàn chnnh chương trình của nhóm. 2.3.2 Đối với thực hành Học sinh thực hành theo yêu cầu của SGK, giáo viên yêu cầu cả lớp thực hành cùng một 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 những học sinh yếu. Sau đó, giáo viên chiếu chương trình có các lỗi mà các em chưa khắc phục được và những lỗi đa phần các em mắc phải. Giáo viên phân tích nguyên nhân của từng lỗi và yêu cầu các em sửa lại trong chương trình của mình. 3 Trong quá trình giảng dạy tôi đãn áp dụng kinh nghiệm của mình bắt đầu từ chương II cho đến hết chương trình Tin học lớp 11. Nhưng do điều kiện không cho phép nên ở mỗi chương tôi chn đưa ra một số tiết làm ví dụ để minh họa cho đề tài. 2.3.2.1 Khắc phục những lỗi sai cơ bản thường gặp trong chương II: ‘‘Chương trình đơn giản’’. a. Những lỗi sai cơ bản: - Khi viết chương trình học sinh chúng ta thường mắc một số lỗi cơ bản như: + Khi kết thúc câu lệnh không có dấu “ ; ” . + Khi viết từ khóa học sinh hay viết thiếu hoặc thừa từ Ví dụ: Từ khóa: Program thì học sinh viết là Progam, End thì học sinh viết là And + Sau từ khóa End kết thúc chương trình là “.” Nhưng học sinh lại viết “;” + Khi viết chương học sinh thường hay viết thiếu hoặc thừa các dấu: “(”, “)”, “ ,”, “.”, “:=”, “=”, “ ’ ”, … + Khai báo thiếu biến hoặc khai báo quá nhiều biến. + Khai báo tên biến trùng nhau. VD : Var a, A: byte; (Pascal không phân biệt chữ hoa và chữ thường. Do đó a và A chn là một). + Đặt tên biến, tên chương trình, tên tệp không đúng theo quy định của ngôn ngữ lập trình. + Khi viết từ khóa thường viết sai lỗi chính tả. VD: Const thì viết là Cont, end thì viết là and, Real thì viết là Read,… + Viết sai câu lệnh gán. VD: x := 0; thì viết là: x = 0; + Giữa các biến được viết cách nhau bằng dấu “;” + Trong một câu lệnh nếu số lệnh >=2 thì phải được đặt trong cặp từ khoá Begin … End;(Câu lệnh ghép). + Sử dụng thủ tục clrscr; nhưng không khai báo thư viện chứa thủ tục là CRT; + Học sinh khai báo kiểu dữ liệu một đường nhưng khi viết chương trình thì dùng kiểu dữ liệu khác dẫn đến sai kiểu. …. b. Biện pháp sửa lỗi - Để tránh những lỗi sai cho học sinh khi viết chương trình tôi đưa ra một số ví dụ: Ví dụ 1: Viết chương trình in ra màn hình dòng chữ: “Xin Chao cac ban den voi chương trinh Pacal” -Bước 1: Giáo viên chuân bị 1 chương trình mẫu bằng pascal như sau: Program ; 11A; Begin Clrscr; Writeln(’Xin Chao cac hoc sinh 11 ban den voi chương trinh Pacal’) Realn ; End; - Bước 2. Chia lớp thành 4 nhóm. Yêu cầu mỗi nhóm tìm lỗi sai có trong chương trình ở trên. 4 - 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à : + Câu lệnh Program ; là sai vì sau từ khóa Program không có dấu; (mãn lỗi: 2) + Tên chương trình 11A là sai, vì không đúng theo quy tắc đặt tên của ngôn ngữ lập trình Pascal (tên không đượcbắt đầu bằng số)(mãn lỗi 2) + Sử dụng thủ tục clrscr; mà chưa khai báo thư viện CRT;(mãn lỗi 3); + Câu lệnh Writeln(’Xin Chao cac ban hoc sinh 11 den voi chương trinh Pacal); có 2 lỗi sai, vì thiếu dấu đóng nháy ở hằng xâu kí tự (mãn lỗi:8) và kết thúc câu lệnh không có dấu ; (mãn lỗi: 85) + Thủ tục Realn sai, phải là Readln (mãn lỗi: 3). - Bước 5. Chạy thử chương trình cho học sinh quan sát. - Bước 6. Giáo viên đánh giá kết quả và cho điểm các nhóm. Qua ví dụ trên học sinh sẽ thấy rằng có 2 lỗi sai có cùng mãn lỗi là 2 hoặc có 2 lỗi sai mãn lỗi là 3, tuy nhiên mỗi lỗi lại sai ở một tình huống khác nhau. Do đó nếu học sinh chn thụ động tra cứu bảng thông báo lỗi ở SGK thì khó có thể tự mình sửa được lỗi. Cũng qua ví dụ trên học sinh đãn được phân tích nguyên nhân vì sao có các lỗi sai và cách sửa lỗi. Do đó sau này học sinh sẽ không còn mắc phải các lỗi cơ bản đãn nêu. Ví dụ 2: Tiết 8 : Bài tập và thực hành 1. Thực hành theo yêu cầu của SGK. - Bước 1. Yêu cầu cả lớp soạn thảo chương trình đãn viết sẵn ở SGK trang 34: Program Giai_PTB2 ; Uses Crt ; Var a, b, c, D : Real ; x1, x2: Real; Begin Clrscr; Write(‘a, b, c: ’); Readln(a,b,c); D:= b * b – 4 *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 2. Yêu cầu học sinh thực hiện biên dịch chương trình để phát hiện và sửa lỗi. Tuy là nhìn chương trình đãn viết sẵn trong SGK để soạn thảo nhưng chương trình các em soạn thảo vẫn mắc rất nhiều lỗi. Có rất nhiều nguyên nhân, như kỹ năng soạn thảo chưa thành thạo dẫn đến sai lỗi chính tả, hay chưa nắm vững cách viết một biểu thức, cách viết thông báo ra ngoài màn hình,… 5 Để 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 những học sinh yếu. Sau đó, giáo viên chiếu chương trình có các lỗi mà các em chưa khắc phục được và những lỗi đa phần các em mắc phải. Giáo viên phân tích nguyên nhân của từng lỗi và yêu cầu các em sửa lại trong chương trình của mình. Giáo viên chiếu lên màn chiếu: Program Giai_PTB2 ; Uses Crt ; Var a, b, c, D : Read ; x1, x2: Read; begin Clrscr; Write(‘a, b, c: ’); Readln(a;b;c); D:= b * b – 4 *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 hiện biên dịch, hướng dẫn học sinh sửa lỗi có trong chương trình trên. Cụ thể chương trình trên có các lỗi sai:  Sai kiểu dữ liệu, không phải là Read mà là Real (mãn lỗi: 26)  Câu lệnh Read(a;b;c); sai vì ngăn cách giữa các biến phải là dấu phẩy, sửa lại là: Read(a,b,c); (mãn lỗi: 89)  Câu lệnh x1:= (-b – sqrt(D)) / (2a); sai vì trong phép nhân phải dùng kí hiệu *, sửa lại là: x1:= (-b – sqrt(D)) / (2*a); (mãn lỗi: 89)  Câu lệnh write(‘x1= ’ x1:6:2, ‘ x2= ’, x2:6:2); sai vì ngăn cách giữa các kết quả ra phải là dấu phẩy. Sửa lại là: write(‘x1= ’, x1:6:2, ‘ x2= ’,x2:6:2); (mãn lỗi: 89);  Câu lệnh end; sai vì kết thúc chương trình phải là dấu chấm, sửa lại là: end. (mãn lỗi : 88) -Bước 3. Khi đãn hết lỗi về mặt cú pháp, yêu cầu học sinh chạy chương trình như yêu cầu của sách giáo khoa. Tuy nhiên vẫn có nhiều em thực hiện chưa đúng, lỗi thường gặp đó là: Khi thực hiện câu lệnh nhập Read(a,b,c) các em dùng dấu chấm phẩy để ngăn cách giữa các giá trị. VD: Khi nhập giá trị cho a, b, c, thì các em gõ: 3 ; 4; 5 Như vậy các em chưa nắm vững cách nhập giá trị cho nhiều biến. Lúc này giáo viên cần làm mẫu cho học sinh quan sát và nhấn mạnh cách nhập giá trị cho nhiều biến: những giá trị này phải được gõ cách nhau bởi ít nhất một dấu cách hoặc một kí tự xuống dòng (nhấn phím Enter) 2.3.2.2 Khắc phục những lỗi sai cơ bản trong chương III: ‘‘Cấu trúc rẽ nhánh và lặp’’. a. Các lỗi thường gặp - Đối với trường hợp này học sinh hay mắc phải các lỗi: + Thiếu từ khoá then hoặc do, downto,to,.. 6 + Điều kiện trong câu lệnh rẽ nhánh, câu lê ̣nh lă ̣p không phải là biểu thức lôgic hay quan hê ̣. + Không sử dụng câu lê ̣nh ghép + Trước từ khoá Else có dấu “;”. + Giá trị đầu> giá trị cuối trong câu lệnh lặp và không phải là những hằng số. + Trong câu lệnh lặp While … do không có lệnh làm thay đổi giá trị biến đếm. + Không khai báo biến đếm trong chương trình. + Sau câu lệnh Do có câu lệnh thay đổi giá trị của biến đếm + Dùng cùng tên biến điều khiển cho các vòng lặp for lồng nhau b. Biện pháp sửa lỗi * Với câu lệnh rẽ nhánh Ví dụ 1: Để tìm số lớn nhất trong 3 số a,b,c được nhập vào từ bàn phím, có học sinh đãn viết chương trình như sau: Program timmin; Uses crt; Var a,b,c:integer; Begin Clrscr; Write(‘nhap vao 3 so:’); Readln(a,b,c); If ad) then kt:=false else i:=i+1; if kt then writeln(‘Day so tao thanh cap so cong!’) else writeln(‘Day so khong tao thanh cap so cong!’); readln End. Bước 2: chạy chương trình và yêu cầu học sinh quan sát kết quả Khi thực hiện chương trình trên, chương trình dịch không báo lỗi nhưng kết quả khi thực hiện chương trình sẽ bị sai lệch. Khi thực hiện từng bước chương trình ta có thể khắc phục lỗi trên bằng cách gán lại giá trị ban đầu cho biến đếm i=2. 2.3.2.4 . Khắc phục những lỗi sai cơ bản trong chương V: “Tệp và thao tác với tệp” a. Các lỗi sai thường gặp Đối với trường hợp này học sinh hay mắc phải các lỗi: 10 + Không khai báo biến tệp + Không mở tệp để đọc hay ghi nhưng vẫn thao tác đọc ghi tệp + Đường dẫn tới tệp không đúng hoặc chưa có. + Mở quá nhiều tệp. + Không gán tên cho tệp. + Mở tệp nhưng không đóng tệp lại. … b. Biện pháp khắc phục Giáo viên yêu cầu học sinh nghiên cứu chương trình Khoang_cach SGk trang 87 STT 1 Câu lê ̣nh Program Khoang_cach; 2 3 Var f : text ; d:real; x,y:integer; Begin 4 Assign(f,’TRAI.TXT’); 5 Reset(f); 6 While not eof(f) do 7 Begin 8 Read(f,x,y); 9 d:= sqrt(x*x + y*y); 10 writeln(’ Khoang cach:’ , d:10 : 2) ; 11 end; 12 13 Giải thích close(f); End. - Giáo viên yêu cầu học sinh giải thích chức năng, ý nghĩa từng câu lê ̣nh của chương trình - Giáo viên phát vấn học sinh ? Biến têp̣ f đưươc gán cho tên têp̣ nào?  Hs trả lời : tê ̣p TRAI.TXT ? Câu lênh ̣ reset(f) se tham chiếu đưến tên têp̣ nào đưê đưọc?  Hs trả lời: tham chiếu mở tê ̣p TRAT.TXT - Như vâ ̣y khi thực hành trên máy để có thể mở tê ̣p TRAI.TXT để đọc thì tê ̣p TRAI.TXT phải tồn tại trên bô ̣ nhớ, và để tham chiếu được đến tê ̣p TRAI.TXT thì chương trình phải có đường dẫn đầy đủ đến nơi lưu trữ tê ̣p TRAI.TXT ?Đê chương trình trên hoạt đưông ̣ cân co đưiều kiêṇ gì?  Hs trả lời: Cần có tê ̣p TRAI.TXT ở trong máy và trong câu lê ̣nh gán phải chn đường dẫn đầy đủ tới tê ̣p - Gv giới thiê ̣u chương trình hoàn chnnh, yêu cầu học sinh giải thích ý nghĩa, chức năng ý nghĩa của các câu đãn được chnnh sửa và thêm vào trong chương trình STT Câu lê ̣nh Giải thích 11 1 Program Khoang_cach; 2 Var f : text ; 3 4 x,y:integer; d:real; Begin 5 Assign(f,'c:\TRAI.TXT'); 6 rewrite(f); 7 writeln('nhap toa do x,y'); 8 readln(x,y); 9 write(f,x:2,y:2); 10 close(f); 11 Reset(f); 12 While not eof(f) do 13 Begin 14 Read(f,x,y); 15 d:= sqrt(x*x + y*y); 16 writeln(' Khoang cach:' , d:10 : 2) ; 17 end; 18 19 20 close(f); readln End. - Gv phát vấn học sinh ?Tại sao co 2 câu lênh ̣ close(f) ơ vi tri 10 và vi tri 18 c̉a chương trình?  Hs giải thích - Gv nhấn mạnh và lưu ý cho học sinh sau mỗi thao tác với tê ̣p để lưu kết quả phải có câu lê ̣nh đóng tê ̣p và sau khi kết thúc làm viê ̣c với tê ̣p cũng cần đóng tê ̣p - Giáo viên cho học sinh thực hành Sau khi gõ chương trình xong học sinh thực hiện chương trình. Căn cứ vào mãn lỗi được thông báo để sữa lỗi. Các lỗi thường gặp là: Error 2: File not found Không tìm thấy file Error 3: Path not found Không tìm thấy đường dẫn Error 4: Too many open files Mở quá nhiều file Error 5: File access denied Không truy nhập được file Error 6: Invalid file handle Số hiệu file không hợp lệ Error 102: File not assigned File chưa được chn định Error 103: File not open File chưa được mở Error 13: Too many open files Quá nhiều file được mở 12 Error 14: Invalid file name Tên file không hợp lệ Error 15: File not found Không tìm thấy file Error 16: Disk full Đĩa đầy Error 18: Too many files Quá nhiều file Error 34: Invalid function result type Kiểu trả về của hàm không hợp lệ Error 59: Undefined forward Biến hay hàm chưa được định nghĩa trước đó Error 60: Too many procedures Quá nhiều chương trình con Error 63: Invalid file type Kiểu file không hợp lệ Error 77: File variable expected Phải là biến file 2.3.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 từ khoá 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ụ 1: 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. - Bước 1: Giáo viên chiếu chương trình đãn 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 < > 0 do 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 > 1 then begin 13 tuso := tuso div a ; mauso := mauso div a ; end ; writeln(tuso :5, mauso :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ả. - 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ãn lỗi : 86) , đúng là : Function. Chưa khai báo kiểu dữ liệu cho tên hàm UCLN (mãn lỗi : 86), sửa lại là: Function UCLN(x,y :integer) : integer ; + Câu lệnh UCLN: = x; sai (mãn lỗi: 88). Trình biên dịch thông báo câu lệnh này thiếu dấu “(” nhưng bản chất câu lệnh này sai vì đặt sai vị trí. Câu lệnh gán giá trị cho tên hàm phải nằm trong chương trình con. Cụ thể nó phải nằm ở ngay trên câu lênh end; kết thúc chương trình con. - Bước 5: Chạy thử chương trình cho học sinh quan sát. - Bước 6: Giáo viên đánh giá kết quả và cho điểm các nhóm. - Do lệnh trả kết quả cho tên hàm rất giống một lệnh gán bình thường nên học sinh thường nhầm tên hàm là biến cục bộ. Vì vậy khi viết chương trình để tiết kiệm biến cục bộ học sinh đãn sử dụng tên hàm làm biến cục bộ. Function GT(n:integer):Longint; Var i:integer; Begin For i:=2 to n do GT:=GT*i; End; Trong thân hàm đãn sử dụng tên hàm làm biến cục bộ nên khi biên dịch sẽ báo lỗi gọi hàm nhưng thiếu tham số do chương trình hiểu GT:=GT*i là lời gọi đệ qui. Để tránh lỗi này cần lưu ý với học sinh: để trả kết quả cho hàm (không đệ quy), tốt nhất nên tính kết quả hàm vào một biến cục bộ, trước khi kết thúc ta mới gán tên hàm bằng giá trị biến này để trả giá trị về cho hàm. 2.4 Hiệu quả - Năm học 2018 – 2019 tôi được phân công giảng dạy 3 lớp 11A1, 11A2. Đề tài được thực hiện trên cả 2 lớp. 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 những lớp được triển khai đề tài đãn thu được kết quả thực sự. Biểu hiện:Mức độ tập trung chú ý của lớp cao, học sinh tham gia một cách tích cực, các em đãn chủ động hơn, hứng thú hơn trong học tập, nhất là trong các giờ thực hành. 14 - Kết quả khảo sát đối với học sinh 11A1, 11A2 trong năm học 2018 – 2019 các em đãn tiến bô ̣ qua từng tiết thực hành. Kết quả Mức đô ̣ học sinh viết chương trình bị lỗi cú pháp Trước khi thực hiện giải pháp Sau khi thực hiện giải pháp 11A1 11A2 20% đến 30% 40% đến 50% 10% đến 15% 20% đến 30% 3 Kết luận, kiến nghị - Với phương pháp dạy giáo viên vừa kết hợp bài giảng vừa kết hợp cả thao tác kiểm tra lỗi và học sinh tự nhận biết lỗi khi viết chương trình. Sau mỗi tiết học học sinh sẽ biết được những lỗi mà mình mắc phải khi viết chương trình để rút kinh nghiệm cho lần sau tuy nhiên để rèn luyê ̣n cho các em hình thành kỹ năng thì đòi hni giáo viên phải thực hiê ̣n liên tục trong từng tiết, khi viết chương trình ở đơn vị kiến thức nào giáo viên đều phải nhắc lại những lỗi hay gă ̣p ở phần đơn vị kiến thức đó, ví dụ khi dạy xong cho học sinh quy tắc đă ̣t tên biến thì khi viết chương trình có đă ̣t biến giáo viên đều nhắc nhở học sinh đă ̣t đúng quy tắc như vâ ̣y các em mới có thể hình thành kỹ năng viết chương trình. - Giải pháp có thể áp dụng có các học sinh K11 mới học về lập trình pascal đơn giản. chúng ta cũng có thể áp dụng phương pháp này khi dạy cho học sinh khối 8 bước đầu làm quen với ngôn ngữ lập trình pascal. - 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. - Trên đây là giải pháp nhn mà tôi đưa ra, do kinh nghiệm giảng dạy vẫn còn hạn chế nên sự thiếu sót là không tránh khni rất mong được sư đóng góp ý kiến của đồng nghiệp để giải pháp này của tôi được hoàn thiện hơn. XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Nông Cống, ngày 24 tháng 05 năm 2020 Tôi xin cam đoan đây là SKKN của mình viết, không sao chép nội dung của người khác. Người viết Trần Lê Chức 15 TÀI LIỆU THAM KHẢO 1. Sách giáo khoa tin học 11 Hồ Sĩ Đàm chủ biên 2. Sách giáo viên tin học 11 Hồ Sĩ Đàm chủ biên 3. KT đánh giá thường xuyên và định kỳ tin học 11 Quách Tuấn Kiên chủ biên 4. Một số sáng kiến kinh nghiệm và ý kiến của đồng nghiệp . 16
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất