SKKN giúp học sinh tránh một số lỗi thường gặp trong chương trình tin học lớp 11 - Pdf 51

Sáng kiến môn Tin Học lớp 11

SỞ GIÁO DỤC VÀ ĐÀO TẠO NINH BÌNH
TRƯỜNG THPT NINH BÌNH – BẠC LIÊU

SÁNG KIẾN
GIÚP HỌC SINH TRÁNH MỘT SỐ LỖI THƯỜNG GẶP
TRONG CHƯƠNG TRÌNH TIN HỌC LỚP 11

Lĩnh vực/Môn: Tin học.
Tác giả:
Trịnh Thị Kim Phương
Nguyễn Thị Chinh
Giáo viên môn: Tin học.

Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

1


Sáng kiến môn Tin Học lớp 11
Năm học 2017 - 2018

Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

2


Sáng kiến môn Tin Học lớp 11
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

Liêu

Tỷ lệ
đóng
góp
vào
sáng
kiến

Trình
Chức độ
danh chuyên
môn
Giáo
viên
Giáo
viên

Cử
nhân
Tin học
Cử
nhân
Tin học

50%
50%

1. Tên sáng kiến, lĩnh vực áp dụng
Tên sáng kiến:

không dịch ra lỗi nào nhưng kết quả thu được vẫn không đúng và các em không biết sửa
như thế nào. Hơn nữa trong sách bài tập tin học, sách giáo, sách tham khảo hiện vẫn chưa có
sách nào hướng dẫn học sinh phát hiện và sửa các lỗi đó.
Tin học lớp 11 là một môn học trìu tượng đòi hỏi giáo viên và học sinh phải hoạt động
tích cực, giáo viên cần đổi mới phương pháp dạy để học sinh có thể:
+ Nghe giáo viên giảng bài, nhận xét, nghe bạn bè trả lời
+ Nhìn giáo viên viết, bài giảng chiếu trên màn hình
+ Đọc vở ghi, đọc sách giáo khoa, sách tham khảo
+ Phát biểu ý kiến trong lớp, nhận xét ý kiến của bạn,..
+ Viết kết quả công việc của mình, của nhóm
+ Làm bài tập thực hành, áp dụng kiến thức vào cuộc sống
Trong các yêu cầu trên tin học lớp 11 kĩ năng thực hành là một kĩ năng cực kì quan trọng
đòi hỏi học sinh phải nắm vững kiến thức về cú pháp và ngữ nghĩa của ngôn ngữ lập trình,
Vì vậy chúng tôi đã đưa ra sáng kiến “Giúp học sinh tránh một số lỗi thường
gặp trong chương trình Tin học lớp 11” để giúp học sinh có thể hoàn thiện được kĩ năng
thực hành trong chương trình Tin học lớp 11.
a. Giải pháp cũ thường làm:
- Trường THPT Ninh Bình – Bạc Liêu đến nay chưa áp dụng một sáng kiến nào về việc
“lỗi” và “sửa lỗi” trong chương trình tin học 11. Một phần do các em chưa nắm vững về cú
pháp của ngôn ngữ lập trình Pascal, nhiều học sinh khó khăn trong việc tổ chức dữ liệu và
viết chương trình. Hậu quả là có không ít học sinh còn tìm cách học thuộc lòng các chương

Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

4


Sáng kiến môn Tin Học lớp 11
trình mẫu của giáo viên và trong sách mà chưa có khả năng tự mình viết được chương trình
hoàn chỉnh để chạy được chương trình. Đến khi gặp lỗi thì không có khả năng tự sửa lỗi mà


5


Sáng kiến môn Tin Học lớp 11
- Với cách thức tổ chức dạy học linh hoạt và phương pháp hướng dẫn học sinh phát
hiện ra lỗi một cách nhanh nhất, phương pháp tìm thuật toán tối ưu, và hướng dẫn học sinh
cách ứng dụng công nghệ thông tin liên quan đến kiến thức môn học trên lớp một cách hiệu
quả nhất. Vì vậy, giáo viên khi giảng bài đã giảm bớt chi phí từ khâu thiết kế, chuẩn bị đồ
dùng, thiết bị, mô hình, tranh ảnh trong giảng dạy.
- Tiết kiệm được thời gian: Nội dung sáng kiến đề cập đến các giải pháp giúp học
sinh sửa lỗi cơ bản, học sinh sẽ tự phát hiện ra lỗi và cách khắc phục, giúp giáo viên tiết
kiệm được thời gian, và giáo viên có thể trang bị thêm kiến thức cho học sinh.
- Tiết kiệm được tiền mua sách tham khảo vì học sinh có thể sử dụng công nghệ
thông tin để phục vụ việc học.
- Đầu tư cho phát triển nguồn lực hay chính là đầu tư cho giáo dục con người mang
lại hiệu quả kinh tế cao, tiết kiệm được việc khai thác sử dụng các nguồn lực khác.
* Hiệu quả xã hội:
a. Về phía giáo viên
- Giảng dạy chương trình tin học lớp 11 là một môn học tư duy trừu tượng vì vậy yêu
cầu học sinh và giáo viên môn Tin học không ngừng trau dồi kiến thức ở nhiều lĩnh vực,
phương pháp thuật toán, cách sửa lỗi là một trong những điểm rất quan trọng đủ để đáp ứng
với những đòi hỏi ngày càng cao của dạy học hiện nay. Vì vậy chúng tôi đã áp dụng sáng
kiến trong quá trình giảng dạy, kết quả giảng dạy đã có nhiều chuyển biến tích cực:
- Khắc phục được hạn chế đổi mới phương pháp một cách chiếu lệ, hình thức ở giáo viên.
- Tạo không khí tự học, tự bồi dưỡng sôi nổi trong thầy và hứng thú ở trò nên giờ học
hiệu quả, cuốn hút học sinh hơn.
- Kiến thức được học sinh chủ động lĩnh hội, tự mình tìm và sửa được lỗi nên có sự bền
vững, hệ thống, sáng tạo.
Kết quả các lớp giảng dạy của chúng tôi được cải thiện rõ nét:

4.9
0

0
0

Đối chứng
Thực nghiệm

Lớp

Như vậy, theo thống kê ở trên, sau khi áp dụng sáng kiến HS đạt kết quả khá giỏi tăng
lên, tỉ lệ điểm khá, giỏi cao (86%); điểm trung bình giảm xuống đáng kể (14); đặc biệt không có
HS có điểm yếu.

Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

6


Sáng kiến môn Tin Học lớp 11
b. Về phía học sinh
- Học sinh hứng thú học bài, say sưa tìm hiểu kiến thức môn học.
- Thái độ học tập của học sinh nghiêm túc, chủ động sáng tạo trong giờ học
- Học sinh có khả năng tư duy cao, sử dụng công nghệ thông tin thành thạo, biết xử lí
thông tin nhạy bén, linh hoạt.
- Học sinh hứng thú với những tiết học hơn, dễ hiểu và hiểu sâu nội dung bài học.
- Đặc biệt các em sẽ có những chuyển biến rõ rệt trong khả năng vận dụng kiến thức,
kỹ năng vào thực tiễn.
4. Điều kiện và khả năng áp dụng


25

16,6

69,4

TB
SL

TL %

5

14

Yếu
Sl
TL %
0

0

Như vậy, theo thống kê ở trên, sau đề tài 86% HS đạt kết quả khá giỏi trở lên. Vì vậy
khả năng áp dụng rất hiệu quả.

Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

7


THPT
Ninh
Bình –
Bạc Liêu
Trường
THPT
Ninh
Bình –
Bạc Liêu

Chức
danh

Trình độ
chuyên
môn

Nội dung
công việc
hỗ trợ

Giáo viên

Cử nhân
Tin học

Giảng dạy
môn tin
học 11



CHƯƠNG I. CƠ SỞ KHOA HỌC
1. Cơ sở lí luận
Hiện nay, công nghệ thông tin xuất hiện ở mọi nơi, sự phát triển nhanh chóng của
nó giúp cuộc sống của con người trở nên tốt đẹp hơn. Công nghệ thông tin giúp các
nhà khoa học tạo ra những nghiên cứu vượt bậc nhờ việc tính toán và xử lý một khối
lượng công việc khổng lồ của máy tính. Chúng có thể thực hiện hàng tỷ phép tính
trong vài giây. Ngành tài chính có thể tiết kiệm hàng chục tỷ USD nhờ hệ thống máy
tính Internet.
Một điều dễ nhận thấy là công nghệ phần cứng thay đổi với tốc độ quá nhanh,
trong khi đó, các công nghệ hay các ngôn ngữ lập trình gần như chẳng mấy thay đổi
trong suốt nhiều năm. Pascal cũng là một trong những môn học ra đời từ rất sớm, mặc
dù nó không phải là một ngôn ngữ mạnh, nhưng nó lại là nền tảng cho mọi ngôn ngữ
khác, cho nên nó vẫn còn được đưa vào giảng dạy ở các trường phổ thông, môn tin
học lớp 11 được đánh giá là một môn học đòi hỏi sự tư duy cao, học sinh cần phải
biết tự đọc, viết thuật toán, và hoàn thiện chương trình để cho kết quả đúng. Nhưng
để làm được điều đó thì quả là khá khó đối với học sinh vì khi chạy chương trình
phần đa là vẫn còn tồn tại một số lỗi. Vậy chúng ta sẽ xem lỗi là gì và phương pháp
để sửa lỗi một cách nhanh chóng và chính xác.
a. Các vấn đề liên quan đến “lỗi” và “sửa lỗi” trong Pascal
“Lỗi là gì ?”
Chúng ta cần hiểu “lỗi” ở đây là những vấn đề bất thường xảy ra trong quá trình
thực hiện chương trình Pascal khiến cho kết quả nhận được không như mong muốn
của người lập trình.
“Có những loại lỗi nào ?”
Có rất nhiều lỗi mà người lập trình có thể mắc phải khi viết và thực hiện chương
trình Pascal. Nhưng thường được phân thành hai loại lỗi sau: Lỗi cú pháp và lỗi về
ngữ nghĩa. Đối với những lỗi về cú pháp thì khi dịch chương trình, chương trình dịch
Pascal sẽ báo lỗi. Và vấn đề của người lập trình ở đây là làm sao dựa vào chỉ dẫn của
Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

cách một giáo viên Tin học tôi phải có nhiệm vụ hướng dẫn các em, giúp khơi lại
niềm ham mê với Tin học.
3. Thực trạng
a. Thực trạng chung
Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

10


Sáng kiến môn Tin Học lớp 11
 Thuận lợi
Thuận lợi lớn nhất phải kể đến đó là được sự quan tâm sát sao của Sở Giáo Dục,
Ban Giám Hiệu nhà trường đã trang bị đầy đủ các phương tiện, thiết bị hỗ trợ dạy và
học bộ môn tin học như phòng máy, máy chiếu, tranh ảnh, đồ dùng tự làm...Đó là một
điều rất đáng mừng cho học sinh cũng như giáo viên môn Tin học chúng tôi để có thể
có môi trường dạy - học và đạt kết quả học tập tốt nhất.
 Khó khăn
Qua thực tế giảng dạy môn Tin học ở trường THPT Ninh Bình – Bạc Liêu, tôi
nhận thấy khi học đến chương trình Tin học lớp 11 đa số học sinh đều nhận xét bộ
môn này rất khó. Các học sinh thường gặp khá nhiều lỗi khi viết một chương trình
trong ngôn ngữ lập trình Pascal. Có những lỗi mà học sinh mắc phải rất nhiều lần
xong các em lại không biết sửa như thế nào. Từ đó các em thường nản hoặc hứng thú
học môn này giảm dần. Tuy nhiên cũng có một số lượng không nhỏ học sinh rất yêu
thích tin học và thích tìm hiểu một số bài toán, dạng toán ngoài phạm vi sách giáo
khoa.
Đồng thời trong quá trình giảng dạy chúng tôi cũng nhận thấy rằng môn Tin học
tuy có khó nhưng lại rất hay, rất gần gũi với thực tế cuộc sống. Nếu giáo viên có
phương pháp hay thì môn này rất thu hút học sinh vì tâm lý các em đa số là ham hiểu
biết tìm tòi cái mới và cái lạ.
Một điều đáng buồn đó là mặc dù được trang bị phòng máy đầy đủ, được sự

Rõ ràng trong trường hợp này khi dịch chương trình máy không hề báo lỗi.
Nhưng khi chạy chương trình lại xuất hiện lỗi.
 Khai báo sai miền chỉ số cho dữ liệu kiểu mảng.
Ví dụ 2: Nhập vào một mảng số nguyên gồm các số lớn hơn 0 và nhỏ hơn
200. In mảng vừa nhập.
Học sinh khai báo mảng như sau:
Var a: array[0..200] of integer;
Trong trường hợp này học sinh đã nhầm miền giá trị của mảng với kiểu chỉ số.
 Giá trị biến điều khiển vượt quá miền chỉ số của mảng.
Ví dụ 3: Nhập vào một dãy số gồm 20 phần tử và cho biết dãy vừa nhập có
tạo thành cấp số cộng không?
Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

12


Sáng kiến môn Tin Học lớp 11
Học sinh lập trình giải bài toán trên như sau:
Var

a: array[1..20] of integer;
i,d:integer;
ok:boolean;

Begin
Write(‘nhap day so:’);
For i:=1 to 20 do
Begin
Write(‘a[’ ,i, ‘]’);
Readln(a[i]);

Học sinh lập trình giải bài toán trên như sau:
S:=0;
For i:=1 to n do
Begin
T:=1;
For i:=1 to a do
T:=T*i;
S:=S+T;
End;
Đoạn chương trình trên có thể lặp vô tận khi kết thúc vòng lặp còn i luôn
nhận giá trị bằng a.
 Sử dụng dấu “;” sai vị trí.
Ví dụ 5:
If a>b then write (‘ So lon nhat la:’, a);
Else write(‘ so lon nhat la:’, b);
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 dẫn đến câu lệnh lặp rỗng không làm việc gì cả. Yêu
cầu học sinh ghi nhớ các quy tắc của Pascal khi viết chương trình đặc biệt trong
câu lệnh ghép, trong các vòng lặp.
 Không phân biệt được hằng xâu và biến.
Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

14


Sáng kiến môn Tin Học lớp 11
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 trong cặp nháy đơn.
 Tràn bộ nhớ do kết quả tính toán vượt quá giới hạn.
Ví dụ 6:

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.
 Biến đếm trong các vòng lặp khai báo kiểu thực.
Ví dụ 8:
Var i:real;
For i:=1 to n do write (i);
Biến đếm trong các vòng lặp luôn luôn nhận giá trị nguyên hoặc dưới dạng kí
tự, do vậy khi khai báo biến đếm tuyệt đối không sử dụng kiểu dữ liệu thực.
 Gán kết quả phép chia cho biến kiểu nguyên.
Ví dụ 9:
Var a, b, c: Integer;
a: =20;
b:=14;
c:=a/b;
 Nhầm lẫn phép gán “:=” với phép so sánh “=”.
Sai lầm này là do học sinh chưa quen với các kí hiệu trong Pascal.
 Rơi vào vòng lặp vô hạn.
Đây là một lỗi rất thường gặp khi học sinh viết các chương trình có chứa vòng
lặp “While – do”
Ví dụ 10:
i:=1; While i< 10 do write (i);
Ví dụ trên đã rơi vào vòng lặp vô hạn bởi giá trị của i bao giờ cũng nhỏ hơn 10.

Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

16


Sáng kiến môn Tin Học lớp 11
CHƯƠNG II. ĐỀ XUẤT GIẢI PHÁP
1. Giải pháp 1: Cung cấp cho học sinh hệ thống bài tập đa dạng phong phú về


Sáng kiến môn Tin Học lớp 11
Readln(i);
While i>1 do
begin
If (i mod 2)0 then i:=i+1
Else i:=i - 2;
Writeln(i);
end;
Readln;
End.
Cho i:=5. Vậy kết quả chương trình sau khi thực hiện thế nào?
Kết quả hiện ra trên màn hình:
6
4
2
b. Bài tập xác định bài toán, xây dựng thuật toán.
Việc hình thành thuật toán trước khi viết chương trình là tạo một thói quen tốt
trong tư duy của các học sinh. Nếu bài toán nào học sinh cũng hình thành thuật toán
trước khi viết chương trình thì việc xảy ra lỗi sẽ được hạn chế hơn rất nhiều. Học sinh
trình bày thuật toán trước khi viết chương trình là hết sức quan trọng. Thuật toán
đúng thì chương trình mới có khả năng đúng, còn một thuật toán sai chắc chắn là cho
một chương trình sai. Tuy nhiên đối với phần lớn học sinh lớp 11 thường bỏ qua bước
này do tâm lý học sinh không thích các loại bài tập như thế.
Trong nhiều trường hợp tưởng như không cần thuật toán cụ thể học sinh vẫn
viết được chương trình. Thực tế thuật toán đó không được viết ra nhưng đã hình
thành sẵn trong đầu người viết.
Với đa số học sinh hiện nay, cần phải dành một lượng thời gian thích hợp để
rèn luyện loại bài tập này. Phải làm sao cho việc viết thuật toán trở thành kĩ năng để
khi các em lập trình trên máy, tuy không cần viết thuật toán ra song các em có thể

học sinh đã viết chương trình như sau:
Program

vd;

Uses crt;
Var x, y, z: integer;
Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

19


Sáng kiến môn Tin Học lớp 11
Begin
Clrscr;
Write(‘ nhap vao 3 so: ’);
Readln(x, y, z);
If x
Vậy số lớn nhất là 7 Kết quả đúng
Chương trình trên thực hiện lúc đúng lúc sai do chương trình mới chỉ so sánh 2
số x và y thôi đã đưa ra kết luận. Ta có thể sửa lại chương trình như sau:
Program vd3_1;
Uses crt;
Var x, y, z, Max: integer;
Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

20


Sáng kiến môn Tin Học lớp 11
Begin
Clrscr;
Write(‘ nhap vao 3 so: ’);
Readln(x, y, z);
Max:=x;
If (Max
2. Giải pháp 2: Nhấn mạnh nguyên nhân gây lỗi khi sửa lỗi.
Việc làm này giúp học sinh hiểu rõ hơn nguyên nhân mắc lỗi và lần sau không
mắc phải các lỗi tương tự. Chúng ta quan sát lại ví dụ trong phần trước :
Ví dụ 1(Trong phần thực trạng)
Sau đó khi chạy chương trình nhập a=100, b=200 máy sẽ báo lỗi tràn bộ nhớ.
Trong trường hợp này cần giải thích rõ tại sao lại lỗi và lỗi trong trường hợp nào?
TH1: nhập x=100, y=200 thì chương trình sẽ tính z=300. Mà trong phần khai
báo chúng ta khai bao z kiểu byte, kiểu byte có phạm vi giá trị là từ 0 đến 255 như
vậy z vượt quá phạm vi khai báo gây ra tình trạng tràn bộ nhớ.
TH2: Tương tự nếu ta nhập x=100, y= -200 thì kết quả z=- 100. Lúc này lại
xảy ra lỗi vì giá trị của c không nằm trong phạm vi giá trị của kiểu byte.
TH3: Nếu nhập x = 300, y = - 100 thì mặc dù z := x+y được tính bằng 200
thuộc phạm vi giá trị của kiểu byte thì chương trình vẫn sai vì lúc này chúng ta nhận
thấy a lại vượt quá phạm vi khai báo, b không thuộc phạm vi khai báo.
Giúp học sinh tránh một số lỗi thường gặp trong chương trình Tin học lớp 11

22


Sáng kiến môn Tin Học lớp 11
Kết luận: Để sửa lỗi này chúng ta cần phải chọn kiểu dữ liệu khi khai báo biến
phù hợp. Và trong quá trình nhập dữ liệu cho các biến chúng ta cần phải chọn bộ
“input” phù hợp.
3. Giải pháp 3: Yêu cầu học sinh hình thành thuật toán trước khi viết chương
trình.
Một bài toán có thể có nhiều cách giải khác nhau ứng với mỗi cách giải ta có
một thuật toán. Để giúp học sinh có khả năng nhanh chóng nắm được ý tưởng của
người khác cần luyện cho các em biết giải bài toán theo một thuật toán đã được trao
đổi. Khả năng hiểu được nhanh ý tưởng của người khác cũng chính là yêu cầu trong
hoạt động nhóm. Phát triển khả năng này là phát triển một phẩm chất tư duy quí báu

Cho đoạn chương trình giải quyết công việc trên như sau:
I:=1; dem:=0;
While i= ‘0’) and (xau[i]= ‘0’) and (xau[i]


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status