Tải bản đầy đủ (.docx) (34 trang)

Mot so giai phap giup hoc sinh hoc tot lap trinh pascal mon tin hoc 11

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (193.73 KB, 34 trang )

 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

MỤC LỤC
MỤC LỤC.......................................................................................................1

A. PHẦN I: ĐẶT VẤN ĐỀ..........................................................................3
1. Lý

do

chọn

đề

tài .........................................................................................3
2. Mục

đích

nghiên

cứu ...................................................................................4
3. Đối tượng nghiên cứu..................................................................................4
4. Phạm

vi

nghiên


cứu .....................................................................................5
5. Phương pháp nghiên cứu ............................................................................5

B. PHẦN II: NỘI DUNG.............................................................................6
CHƯƠNG I : TỔNG QUAN ...........................................................................6
1. Cơ sở lý luận ..............................................................................................6
2. Cơ sở thực tiễn ...........................................................................................7
CHƯƠNG II : NỘI DUNG SÁNG KIẾN KINH NGHIỆM............................8
I.

Một số lỗi sai thường gặp của học sinh khi lập trình Pascal và
biện

pháp

sửa

lỗi….......................................................................................................8
1) Những lỗi sai cơ bản thường gặp trong chương II:
Chương trình con đơn giản...............................................................................8
a) Các lỗi thường gặp.......................................................................................8
b) Biện
pháp
sửa
lỗi..........................................................................................9
2) Những lỗi sai cơ bản thường gặp trong chương III:
1


 THPT Cao Bá Quát


Sáng kiến kinh nghiệm 2019

Cấu trúc rẽ nhánh và lặp ................................................................................10
a) Các lỗi thường gặp.....................................................................................10
b) Biện
pháp
sửa
lỗi........................................................................................10

3) Những lỗi sai cơ bản thường gặp trong chương IV:
Kiểu dữ liệu có cấu trúc .................................................................................12
a) Các lỗi thường gặp.....................................................................................12
b) Biện
pháp
sửa
lỗi........................................................................................13
4) Những lỗi sai cơ bản thường gặp trong chương V:
Tệp và thao tác với tệp ...................................................................................15
a) Các lỗi thường gặp.....................................................................................15
b) Biện
pháp
sửa
lỗi........................................................................................15
5) Những lỗi sai cơ bản thường gặp trong chương VI:
Chương trình con và lập trình có cấu trúc .....................................................17
a) Các lỗi thường gặp.....................................................................................17
b) Biện
pháp
sửa

lỗi........................................................................................17
II. Một số giải pháp giúp học sinh học tốt lập trình Pascal…........................19
1) Tạo tâm lí thoải mái cho học sinh .............................................................19
2) Tăng cường sử dụng phương tiện dạy học, thực hành ..............................20
3) Sử dụng bài giảng điện tử, minh hoạ từ thực tế ........................................21
4) Chú trọng dạy tư duy thuật toán cho học sinh ..........................................23
5) Tích cực hoá hoạt động nhóm ...................................................................26
2


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

6) Hình thành kỹ năng lập trình ....................................................................27
III. Kết quả đạt được.......................................................................................28

C. PHẦN III: PHẦN KẾT THÚC...........................................................32
TÀI LIỆU THAM KHẢO ..............................................................................33

3


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

A. PHẦN I: ĐẶT VẤN ĐỀ
1) Lý do chọn đề tài :
Trong thời đại Công nghệ thông tin bùng nổ ngày nay, nhiều quốc gia trên

thế giới ý thức được rất rõ tầm quan trọng của tin học và có những đầu tư lớn
cho lĩnh vực này, đặc biệt trong giáo dục nâng cao dân trí về tin học và đào
tạo nguồn nhân lực có chất lượng cao. Người Việt Nam có nhiều tố chất thích
hợp với ngành khoa học này, vì thế chúng ta hi vọng có thể sớm hoà nhập với
khu vực và trên thế giới.
Trong Tin học, việc lập được các chương trình tự hoạt động cho máy tính,
máy gia dụng là cần thiết. Và để làm được việc đó cần có một quá trình
nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó nhà lập trình có thể
chọn một ngôn ngữ lập trình thích hợp.
Theo thói quen của nhiều em học sinh, học môn tin là học những thao tác
sử dụng như cách sử dụng internet, sử dụng hệ điều hành window, chương
trình soạn thảo văn bản Microsoft Word, chương trình soạn thảo trình diễn
Microsoft PowerPoint … Đây là những phần học không cần đòi hỏi tư duy,
mà chỉ cần học kĩ và nhớ thao tác, thực hành nhiều lần thì sẽ thành thạo.
Nhưng khi học bộ môn lập trình Passal chương trình lớp 11 Trung học phổ
thông thì hầu như các em bị “choáng” vì bộ môn rất “mới”, và cách học cũng
“mới”. Học những thao tác và thực hành nhiều không còn tác dụng, học thuộc
bài cũng không còn ổn nữa. Lúc này các em cần phải học cách tư duy logic,
tìm thuật toán, và viết những dòng lệnh máy tính chính xác đến từng dấu
chấm, dấu phẩy. 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. Nguyên nhân dẫn đến những khó khăn mà học sinh
thường gặp là rất phong phú nhưng có thể thấy một số nguyên nhân chính sau
đây:
4


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019


- Học sinh thường gặp khó khăn khi xác định bài toán.
- Khó liên hệ phương pháp giải một bài toán trong toán học với thuật toán
trong tin học.
Tuy nhiên mọi thứ điều có điểm khởi đầu của nó, với học sinh việc học
ngôn ngữ lập trình Turbo Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập
trình bậc cao. Qua đó giúp các em hình dung được sự ra đời, cấu tạo, hoạt
động cũng như ích lợi của các chương trình hoạt động trong máy tính, các
máy tự động… Từ đó giúp các em có thêm một định hướng, một niềm đam
mê về tin học, về nghề nghiệp mà các em lựa chọn sau này.
Xuất phát từ cơ sở trên, tôi đã chọn đề tài “Một số giải pháp giúp học sinh
học tốt lập trình Pascal môn Tin học 11”.
2) Mục đích nghiên cứu:
Khi lập trình giải các bài toán học sinh thường mắc rất nhiều lỗi, thậm chí
có những lỗi các em mắc phải nhiều lần do không hiểu nguyên nhân xuất hiện
lỗi. Vì vậy trong nội dung đề tài này tôi nêu ra một số lỗi sai phổ biến các em
thường mắc phải và biện pháp sửa các lỗi này.
Tuy vậy, đối với đối tượng học sinh khá giỏi, đa phần các em rất hào hứng
với việc học lập trình, cụ thể là ngôn ngữ lập trình Turbo Pascal. Do đó, trong
đề tài này tôi sẽ trình bày một số giải pháp dạy lập trình Pascal để giúp học
sinh có thể hiểu bài một cách nhanh chóng, nắm chắc kiến thức và kĩ năng lập
trình Pascal.
3)
Đối tượng nghiên cứu:
- Học sinh lớp 11 trường THPT Cao Bá Quát năm học 2017 - 2018.
- Sử dụng một số ví dụ và các bài học.

5


 THPT Cao Bá Quát


Sáng kiến kinh nghiệm 2019

4) Phạm vi nghiên cứu:
Các chú ý khi dạy ngôn ngữ lập trình nói chung, ngôn ngữ lập trình Turbo
Pascal nói riêng là rất nhiều, rất phong phú. Tuy nhiên trong phạm vi sáng kiến
kinh nghiệm này tôi chỉ trình bày một số giải pháp, kinh nghiệm của cá nhân
tôi qua các nội dung cụ thể sau:
- Một số lỗi sai thường gặp của học sinh khi học lập trình Pascal và biện
pháp sửa lỗi.
- Một số giải pháp dạy lập trình Pascal môn Tin học 11.
5) Phương pháp nghiên cứu:
- Kết hợp thực tiễn giáo dục ở trường THPT Cao Bá Quát.
- Đọc kỹ sách giáo khoa, sách giáo viên Tin học 11, tài liệu về sáng kiến
kinh nghiệm và một số tài liệu tham khảo khác.
- Tích lũy các kiến thức từ nhiều năm giảng dạy .
- Điều tra thực tế, đánh giá kết quả của học sinh trước và sau khi thực hiện
đề tài, phân tích tìm nguyên nhân rồi từ đó đưa ra giải pháp.

6


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

B. PHẦN II: NỘI DUNG
CHƯƠNG I
TỔNG QUAN
1. Cơ sở lí luận:

Pascal là một ngôn ngữ lập trình cấp cao do Niklaus Wirth, giáo sư
điện toán trường đại học Kỹ thuật Zurich (Thụy sĩ) thiết kế và công bố vào
năm 1971 và đặt tên là Pascal để tưởng niệm nhà Toán học và Triết học
nổi tiếng Blaise Pascal. Đây là một ngôn ngữ lập trình có cấu trúc đơn
giản, rõ ràng, cấu trúc chặt chẽ, dễ viết, dễ hiểu cũng như dễ sửa chữa, cải
tiến. Do đó Pascal được nhiều quốc gia trong đó có Việt Nam đưa vào
chương trình giảng dạy tin học ở các trường phổ thông và đại học như một
môn học cơ sở, đại cương.
Ở trường phổ thông chúng ta không chú trọng học chuyên sâu về
ngôn ngữ lập trình để tạo ra các phần mềm máy tính mà tập trung rèn
luyện kĩ năng tư duy logic, tư duy hệ thống và sáng tạo không chỉ để giải
quyết những vấn đề trong tin học mà đây còn là những kĩ năng vô cùng
quan trọng để giải quyết nhiều vấn đề trong cuộc sống.
Học Pascal giúp cho ta hiểu được cách làm việc của máy tính, cách
giao tiếp để ra lệnh cho máy tính làm việc theo sự điều khiển của con
người thông qua ngôn ngữ lập trình. Các em có thể tạo ra các chương trình
thú vị bằng cách sử dụng các câu lệnh Pascal. Cũng giống như những môn
học khác như toán học, vật lý, hóa học … khi các em đã thực sự hiểu và
yêu thích bộ môn tin học các em sẽ tìm thấy nhiều niềm vui, sự đam mê
khi tìm hiểu và khám phá những điều mới mẻ nhưng đầy hấp dẫn trong bộ
môn tưởng chừng như khô khan này.
7


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

2. Cơ sở thực tiễn:
Qua một thời gian giảng dạy ở trường, tôi nhận thấy khi học Pascal

học sinh thường không thích thú với môn học này vì nhiều lý do như khó
hiểu, tiếp thu chậm, đòi hỏi tư duy nhiều, … nên việc viết được một
chương trình chạy được trên máy tính đối với các em rất khó khăn. Do đó
để học tốt đòi hỏi học sinh phải có hứng thú. Cốt lõi của việc đổi mới
phương pháp dạy học là giúp học sinh yêu thích, hứng thú với môn học,
hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động. Để
tạo cho các em một niềm hứng khởi với môn học tôi đưa ra một số giải
pháp giúp học sinh học tốt lập trình pascal_môn Tin học 11.

8


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019
CHƯƠNG II

NỘI DUNG SÁNG KIẾN KINH NGHIỆM
I. Một số lỗi sai thường gặp của học sinh khi lập trình và biện pháp sửa lỗi.
1) Những lỗi sai cơ bản thường gặp trong chương II:
“ Chương trình đơn giản”.
a) Các lỗi thường gặp:
 Lỗi đặt tên hằng, tên biến trùng nhau. Ví dụ: Var a, A: byte; (Pascal
khô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ủa ngô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ả.

Ví dụ: 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.
Ví dụ : 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ặp dấ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
trong cặ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ương
trình lại dùng biến đó với kiểu dữ liệu khác dẫn đến sai kiểu.
Ví dụ: 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).
b) Biện pháp sửa lỗi.
Tiết 7 bài 7: Các thủ tục chuẩn vào/ ra đơn giản.
Ví dụ: Hãy viết chương trình đưa ra màn hình dòng thông báo:
‘Xin chao cac ban hoc sinh lop 11A1 truong THPT Cao Ba Quat’.
Các bước thực hiện như sau:
- Bước 1: Giáo viên chiếu chương trình đã viết sẵn cho học sinh quan sát
9


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

Program Viet thong bao;
Begin;
Writeln(‘Xin chao cac ban hoc sinh lop 11A1 truong THPT Cao Ba Quat)
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 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 Progam sai, đúng là: Program (mã lỗi: 36)
+ Tên chương trình Viet thong bao là sai, vì không đúng theo quy tắc đặt
tên của NNLT Pascal (tên không được chứa dấu cách) (mã lỗi: 85)
+ Câu lệnh Begin ; là sai vì sau từ khóa Begin không có dấu ; (mã lỗi: 85)
+ Câu lệnh Writeln(‘Xin chao cac ban hoc sinh lop 11A1 truong THPT
Cao Ba Quat) có 2 lỗi sai, vì thiếu dấu đóng nháy ở hằng xâu kí tự (mã
lỗi:8) và kết thúc câu lệnh không có dấu ; (mã lỗi: 85)
+ Thủ tục Realn sai, phải là Readln (mã 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ó 3 lỗi sai có cùng mã lỗi là 85, 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 chỉ
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 đã đượ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êu.
2) Những lỗi sai cơ bản thường gặp trong chương III:
10


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019


“ Cấu trúc rẽ nhánh và lặp”.
a) 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 hay câu lệnh lặp không phải là 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 thì giá trị đầu lại lớn hơn giá trị cuối hay
trong câu lệnh For… downto … do thì giá trị đầu lại nhỏ hơn giá trị
cuối.
 Trong câu lệnh lặp While … do không có câu lệnh làm thay đổi điều
kiệ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:
Tiết 11 – Bài ‘‘Cấu trúc rẽ nhánh’’.
Ví dụ: Viết chương trình tìm nghiệm thực của phương trình bậc hai :
ax2 + bx + c = 0 (a # 0).
- Bước 1. Chiếu chương trình đã chuẩn bị sẵn cho cả 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 – 4 * a*c;
if d < 0 then
writeln(‘Phuong trinh vo nghiem’);
else
if d > 0 then
Begin
11



 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

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.
- 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.
- 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 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);
 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ài màn hình (mã lỗi 26). Thứ hai, viết biểu thức chưa đúng với quy
định của Pascal (mã lỗi: 89).
12


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

Sửa lại là: writeln(‘Phuong trinh co nghiem kep’,-b/(2*a));
Giáo viên chỉnh sửa lại chương trình trên thành chương trình hoàn chỉnh:
- Bước 5. Giáo viên 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.
3) Những lỗi sai cơ bản thường gặp trong chương IV:
‘‘Kiểu dữ liệu có cấu trúc’’.
a) 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ết
sai. Ví dụ để tham chiếu đến phần tử thứ 1 của mảng a thì học sinh
viết a1 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.
b) Biện pháp sửa lỗi:
Tiết 20 – Bài “Kiểu mảng”.
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.

Program Tim_max ;
Uses Crt ;
Var
A : aray[1..Nmax] of integer;
n, i, cs: byte;
max: integer;
begin
clrscr;
13


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

write(‘Nhap n: ’); Readln(n);
for i:=1 to n do
begin
write(‘Nhap phan tu thu ’, i,’ :’); readln(a(i));
end;
max:=a[1]; cs:=1;
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ông hiể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
14


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

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]);
- 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.
4) Những lỗi sai cơ bản thường gặp trong chương V:
“Tệp và thao tác với tệp”
a) 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 thao tá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.
Ví dụ: Cho tệp SO.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 SO.OUT.
- 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 nhóm đó:
Program Vi_du;
Var

15


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

f, g : Text;
n, s : integer ;
begin
asign(f, ‘SO.INP’) ;
S := 0 ;
while not eof(f) do

begin
read(f,n) ;
if n > 0 then S :=S + n ;
end;
writeln(g, ‘Tong cac so duong co trong tep la: ’, s);
end.
- Bước 3. Yêu cầu các nhóm còn lại phát hiện lỗi sai. Sau đó giáo viên củng
cố.
Các lỗi sai có trong chương trình trên là:
 Câu lệnh asign(f, ‘SO.INP’) ; sai (mã lỗi: 3), vì viết sai chính tả từ
khóa assign
 Câu lệnh while not eof(f) do sai (mã lỗi:104), vì tệp chưa được mở để
nhập dữ liệu .
 Câu lệnh writeln(g, ‘Tong cac so duong co trong tep la: ’, s); sai (mã
lỗi: 105), vì tệp chưa được mở để xuất dữ liệu.
 Thiếu câu lệnh đóng tệp. Trong trường hợp này, khi thực hiện biên
dịch thì máy tính không báo lỗi (không sai về mặt cú pháp). Tuy nhiên
sau khi thực hiện chương trình, mở tệp SO.OUT để xem kết quả thì kết
quả không có trong tệp. Nguyên nhân là do chưa thực hiện đóng tệp
nên việc ghi tệp chưa được hoàn tất.
16


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

Giáo viên thực hiện chỉnh sửa chương trình trên thành chương trình hoàn
chỉnh.
Giáo viên chạy thử chương trình cho học sinh quan sát.

- Bước 4. Từ chương trình hoàn chỉnh ở trên, các nhóm tự đối chiếu với câu
trả lời của nhóm mình để hoàn chỉnh chương trình của nhóm.
5) Những lỗi sai cơ bản thường gặp 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ụ: 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 đã 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;

17


 THPT Cao Bá Quát


Sáng kiến kinh nghiệm 2019

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
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ã lỗi : 86) , đúng là : Function.
Chưa khai báo kiểu dữ 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 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
18



 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

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.
II. Một số giải pháp giúp học sinh học tốt lập trình Pascal:
1) Tạo tâm lí thoải mái cho học sinh:
Một trong những yếu tố khiến các em không có hứng thú khi tiếp
xúc với bộ môn này là do giáo viên tạo áp lực cho học sinh. Một số giáo
viên luôn đòi hỏi cao đối với những học sinh nhưng không tìm hiểu xem
liệu học sinh có thể đáp ứng được những yêu cầu đó không. Chính vì vậy
mà ngay từ khi tiếp xúc với các em tôi đã tạo cho các em tâm lí thoải mái,
sự thân thiện, chân thành tin cậy trong các hoạt động dạy và học.
Làm sao để cho học sinh thấy được đối với mỗi học sinh khi ngồi
trên ghế nhà trường chúng ta phải thực sự nổ lực, để tiếp thu những kiến
thức phổ thông sau này có thể học cao hơn hoặc áp dụng vào thực tế, chứ
không phải học chỉ để vượt qua các kì thi mà những kiến thức này lại xem
nhẹ.
Trong quá trình dạy giáo viên phải có thái độ nhẹ nhàng khi các học
sinh mắc khuyết điểm, cư xử khéo léo với các em, xử lí tốt các tình huống
sư phạm, việc đánh giá nhận xét phải công bằng, khách quan và công tâm,
công khai kết quả trong các giờ kiểm tra và nhận xét bài làm của học sinh.
Không nên đánh giá quá thấp sẽ làm cho học sinh chắn nản, nên tạo cho
học sinh một niềm tin khi học môn này.
Phải có kiến thức vững vàng để giải đáp thắc mắc một cách thuyết
phục, khuyết khích các em mạnh dạn hỏi bài khi chưa hiểu. Xây dựng cho

các em thói quen học tập tích cực, động viên kịp thời những học sinh tiến
bộ, cung cấp cho các em phương pháp học tập đúng đắn, khuyến khích các
19


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

em không ngừng cố gắng, tạo điều kiện để học sinh trong lớp đều có cơ
hội phát biểu trong giờ học.

2) Tăng cường sử dụng phương tiện dạy học, thực hành
Có thể nói phương tiện dạy học góp phần quan trọng và quyết định
đến hiệu quả của tiết học. Nếu như không có phương tiện dạy học thì giáo
viên phải làm việc nhiều nhưng kiến thức học sinh thu được lại ít. Đặc biệt
đối với bộ môn Tin học, nếu như không có phương tiện dạy học thì tiết
học lại càng nhàm chán. Nếu như đối với bài 7_ Các thủ tục chuẩn vào ra
đơn giản, giáo viên dạy theo phương pháp thông thường thì học sinh sẽ
không nhớ và không hiểu việc nhập dữ liệu từ bàn phím và đưa dữ liệu ra
màn hình như thế nào. Nhưng nếu như giáo viên sử dụng một chương
trình Pascal đơn giản và minh hoạ cho học sinh thì học sinh sẽ hiểu và nhớ
lâu hơn.
Đối với bài 8_giáo viên kết hợp máy tính và máy chiếu để hướng
dẫn học sinh các bước để soạn thảo, dịch, thực hiện và hiệu chỉnh chương
trình sẽ giúp học sinh nắm vững hơn.
Có thể nói giờ thực hành khá quan trọng với bộ môn Tin học. Nếu
như giáo viên chỉ dạy lí thuyết mà không chú trọng đến thực hành thì sẽ
không khắc sâu được kiến thức cho học sinh đồng thời học sinh không biết
được những lỗi mà mình mắc trong quá trình viết chương trình. Đối với

học sinh vì hầu hết đều ít tiếp xúc với máy tính nên các em rất háo hức
trong chờ tiết thực hành, nên nếu như giáo viên thường xuyên cho các em
thực hành trong giờ dạy cũng như giờ thực hành thì học sinh sẽ rất hào
hứng trong giờ học.
Để giờ thực hành đạt hiệu quả thì cần có sự chuẩn bị thật tốt:
20


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

 Đối với giáo viên: Cần chuẩn bị thật kĩ tiến trình bài thực hành, lựa
chọn nội dung phù hợp với từng lớp. Giáo viên có thể lựa chọn các
chương trình đơn giản đã viết trên lớp làm nội dung buổi thực hành sau
đó có thể thực hành thêm nội dung trong sách giáo khoa vì có những
lớp kiến thức của các em khá kém, các em không nắm bắt được hết nội
dung trong sách giáo khoa của tiết đó.
 Đối với học sinh: Cần tìm hiểu trước nội dung buổi thực hành và phải
mang đầy đủ sách vở cần thiết tránh hiện tượng không nắm được trước
nội dung sẽ không chủ động trong quá trình thực hành.
Trong buổi thực hành giáo viên có thể hướng dẫn trước một số công
việc trên máy chiếu trong phòng thực hành để học sinh quan sát sau đó để
các em tự thực hành. Giáo viên cần phải thường xuyên quan sát trong
phòng máy vì rất nhiều em tranh thủ chơi điện tử hoặc thực hành không
đúng nội dung mà giáo viên yêu cầu.
3) Sử dụng bài giảng điện tử, minh hoạ từ thực tế.
Với sự phát triển của khoa học kĩ thuật và bùng nổ công nghệ thông
tin làm cho tất cả các lĩnh vực đều ảnh hưởng trong đó có giáo dục. Nếu
như trước đây hoạt động dạy và học chủ yếu theo phương pháp truyền

thống và kiến thức học sinh thu nhận được chủ yếu là từ giáo viên thông
qua phương tiện truyền tải chính là sách giáo khoa thì giờ đây trong giờ
học, học sinh không phải nhàm chán chỉ với riêng cuốn sách giáo khoa mà
còn rất nhiều phương tiện truyền thông tin hay và hấp dẫn trong đó có bài
giảng điện tử của giáo viên.
Trong mỗi tiết học nếu như giáo viên sử dụng hợp lí bài giảng điện
tử thì sẽ đạt hiệu quả rất cao. Giáo viên không phải làm việc nhiều nhưng
lại kích thích sự hứng thú tiếp thu bài giảng ở học sinh.
21


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

Trong chương trình Tin học 11 sử dụng rất nhiều thuật toán cơ bản ở
lớp 10, tuy nhiên do học từ đầu năm lớp 10 nên hầu như học sinh không
nắm được . Chính vì vậy việc ôn tập và củng cố những thuật toán này khá
quan trọng đối với học sinh. Nếu như chúng ta chỉ ôn tập theo phương
pháp truyền thống thì sẽ không đạt được kết quả như mong muốn. Hiện
nay trên mạng Internet có rất nhiều tài liệu liên quan đến vấn đề này như
minh hoạ thuật toán rất sinh động và hấp dẫn nếu như giáo viên tích hợp
trong bài giảng điện tử thì việc ôn tập lại những kiến thức này cho học
sinh không có gì quá khó khăn.
Một trong những vấn đề quan trọng để tạo ra thuật toán đó chính là
ý tưởng. Nếu như chúng ta không có ý tưởng nhìn nhận vấn đề đúng đắn
thì không thể tạo ra thuật toán chính xác. Một trong những phương pháp
để truyền đạt lại ý tưởng thuật toán cho học sinh đó là liên hệ gần gũi từ
thực tế giúp học sinh hiểu tốt vấn đề và nhớ lâu.
 Ví dụ 1: Hoán đổi giá trị 2 biến x, y cho nhau

Ban đầu học sinh có thể chưa hiểu rõ công việc trên là như thế nào. Nhưng
nếu như giáo viên đưa ra ý tưởng: Hãy hình dung chúng ta có 2 chiếc cốc
1 chiếc cốc đựng nước và 1 chiếc cốc đựng rượu làm sao để chiếc cốc
đựng nước ban đầu sẽ đựng rượu còn chiếc cốc đựng rượu sẽ đựng nước.
Học sinh sẽ nghỉ ngay ra muốn làm được công việc trên chúng ta chỉ có
thể sử dụng thêm chiếc cốc thứ 3 đóng vai trò là biến trung gian T trong
đoạn chương trình sau:
T:= x; x:= y; y:= T ;
 Ví dụ: Tìm số lớn nhất trong 3 số a, b, c

22


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

Học sinh sẽ rất khó khăn trong việc đưa ra ý tưởng đúng cho thuật toán.
Bây giờ hãy đặt ra vấn đề này cho học sinh: Chúng ta hãy đưa ra cách tìm
bạn cao nhất trong 1 bàn ngồi học có 3 người. Có thể học sinh sẽ đưa ra
nhiều cách trong đó có một cách là so sánh 2 bạn, ban đầu tìm người cao
hơn, sau đó sẽ so sánh người cao hơn với người thứ 3, sẽ tìm được người
cao nhất , đó chính là ý tưởng của thuật toán trên học sinh sẽ nhanh chóng
hiểu ra vấn đề và nhớ kĩ.
Var a,b,c, max : real:
Begin
If a>b then max := a
Else max:= b;
If max< c then max := c;
Write(‘so lon nhat la:’,max);

End.
Việc giáo viên sử dụng những liên hệ gần gũi từ thực tế này giúp
cho quá trình dạy và học diễn ra một cách sôi nổi và hấp dẫn giúp học sinh
chủ động nắm vững kiến thức.
4) Chú trọng đến dạy tư duy thuật toán cho học sinh
Có thể nói mục tiêu chính của môn Tin học không phải là dạy một
ngôn ngữ lập trình cụ thể. Ngôn ngữ lập trình pascal được sử dụng như là
công cụ để chuyển tải kiến thức văn hóa phổ thông về lập trình, về ngôn
ngữ lập trình bậc cao cũng như để rèn luyện kĩ năng lập trình.
Trong phạm vi văn hóa tin học phổ thông, lập trình để giải bài toán
trên máy tính được hiểu theo nghĩa chuyển đổi thuật toán đã có sang
chương trình viết trên ngôn ngữ lập trình bậc cao.
23


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

Do đó ở lớp 10 đã có sẵn một số thuật toán trình bài khá kĩ, nên lớp
11 coi trọng việc cài đặt chương trình cho hầu hết các thuật toán đó. Cần
đảm bảo tính kê thừa, liên thông môn Tin học của 2 lớp 10 và 11. Tạo điều
kiện cho học sinh ôn lại, ghi nhớ lâu dài một số thuật toán căn bản, đặc
trưng trong Tin học như sắp xếp và tìm kiếm.
Ngôn ngữ lập trình Pascal chỉ là ngôn ngữ để chuyển tải thuật toán
nên giáo viên không nên quá đi sâu vào ngôn ngữ mà chủ yếu vẫn là
truyền đạt thuật toán cho học sinh. Đối với mỗi bài tập nào đó giáo viên
cần phải yêu cầu học sinh đưa ra ý tưởng sau đó đến thuật toán, nên
khuyến khích học sinh đưa ra nhiều ý tưởng và thuật toán khác nhau. Sau
đó sẽ phân tích để tìm thuật toán tối ưu.

Ví dụ như trong Sách giáo khoa Tin học 11 có bài tập
Lập trình để giải bài toán cổ sau:
Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu con.
Một trăm chân chẵn
Hỏi có bao nhiêu con mỗi loại
Đối với bài toán trên chúng ta có thể có rất nhiều thuật toán tương ứng với
nhiều chương trình khác nhau.
Chương trình 1:
Var cho, ga : byte;
Begin
For Cho:= 1 to 36 do
For Ga := 1 to 36 do
24


 THPT Cao Bá Quát

Sáng kiến kinh nghiệm 2019

If cho*4 + ga*2 =100 then
Begin
write(‘cho=’, cho:3);
write(‘Ga=’, Ga:3);
end;
End.
Chương trình 2:
Var cho: byte;
Begin

For Cho:= 1 to 36 do
If cho*4 + (36 – cho) *2 =100 then
writeln(‘cho=’ ,cho: 4,’ga=’,36-cho);
End.
Chuong trình 3:
Var cho: byte;
Begin
For cho: =1 to 24 do
If cho*4 + (36-cho)*2= 100 then
write(‘cho=’ ,cho: 4, ‘ga=’,36-cho);
End.
Giáo viên sẽ yêu cầu học sinh đi phân tích xem thuật toán nào là tối
ưu nhất. Trong quá trình phân tích sẽ lôi cuốn học sinh vào tiết học một
cách sôi nổi và hào hứng. Khi đi tìm một ý tưởng, thuật toán cho một bài
toán nào đó học sinh không chỉ ôn tập và rèn luyện kiến thức môn Tin học
mà còn là vận dụng và tổng hợp kiến thức môn Toán và rất nhiều môn học
25


×