1. Trang chủ
  2. » Giáo án - Bài giảng

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

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 213 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đặc biệt làtrong chương trình sách giáo khoa SGK Tin học lớp11 bậc trung họcphổ thông THPT, các nhà biên soạn sách đã đưa vào các chương bài giúp họcsinh tiếp cận được với ngôn ngữ lập t

Trang 1

MỤC LỤC

1 Mở đầu 2

- Lý do chọn đề tài : 2

- Mục đích nghiên cứu: 2

- Đối tượng nghiên cứu: 3

1.4 Phương pháp nghiên cứu: 3

2 Nội dung 3

2.1 Cơ sở lí luận: 3

2.2 Thực trạng vấn đề: 3

2.3 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 – Tin học 11 5

2.3.1 Kinh nghiệm khắc phục những lỗi sai cú pháp cơ bản : 5

2.3.2 Kinh nghiệm khắc phục những lỗi sai về ngữ nghĩa 13

2.3.3 Kinh nghiệm giúp học sinh lập trình giải bài toán trong toán học hoặc trong thực tế 16

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

3 Kết luận 19

Trang 2

1 Mở đầu

1.1 Lý do chọn đề tài

Chúng ta đang sống ở thế kỉ XXI là thế kỉ của Công nghệ thông tin

và truyền thông Sự phát triển mạnh mẽ như vũ bão của tin học đã làm cho

xã hội có nhiều nhận thức mới về cách tổ chức các hoạt động Vì vậy việc trang

bị những kiến thức Tin học là một vấn đề có ý nghĩa và tầm quan trọng rất lớnđối với quá trình đào tạo nhân lực, bồi dưỡng nhân tài cho đất nước

Xác định được tầm quan trọng đó nên từ năm 2006 môn Tin học đã được

bộ Giáo dục-Đào tạo đưa vào giảng dạy ở các cấp học, nhằm trang bị cho họcsinh những kiến thức cơ bản, phổ thông về ngành khoa học Tin học Đặc biệt làtrong chương trình sách giáo khoa (SGK) Tin học lớp11 bậc trung họcphổ thông (THPT), các nhà biên soạn sách đã đưa vào các chương bài giúp họcsinh tiếp cận được với ngôn ngữ lập trình bậc cao Qua đó giúp các emhình dung được sự ra đời, cấu tạo, hoạt động cũng như ích lợi của cácchương trình hoạt động trong máy tính Từ đó khơi gợi ở các em niềm đam mêđối với bộ môn Tin học, tạo niềm tin để các em có thể dễ dàng tự định hướng,lựa chọn nghề nghiệp sau này

Tuy nhiên, Tin học là một môn học mới ở các trường phổ thông nênhọc sinh còn nhiều bỡ ngỡ khi tiếp cận với môn học này Nội dung tin họclập trình lớp 11 là một nội dung mới lạ đối với đa số học sinh, với học sinhmiền núi như trường chúng tôi việc học Toán, Ngoại ngữ đã khó nay họclập trình thì điều đó lại càng khó khăn hơn bởi nhiều khái niệm, thuật ngữ,cấu trúc dữ liệu, cú pháp câu lệnh học sinh mới được tiếp xúc lần đầu.Chính vì vậy mà học sinh dễ mắc sai lầm khi lập trình giải quyết các bài toán.Khi thực hiện giảng dạy môn Tin học lớp 11 tại Trường THPT Lê Lai, tôi thấyrằng, việc học sinh lập trình bằng ngôn ngữ lập trình Turbo Pascal để giải cácbài toán trên máy tính thường gặp rất nhiều khó khăn trong việc sử dụng cáccâu lệnh để diễn tả các bước của thuật toán, phát hiện và sửa lỗi về cú pháp,ngữ nghĩa vv Trong khi đó để viết được một chương trình hoàn chỉnh 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ộtcách hợp lí, biết sử dụng các câu lệnh đúng cú pháp Từ những điều trăn trở

đó mà qua một số năm giảng dạy, tôi đã có một số kinh nghiệm để khắc phụcnhững khó khăn cho học sinh lớp 11 khi học Tin học Đó cũng là vấn đề

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 là học sinh miền núi như trường THPT Lê Lai)

tự tin có niềm đam mê hứng thú khi học lập trình Pascal – Tin học 11; từ chỗcác em ngại phải giải một bài toán Tin học vì găp phải nhiều rào cản: tìm thuậttoán, phát hiện lỗi và sửa lỗi vv Giờ đây (sau khi áp dụng SKKN) các em đã

có niềm tin và yêu thích học lập trình Pascal nói riêng và bộ môn Tin học 11 nóichung

Trang 3

1.3 Đối tượng nghiên cứu

Khắc phục những khó khăn khi học lập trình Pascal - Tin học 11 củahọc sinh các 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 này tôi sử dụng một 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 phỏng vấn

2 Nội dung

2.1 Cơ sở lí luận

Pascal là ngôn ngữ lập trình bậc cao do giáo sư Niklaus Wirth

(trường đại học kỹ thuật , Zurich, Thụy sĩ) sáng tác và công bố vào đầu nhữngnăm 1970, với tên Pascal để kỷ niệm nhà toán học người Pháp Blaise Pascalthế kỷ 17 Lúc đầu, ngôn ngữ lập trình này được sáng tác ra nhằm giúp chonhững người mới học lập trình có được thói quen viết một chương trình có cấutrúc sáng sủa, rõ ràng, dễ hiểu và dễ đọc cho mọi người Giáo sư Wirth thấy rằng

có thể tránh được rất nhiều lỗi khi lập trình với một ngôn ngữ có cấu trúc khối

và có sự kiểm tra kỹ lưỡng sự tương thích giữa các kiểu dữ liệu Mà Pascal làmột ngôn ngữ như thế: mọi biến và hằng của một kiểu dữ liệu không thể tự dođem trộn lẫn với các biến và hằng của một kiểu dữ liệu khác Ngôn ngữ Pascal

có thể tách các thông tin dữ liệu (biến, hằng,…) và các lệnh cần dùng cho mộtnhiệm vụ xác định thành những khối riêng, tách ra khỏi phần còn lại củachương trình để người lập trình có thể giải quyết dần từng phần một,từng khối một và thậm chí có thể cho nhiều người tham gia lập trình, mỗi ngườiphụ trách một vài khối

Từ tính ưu việt đó của ngôn ngữ lập trình Pascal mà ngôn ngữ này đãđược sử dụng rộng dãi Pascal rất thích hợp dùng để giảng dạy trong các nhàtrường và cho những người mớ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 này để dạy học sinh giải bài toán trênmáy tính Mặc dù mục tiêu của chương trình giáo dục Tin học của Bộ GD & ĐTkhông quy định phải dạy học sinh trên một ngôn ngữ lập trình cụ thể nào

Tuy nhiên trong quá trình học tập, học sinh ở trường chúng tôi găp phảinhững khó khăn nhất đị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 một bài toán trong toán học hoặc bài toán thực tế còn lúng túng, nhiềuvướng mắc Vì vậy để khắc phục những hạn tồn tại đó, tôi đã cố gắng tìm ra giảipháp trong quá 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 các năm qua, tôi nhận thấykhi học đến chương trình tin học lớp 11 đa số học sinh đều nhận xét ngại học bộmôn này vì rất khó khăn khi viết hoàn chỉnh một chương trình chạy được trênmáy tính đó là các em khó xác định bài toán, thuât toán; khi chạy chương trìnhthì gặp khá nhiều lỗi: lỗi về cú pháp và lỗi về ngữ nghĩa không biết sửa

Trang 4

chương trình trong ngôn ngữ lập trình Pascal Những khó khăn ấy, tôi đưa

2 Sai tên kiểu dữ liệu;

Vd: Kiểu thực thì viết là Read; Kiểu nguyên thì viết interger

3 Thiếu dấu kết thúc câu {;} và dấu kết thúc chương trình;

4 Viết sai tên các từ khóa;

5 Không phân biệt được hằng xâu và biến: học sinh cần phải chú ýhằng xâu đặt trong cặp nháy đơn còn biến thì không cần đặt trongcặp nháy đơn;

6 Sử dụng dấu ; sai vị trí.Trước Else không có dấu chấm phẩy

Sử dụng dấu chấm phẩy sau từ khoá do trong các câu lệnh lặp câu lệnh lặp rỗngkhông làm việc gì cả

Trường hợp 2: Khó khăn khi phát hiện lỗi sai về ngữ nghĩa thường gặp của học sinh trong lập trình Pascal Lỗi về ngữ nghĩa là lỗi trình biên dịch sẽ bỏ qua mà khi chạy chương trình mới phát hiện được 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 sangbiểu thức trong pascal bị sai;

2 Khai báo sai miền chỉ số cho dữ liệu kiểu mảng; sai kiểu dữ liệucho biến

Ví dụ 1: Nhập vào một mảng số nguyên gồm các số lớn hơn 3 và nhỏ hơn

100 In mảng vừa nhập

Học sinh khai báo mảng như sau: Var a: array[3 100] of integer;

3 Giá trị biến điều khiển vượt quá miền chỉ số của mảng;

4 Dùng cùng tên biến điều khiển cho các vòng lặp for lồng nhau;

5 Tràn số do kết quả tính toán vượt quá giới hạn;

6 Sử dụng tên hàm làm biến cục bộ

Trường hợp 3: Khó khăn khi xác định bài toán và liên hệ phương pháp giải một bài toán trong toán học hoặc trong thực tế với thuật giải trong tin học.

- Đối với bài tập 9 –SGK Tr36: Yêu cầu viết chương trình tính diện tíchphần gạch chéo

- Các bài 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 con

+ Bài toán gửi tiền tiết kiệm không kì hạn

-

Trang 5

2.3 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 – Tin học 11

2.3.1 Kinh nghiệm khắc phục những lỗi sai cú pháp cơ bản

2.3.1.1 Đối với chương II:‘‘Chương trình đơn giản’’

a) Ở các tiết lí thuyết khi dạy giáo viên sẻ lưu ý cho học sinh các lỗi cú pháp thường gặp

- Lỗi đặt tên hằng, tên biến trùng nhau VD: Var a, A: byte; (Pascalkhông phân biệt chữ hoa và chữ thường Do đó a và A chỉ là một)

- Lỗi đặt tên hằng, tên biến, tên chương trình, không đúng qui định củangôn ngữ lập trình

- Ngăn cách giữa các biến phải là dấu phẩy thì các em thường dùng dấu

chấm phẩy Khi kết thúc câu lệnh không có dấu chấm phẩy.

- 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;

- Khi viết hằng xâu thường quên không đặt hằng xâu vào giữa cặpdấu nháy đơn

- Khi viết thông báo ra ngoài màn hình thì các biểu thức lại cùng đặt trongcặp dấu nháy đơn với hằng xâu kí tự

- Khai báo biến thuộc kiểu dữ liệu này nhưng trong phần thân chươngtrình lại dùng biến đó với kiểu dữ liệu khác dẫn đến sai kiểu VD : Khai báo biến

a thuộc kiểu nguyên, nhưng trong phần thân chương trình lại có câu lệnh

a := a/2 ; (biểu thức a/2 là một số thực, biến a thuộc kiểu nguyên nên không thểlưu trữ được giá trị thực) vv

b) Biện pháp khắc phục:

*) Đối với các tiết bài tập trong chương giáo viên cho học sinh làm cácbài tập dạng phát hiện lỗi, qua đó giúp học sinh khi thực hành có thể dễ dàngphát hiện lỗi và sửa lỗi hơn

*) Đối với bài tập thực hành của chương II : Bài tập và thực hành 1.

Thực hành theo yêu cầu của SGK.

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 những học sinh yếu kém Sau đó, giáo viên chiếu chương trình đangcòn 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 trongchương trình của mình Dưới đây là chương trình giáo viên chiếu lên màn chiếu:

Trang 6

Bước 4: 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:

lại là: Read(a,b,c); (mã lỗi: 89)

hiệu *, sửa lại là: x1:= (-b – sqrt(D)) / (2*a); (mã lỗi: 89)

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ã lỗi: 89);

end (mã lỗi : 88)

Bước 5 : Sau khi đã 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; 5Như 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áoviê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ị chonhiề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.1.2 Khắc phục những lỗi sai cơ bản thường gặp trong chương III:

‘‘Cấu trúc rẽ nhánh và lặp’’.

a) Ở các tiết lí thuyết khi dạy giáo viên lưu ý các lỗi thường gặp.

- Viết thiếu các từ khóa như: then, do, downto, to…

- Điều kiện trong câu lệnh rẽ nhánh haycâu lệnh lặp không phải là biểuthứ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 thì giá trị đầu lại lớn hơn giá trị cuối haytrong câu lệnh For… downto … do thì giá trị đầu lại nhỏ hơn giá trị cuối

Trang 7

- Trong câu lệnh lặp While … Do không có câu lệnh làm thay đổi điềukiện lặp Do đó vòng lặp không thể dừng lại được.

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 hiện

những lỗi trong chương trình

Ví dụ 1: Viết chương trình tìm nghiệm thực của phương trình bậc hai :

Bước1: GV 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

Bước 2: Các nhóm suy nghĩ rồi cử đại diện các nhóm lên bảng trình bày

kết quả

Bước 3: 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 writeln(‘Phuong trinh vo nghiem’); sai (mã lỗi: 113), vì câu

lệnh này đứng trước từ khóa else nên không có 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 quả ra ngoài màn hình trong câu lệnh này gồm có 1 hằng xâu kí

tự và 2 biến Các kết quả ra phải được ngăn cách nhau bởi 1 dấu phẩy, hằng xâu

kí tự phải được đặt trong cặp dấu nháy đơn

Sửa lại là: writeln(‘Phuong trinh co hai nghiem ’,x1:6:2,x2:6:2);

Trang 8

+ Câu lệnh writeln(‘Phuong trinh co nghiem kep,’-b/2a); sai

Câu lệnh này có 2 lỗi sai: Thứ nhất, sai cách viết danh sách kết quả ra ngoàimàn hình (mã lỗi 26) Thứ hai, viết biểu thức chưa đúng với quy định củaPascal (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 trên thành chương trình

a) Ở các tiết lí thuyết khi dạy giáo viên lưu ý các lỗi thường gặp.

- Khi khai báo biến mảng thì thường viết sai từ khóa

- Trong khai báo mảng thì chỉ số đầu và chỉ số cuối chưa được xác định

- Khi tham chiếu đến một phần tử của mảng một chiều thì thường viếtsai Ví dụ để tham chiếu đến phần tử thứ 1 của mảng a thì học sinh viếta1 hoặc a(1)

- Đối với bài ‘‘Kiểu xâu’’ học sinh thường nhầm lẫn giữa hàm và thủtục vv

b) Biện pháp sửa lỗi.

Trang 9

Ví dụ: Cho dãy A gồm n số nguyên dương A1, A2, …, An Tìm phần tử

lớn nhất của dãy cùng với chỉ số của nó

Bước 1 Sau khi học sinh nêu lại được thuật toán tìm giá trị lớn nhất (đã

học ở lớp 10) Giáo viên chiếu chương trình đã chuẩn bị sẵn cho cả lớp quan sát

for i:=2 to n do 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 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à :

Trong khai báo biến mảng: Var A: aray[1 Nmax] of integer; có tới 2 lỗi sai Một là, sai từ khóa Array chứ không phải là Aray (mã lỗi:3) Hai là, chỉ

số cuối Nmax chưa được xác định (mã lỗi:3) Lỗi này nhiều học sinh vẫn khônghiểu vì sao sai Vì các em thấy trong SGK cũng viết như vậy

=>Do đó giáo viên cần làm rõ để học sinh hiểu, Nmax trong SGK đã có giá trị

xác định là 250 nhờ đã khai báo hằng 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 được sửa lại là:

Trang 10

writeln(‘Gia tri lon nhat la: ’, max,’ tai vi tri: ’, cs) ;

readln

end.

Bước 5: Chạy thử chương trình cho cả lớp quan sát, để các em được khắc

sâu thêm nội dung bài học

Bước 6: Giáo viên đánh giá kết quả và cho điểm các nhóm.

2.3.1.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 tiết lí thuyết khi dạy giáo viên lưu ý các 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 nhưng vẫn thaotác đọc/ghi tệp; Mở quá nhiều tệp

- Thao tác trên tệp xong thì không thực hiện đó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 bài tập sau:

Ví dụ: Cho tệp SONGUYEN.INP chứa các số nguyên, các số cách nhau

bởi dấu cách Hãy viết chương trình tính tổng các số nguyên dương có trong tệp

ở trên, kết quả ghi lên tệp SONGUYEN.OUT

Cách tiến hành:

Bước 1: Chia lớp thành 4 nhóm Nhiệm vụ của mỗi nhóm là giải quyết bài

toán ở trên

Bước 2: Giáo viên thu kết quả của các nhóm Soạn thảo và chiếu kết

quả của một nhóm bất kì cho cả lớp cùng quan sát Đây là chương trình của

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w