Nguyên nhân 1:

Một phần của tài liệu Phát hiện và sửa chữa sai lầm cho học sinh THPT khi lập trình bằng ngôn ngữ turbo pascal (Trang 71 - 75)

V- Chạy thử, thay đổi chơng trình:

3.2.1-Nguyên nhân 1:

của các khái niệm Tin Học.

Chúng ta biết rằng: Mỗi khái niệm Toán học đều có nội hàm và Ngoại diên.

Tập hợp các dấu hiệu đặc trng cho bản chất của các đối tợng đợc phản ánh trong khái niệm chỉ là nội hàm của khái niệm đó.

Tập hợp các đối tợng có chứa các dấu hiệu đã nói trên chính là ngoại diên của khái niệm.

Nói một cách khác: Khi ta định nghĩa một khái niệm Toán học thì nội dung ( gồm tất cả các tính chất đặc trng) và phạm vi (bao gồm tất cả các đối tợng thoả mãn định nghĩa) của khái niệm đã đợc xác định. HS không nắm vững nội hàm và ngoại diên của một khái niệm thì không hiểu

đầy đủ hoặc hiểu sai lệch hoàn toàn bản chất của khái niệm và từ đó các sai lầm khi giải toán sẽ xuất hiện. Điều đó cũng có nghĩa là các sai lầm khi lập trình giải các bài toán trên máy tính cũng xuất hiện.

Hơn nữa, nhiều khái niệm trong Tin học (Kể cả trong Toán học nói chung) là sự mở rộng hoặc thu hẹp của một khái niệm trớc đó. Việc HS hiểu không đầy đủ và chính xác khái niệm này sẽ làm cho các em không hiểu và không thể có biểu tợng khái niệm khác. Chẳng hạn: việc không nắm vững khái niệm dãy số sẽ dẫn HS tới việc không hiểu khái niệm mảng số và không thể hiểu mảng nhiều chiều.

Không nắm đợc mối liên kết LOGIC giữa các khái niệm, HS khó khăn trong việc lĩnh hội các khái niệm đó dẫn tới sai lầm khi giải toán nghĩa là sai lầm khi lập trình. HS không nắm vững cấu trúc câu lệnh WHILE và câu lệnh REPEAT nên có HS kết luận: “ Mọi bài toán dùng lệnh WHILE đều có thể dùng câu lệnh REPEAT và ngợc lại”. (?).

Nhiều khi ngời ta hay nói tới sự “ mất gốc” của HS, thì trớc hết cần hiểu rằng: Đó là sự “ mất gốc” về các khái niệm Toán học dẫn HS tới việc lĩnh hội các khái niệm Tin học gặp nhiều khó khăn.

Trong Toán học HS không nắm vững 2 khái niệm số thực và số nguyên nên khi lập trình giải một bài toán có liên quan đến kiểu dữ liệu các em thờng gặp lỗi khai báo biến sai kiểu dữ liệu.

Không nắm vững dấu hiệu đặc trng cho bản chất của các đối tợng đ- ợc phản ánh trong khái niệm nên HS vận dụng các khái niệm để lập trình sẽ phạm phải sai lầm nh là phép gán, cấu trúc rẽ nhánh và cấu trúc lặp... Chẳng hạn ta có chơng trình sau:

PROGRAM CTLOI;

USES Crt;

VAR x,y,z: Real; N: Integer; BEGIN Clrscr; Readln(n); X:= trunc(n); Y:= n div 2; Z:= n mod 2 =0;

Writeln(x,y,z); END.

Khi chạy CT máy sẽ báo lỗi 26: Type mismatch .“ ” Nguyên nhân biến z có kiểu thực (real) còn biểu thức n mod 2 =0 có giá trị true hoặc false (kiểu boolean). Vì vậy không thể áp dụng phép gán z:= n mod 2 =0; Cách giải quyết: Khai báo lại kiểu của biến z nh sau: Var z: boolean;

Không nắm vững tập hợp các đối tợng của khái niệm ( hay phạm vi của khái niệm) nên nhiều HS đã mác sai lầm khi gặp bài toán nhận dạng khái niệm xem 2.2.1.3, bài 3.1, 3.2, 3.3,3.4 trang 38.

Không nắm vững phạm vi của khái niệm ( các đối tợng) nên nhiều HS đã mắc phải sai lầm ở lỗi chính tả của ngôn ngữ lập trình TP. Xem 2.2.1.2 bài 2.1, bài 2.2, bài 2.3, bài 2.4 trang 32.

Đôi khi HS còn nhầm lẫn biến điều khiển trong vòng lặp WHILE, REPEAT với biến điều khiển trong vòng lặp FOR, hoặc trong câu lệnh rẽ nhánh IF...ELSE...THEN với câu lệnh rẽ nhiều nhánh CASE ...ELSE...END; Xem 2.2.1.4, bài 4.1, bài 4.2, bài 4.3, bài 4.4, trang 45. Các nguyên nhân và sai lầm này có thể tóm tắt qua sơ đồ sau:

Học Sinh

Nội hàm Ngoại

Không nắm vững các thuộc tính khái niệm

Biến đổi sai

Thể Hiện Sai Nhận Dạng Sai

Thuật toán sai

Chơng trình sai

Không phân tích Không phát hiện

Không phân loại

Không củng cố

Giáo Viên

Tóm lại, bằng những thí dụ cụ thể để chỉ ra ở trên, ta có thể thấy rằng: Việc không nắm vững các thuộc tính của khái niệm là (adsbygoogle = window.adsbygoogle || []).push({});

nguyên nhân trực tiếp dẫn HS tới những sai lầm trong hoạt động lập trình bằng NNTP.

Một phần của tài liệu Phát hiện và sửa chữa sai lầm cho học sinh THPT khi lập trình bằng ngôn ngữ turbo pascal (Trang 71 - 75)