Một số kinh nghiệm khắc phục khó khăn của học sinh khi học lập trình pascal – môn tin học 11

21 1.6K 0
Một số kinh nghiệm khắc phục khó khăn của học sinh khi học lập trình pascal – môn 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

MỤC LỤC 2.3.2.3 Đối với chương V: Tệp thao tác với tệp chương VI: Chương trình lập trình có cấu trúc 15 2.3.3 Kinh nghiệm giúp học sinh lập trình giải toán toán học thực tế .16 2.4 Hiệu sáng kiến kinh nghiệm: .19 Kết luận .19 1 Mở đầu 1.1 Lý chọn đề tài Chúng ta sống kỉ XXI kỉ Công nghệ thông tin truyền thông Sự phát triển mạnh mẽ vũ bão tin học làm cho xã hội có nhiều nhận thức cách tổ chức hoạt độ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 sách giáo khoa (SGK) Tin học lớp11 bậc trung học phổ thông (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 nhiên, Tin học môn học trường phổ thông nên học sinh nhiều bỡ ngỡ tiếp cận với môn học Nội dung tin học lập trình lớp 11 nội dung lạ đa số học sinh, với học sinh miền núi trường việc học Toán, Ngoại ngữ khó học lập trình điều lại khó khăn nhiều khái niệm, thuật ngữ, cấu trúc liệu, cú pháp câu lệnh học sinh tiếp xúc lần đầu Chính mà học sinh dễ mắc sai lầm lập trình giải toán Khi thực giảng dạy môn Tin học lớp 11 Trường THPT Lê Lai, thấy rằng, việc học sinh lập trình ngôn ngữ lập trình Turbo Pascal để giải toán máy tính thường gặp nhiều khó khăn việc sử dụng câu lệnh để diễn tả bước thuật toán, phát sửa lỗi cú pháp, ngữ nghĩa vv 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 Từ điều trăn trở mà qua số năm giảng dạy, có số kinh nghiệm để khắc phục khó khăn cho học sinh lớp 11 học Tin học Đó vấn đề đề tài: "Một số kinh nghiệm khắc phục khó khăn học sinh học lập trình Pascal môn Tin học 11" 1.2 Mục đích nghiên cứu Giúp học sinh (đặc biệt học sinh miền núi trường THPT Lê Lai) tự tin có niềm đam mê hứng thú học lập trình Pascal Tin học 11; từ chỗ em ngại phải giải toán Tin học găp phải nhiều rào cản: tìm thuật toán, phát lỗi sửa lỗi vv Giờ (sau áp dụng SKKN) em có niềm tin yêu thích học lập trình Pascal nói riêng môn Tin học 11 nói chung 1.3 Đối tượng nghiên cứu Khắc phục khó khăn học lập trình Pascal - Tin học 11 học sinh lớp 11A1, 11A2 trường THPT Lê Lai năm học 2015- 2016 1.4 Phương pháp nghiên cứu Trong đề tài sử dụng số phương pháp nghiên cứu chính: + Phương pháp nghiên cứu tài liệu + Phương pháp quan sát + Phương pháp vấn Nội dung 2.1 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ê Lai 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 găp phải khó khăn định: mắc lỗi cú pháp, lỗi ngữ nghĩa chưa biết cách sửa; việc giải toán toán học toán thực tế lúng túng, nhiều vướng mắc Vì để khắc phục hạn tồn đó, cố gắng tìm giải pháp trình giảng dạy 2.2 Thực trạng vấn đề Qua thực tế giảng dạy trường THPT Lê Lai 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 ngại học môn khó khăn viết hoàn chỉnh chương trình chạy máy tính em khó xác định toán, thuât toán; chạy chương trình gặp nhiều lỗi: lỗi cú pháp lỗi ngữ nghĩa sửa chương trình ngôn ngữ lập trình Pascal Những khó khăn ấy, đưa trường hợp cụ thể sau: Trường hợp 1: Khó khăn phát sửa lỗi sai cú pháp thường gặp học sinh lập trình Pascal 1.Đặt sai tên: Tên hằng, biến, tên chương trình , đăt tên biến trùng nhau, v v Tên chứa dấu cách, chứa kí tự đặc biêt, bắt đầu chữ số, tên biến a A; Sai tên kiểu liệu; Vd: Kiểu thực viết Read; Kiểu nguyên viết interger Thiếu dấu kết thúc câu {;} dấu kết thúc chương trình; Viết sai tên từ khóa; Không phân biệt xâu biến: học sinh cần phải ý xâu đặt cặp nháy đơn biến không cần đặt cặp nháy đơn; Sử dụng dấu ; sai vị trí.Trước Else dấu chấm phẩy Sử dụng dấu chấm phẩy sau từ khoá câu lệnh lặp câu lệnh lặp rỗng không làm việc Trường hợp 2: Khó khăn phát lỗi sai ngữ nghĩa thường gặp học sinh lập trình Pascal Lỗi ngữ nghĩa lỗi trình biên dịch bỏ qua mà chạy chương trình phát lỗi 1.Chưa hiểu thứ tự ưu tiên phép toán, chuyển từ biểu thức toán học sang biểu thức pascal bị sai; Khai báo sai miền số cho liệu kiểu mảng; sai kiểu liệu cho biến Ví dụ 1: Nhập vào mảng số nguyên gồm số lớn nhỏ 100 In mảng vừa nhập Học sinh khai báo mảng sau: Var a: array[3 100] of integer; Giá trị biến điều khiển vượt miền số mảng; Dùng tên biến điều khiển cho vòng lặp for lồng nhau; Tràn số kết tính toán vượt giới hạn; Sử dụng tên hàm làm biến cục Trường hợp 3: Khó khăn xác định toán liên hệ phương pháp giải toán toán học thực tế với thuật giải tin học - Đối với tập –SGK Tr36: Yêu cầu viết chương trình tính diện tích phần gạch chéo - Các tập cuối chương III: + Bài toán cổ: Vừa gà vừa chó + Bài toán tuổi cha, tuổi + Bài toán gửi tiền tiết kiệm không kì hạn - 2.3 Một số kinh nghiệm khắc phục khó khăn học sinh học lập trình Pascal Tin học 11 2.3.1 Kinh nghiệm khắc phục lỗi sai cú pháp 2.3.1.1 Đối với chương II:‘‘Chương trình đơn giản’’ a) Ở tiết lí thuyết dạy giáo viên sẻ lưu ý cho học sinh lỗi cú pháp 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) vv b) Biện pháp khắc phục: *) Đối với tiết tập chương giáo viên cho học sinh làm tập dạng phát lỗi, qua giúp học sinh thực hành dễ dàng phát lỗi sửa lỗi *) Đối với tập thực hành chương II : Bài tập thực hành Thực hành theo yêu cầu SGK Cách thực hiện: Bước 1: Yêu cầu lớp soạn thảo chương trình viết sẵn SGK trang 34: Bước 2: yêu cầu học sinh thực biên dịch chương trình để phát sửa lỗi Mặc dù nhìn chương trình viết sẵn sách giáo khoa để soạn thảo chương trình em soạn thảo 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,… Bước 3: Để 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 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 Dưới chương trình giáo viên chiếu lê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 *a*c; x1:= (-b sqrt(D)) / (2a) x2:= -b/a –x1; write(‘x1= ’ x1:6:2, ‘ x2= ’, x2:6:2); readln; end; Bước 4: 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 : Sau 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.3.1.2 Khắc phục lỗi sai thường gặp chương III: ‘‘Cấu trúc rẽ nhánh lặp’’ a) Ở tiết lí thuyết dạy giáo viên lưu ý 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 haycâ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 … Do 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 Với Tiết 11 Bài ‘‘Cấu trúc rẽ nhánh’’ Cho học sinh phát lỗi chương trình Ví dụ 1: Viết chương trình tìm nghiệm thực phương trình bậc hai : ax2 + bx + c = (a # 0) Giáo viên chiếu chương trình chuẩn bị sẵn cho lớp quan sát 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 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 Cách thực hiện: Bước1: GV 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 2: Các nhóm suy nghĩ cử đại diện nhóm lên bảng trình bày kết Bước 3: 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)); Bước 4: 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 Vidu1 ; 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 5: Tiếp theo giáo viên chạy thử chương trình cho học sinh quan sát Bước 6: Cuối giáo viên đánh giá kết cho điểm nhóm 2.3.1.3 Khắc phục lỗi sai chương IV: ‘‘Kiểu liệu có cấu trúc’’ a) Ở tiết lí thuyết dạy giáo viên lưu ý 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 vv b) Biện pháp sửa lỗi 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 ; 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 2: 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 3: Đại diện nhóm lên bảng trình bày kết Bước 4: 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à: Program Tim_max ; Uses Crt ; Const Nmax = 250; Var 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 5: 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 6: Giáo viên đánh giá kết cho điểm nhóm 2.3.1.4 Khắc phục lỗi sai chương V: “Tệp thao tác với tệp” a) Ở tiết lí thuyết dạy giáo viên lưu ý 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 b) Biện pháp sửa lỗi Tiết 38 Ví dụ làm việc với tệp yêu cầu học sinh làm tập sau: Ví dụ: Cho tệp SONGUYEN.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 SONGUYEN.OUT Cách tiến hành: Bước 1: Chia lớp thành nhóm Nhiệm vụ nhóm giải toán Bước 2: 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, ‘SONGUYEN.INP’) ;assign(g,’ SONGUYEN.OUT’) S := ; while not eof(f) begin read(f,n) ; if n > then S :=S + n ; end; 10 writeln(g, ‘Tong cac so duong co tep la: ’, s); end Bước 3: 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, ‘SONGUYEN.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 SONGUYEN.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 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.3.1.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) Ở tiết lí thuyết dạy giáo viên lưu ý 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 11 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 cho học sinh tìm lỗi sai 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 Cách tiến hành sau: 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 2: 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 3: Đại diện nhóm lên bảng trình bày kết Bước 4: 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 12 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 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 cho điểm nhóm 2.3.2 Kinh nghiệm khắc phục lỗi sai ngữ nghĩa 2.3.2.1 Đối với chương II: Chương trình đơn giản Đối với lỗi ngữ nghĩa dạy giáo viên lưu ý trường hợp dẫn đến kết sai: - Chuyển biểu thức Toán học sang biểu thức Pascal sai dẫn đến kết bị sai - Chưa hiểu thứ tự ưu tiên phép toán, chuyển từ biểu thưc toán học sang biểu thức pascal bị sai Cho học sinh làm tập: Thử chạy chương trình với Test khác Ví dụ 1: Viết chương trình tính giá trị biểu thức sau, với a, b, c nhập từ bàn phím khác 0: x= a + b2 ; ta có chương trình sau: abc Program vidu2; uses crt; Var a,b, c: integer; x: real; Begin write(‘ nhap a,b,c’); readln(a,b,c); x:= a*a+b*b / a*a*b; write(‘ gia tri cua bieu thuc la ‘, x: 8: 2); readln end Cách Thực hiện: Bước 1: Soạn sẵn chương trìnhtrình biên dịch không phát lỗi cú pháp lỗi ngữ nghĩa cho học sinh quan sát, nhận xét Bước 2: Chạy thử chương trình với Test , cho học sinh so sánh với việc tính toán học để học sinh phát lỗi từ em suy nghĩ để tìm lỗi Bước 3: Chia lớp thành nhóm nhỏ, yêu cầu nhóm làm sau gọi nhóm lên bảng trình để so sánh kết toán học Cuối giáo viên kết luận lại vấn đề: sai biểu thức, phải là: x:= (a*a+b*b)/(a*b*c); 2.3.2.2 Đối với chương III: Cấu trúc rẽ nhánh lặp chương IV: Dữ liệu có cấu trúc Khi dạy giáo viên lường trước lỗi dẫn đến kết sai để lưu ý cho học sinh, sau cho học sinh thực hành phát lỗi qua tập ví dụ: 13 Ví dụ 1: Để tìm số lớn số a,b,c nhập vào từ bàn phím, có người viết chương trình sau: Program vidu2; Uses crt; Var a,b,c:integer; Begin Clrscr; Write(‘nhap vao so:’); Readln(a,b,c); If a

Ngày đăng: 17/10/2017, 09:31

Từ khóa liên quan

Mục lục

  • 2.4. Hiệu quả của sáng kiến kinh nghiệm:

  • 3. Kết luận

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

Tài liệu liên quan