Một số biện pháp khắc phục lỗi cơ bản của học sinh khi làm các bài tập liên quan đến kiểu dữ liệu tệp trong chương trình tin học 11 ở tr - Pdf 44

A. PHẦN MỞ ĐẦU
I. Lý do chọn đề tài
Trong chương trình “Tin học 11” các kiểu dữ liệu ở phần đầu là các kiểu dữ
liệu chuẩn và kiểu mảng. Đó là các kiểu dữ liệu được lưu trữ ở bộ nhớ trong
(RAM), đặc điểm của bộ nhớ này là dữ liệu sẽ bị mất khi tắt máy. Với một sô
bài toán có khôi lượng dữ liệu lớn, yêu cầu lưu trữ để xử lý nhiều lần thì dữ liệu
kiểu tệp (file) giải quyết tôt nhất các yêu cầu trên. Tuy nhiên với thời lượng
chương trình dành cho phần tệp không nhiều vì vậy học sinh rất mơ hồ và gặp
nhiều lỗi khi viết chương trình với kiểu dữ liệu này. Vì nhiều thao tác hơn so với
các kiểu dữ liệu khác mà các em cảm thấy phức tạp, khó hiểu, khó vận dụng vào
bài tập dẫn đến mất hứng thú học tập.
Từ thực tiễn giảng dạy về kiểu dữ liệu tệp (file) tôi đã rút ra một sô kinh
nghiệm trong khi hướng dẫn các em làm bài tập ở chương V “Tin học 11” có
hiệu quả tôi viết sáng kiến kinh nghiệm: “Một số biện pháp khắc phục lỗi cơ
bản của học sinh khi làm các bài tập liên quan đến kiểu dữ liệu tệp trong
chương trình Tin học 11 ở trường THCS và THPT Nghi Sơn – huyện Tĩnh
Gia”.
II. Phạm vi và đối tượng nghiên cứu
1. Phạm vi nghiên cứu: Trong đề tài này tôi chỉ xây dựng và đề xuất một sô
biên pháp khắc phục lỗi và hướng dẫn học sinh làm một sô bài tập liên quan đến
kiểu dữ liệu tệp trong chương trình Tin học 11.
2. Đôi tượng nghiên cứu:
Học sinh khôi 11 trường THCS và THPT Nghi Sơn – Tĩnh Gia – Thanh Hóa .
III. Mục đích của đề tài
Giúp học sinh hiểu, nắm vững và tránh được các lỗi thường gặp khi làm bài
tập về tệp trong “chương V - Tin học 11”. Từ đó các em có thể vận dụng và yêu
thích làm các bài tập có sử dụng kiểu dữ liệu tệp.

1



2


tệp trong chương trình Tin học 11 ở trường THCS và THPT Nghi Sơn –
huyện Tĩnh Gia” vào giảng dạy “Chương V-Tin học 11”.
III. Nguyên nhân
Học sinh không nhớ kiến thức cũ để giải quyết các bài tập.
Dữ liệu kiểu tệp khác hoàn toàn với các kiểu dữ liệu các em đã được học.
Bài tập cũng tương đôi phức tạp với mức học của các em.
Các em không hiểu vai trò, ý nghĩa của từng câu lệnh.
IV. Các biện pháp tiến hành để giải quyết vấn đề
Các bài tập giúp học sinh rèn luyện kỹ năng thao tác với tệp và tránh
những lỗi hay gặp.
1. Hướng dẫn học sinh cách tạo tệp văn bản
Cách 1: Tạo tệp có đuôi .Pas
Khi vừa mới làm quen với kiểu dữ liệu tệp, các em chưa hiểu được cách
tạo tệp và kiểm tra dữ liệu trong tệp, vậy nên để thuận tiện cho việc xem kết
quả của thao tác ghi dữ liệu vào tệp và đọc dữ liệu ra từ tệp có đúng hay
không trước hết nên hướng dẫn các em cách tạo tệp và xem dữ liệu trong tệp
ngay trên Pascal với những tệp có phần đuôi là .Pas
Bài tập: Hãy tạo tệp ‘Songuyen.pas’ để lưu trữ các sô nguyên từ 1 đến 10,
mỗi sô cách nhau ít nhất một dấu cách trông.
Hướng dẫn
Bước 1: Khởi động Turbo Pascal (Free Pascal).
Bước 2: Chọn File -> New
Bước 3: Nhập các sô nguyên từ 1 đến 10 mỗi sô cách nhau một dấu cách
trông.
Bước 4: Lưu tệp lại với tên là ‘Songuyen.pas’ (có thể không gõ phần đuôi,
Pascal tự mặc định đuôi là .Pas).
Hướng dẫn học sinh thực hiện trên máy theo các bước nêu trên, sau

Var i,x,N: integer;
f: text;
Begin
assign(f,'dulieu.inp');
rewrite(f);
write('nhap so phan tu cua tep N:'); read(N);
for i:=1 to N do
begin
read(x);
write(f,x, ' ');
end;
close(f);
readln; End.
2. Khắc phục lỗi quên đóng tệp
Bài tập 1: Chương trình sau là chương trình đọc dữ liệu từ tệp văn bản
Songuyen.inp. Tính tổng các phần tử trong tệp và đưa dữ liệu ra tệp
Songuyen.out.
Tệp văn bản Songuyen.inp có cấu trúc:
- Dòng đầu ghi sô nguyên N là sô phần tử của tệp;
- Dòng thứ hai gồm đúng N sô nguyên. Mỗi sô cách nhau một dấu cách
trông.
Tệp văn bản Songuyen.out có cấu trúc: Một sô duy nhất ghi tổng N phần tử
Ví dụ:
Songuyen.inp
5

Songuyen.out
20

12683

Câu hỏi 1: Em hãy nhập chương trình trên và chạy thử. Kiểm tra tệp
Songuyen.out cho kết quả thế nào?
6


Hướng dẫn: Tệp Songuyen.out là tệp trông không có dữ liệu.

Câu hỏi 2: Tìm lỗi trong chương trình dẫn đến tệp songuyen.out là tệp
không có dữ liệu?
Ở câu hỏi này phần lớn không tìm được nguyên nhân là do quên đóng tệp f2.
Chú ý cho học sinh: Mỗi khi thao tác với tệp, khi làm việc với tệp ngoài gán
tên tệp và mở tệp (để đọc hoặc để ghi) thì sau khi làm việc xong phải đóng
tệp. Nếu quên đóng tệp thì khi chạy chương trình sẽ không báo lỗi, nhưng
không thể ghi dữ liệu vào tệp. Vì vậy chương trình trên cần thêm lệnh đóng
tệp f2 như sau:
Program
Var

Baitap1;

i, N, x, S: integer;
f1, f2:text;

Begin
assign(f1,'Songuyen.inp');
reset(f1);
assign(f2,'Songuyen.out');
rewrite(f2);
readln(f1,N);
S:=0;

Hướng dẫn:
Đưa ra một ví dụ tệp văn bản Dulieu.inp để học sinh thấy rõ cấu trúc của tệp:

Hướng dẫn:
Đưa ra hai chương trình cài đặt của câu a và câu b:
Program Baitap2a;
Var i, x, N:integer;
f1,f2:text;
Begin
assign(f1,'Dulieu.inp');
reset(f1);
assign(f2,'Dulieua.out');
rewrite(f2);
readln(f1,N);
for i:=1 to N do
begin
read(f1,x);
write(f2,x:3);
end;
close(f1);
close(f2);
End.

Program Baitap2b;
Var i, x, N:integer;
f1,f2:text;
Begin
assign(f1,'Dulieu.inp');
reset(f1);
assign(f2,'Dulieub.out');

hỏi 2: Hãy quan sát trong chương trình cài đặt “Baitap2a” đoạn lệnh đọc dữ liệu
từ tệp giải thích vì sao khi đọc sô phần tử của tệp N thì dùng câu lệnh Readln
(readln(f1,N);) và khi đọc các phần tử của tệp thì dùng lệnh Read (read(f1,x);)?
Trả lời: Vì cấu trúc tệp Dulieu.inp gồm hai dòng:
- Dòng đầu ghi sô nguyên N là sô phần tử của tệp
- Dòng thứ hai gồm đúng N sô nguyên. Mỗi sô cách nhau một dấu cách
trông.

10


Nên sau khi đọc sô phần tử của tệp N thì con trỏ chuột phải nằm ở đầu dòng
tiếp theo để đọc tiếp dữ liệu vì vậy dùng câu lệnh Readln (readln(f1,N);)
Các phần tử của tệp nằm trên một dòng nên sau khi đọc mỗi phần tử của tệp
con trỏ chuột phải nằm trước phần tử tiếp theo cùng dòng để đọc tiếp cho tới hết
vì vậy dùng câu lệnh Read (read(f1,x);).
Bài tập 3: Cho tệp văn bản Sothuc.inp có cấu trúc:
Gồm các sô thực, mỗi dòng một sô.
Viết chương trình đọc dữ liệu từ tệp, tính và đưa ra tổng các sô trong tệp. Kết
quả đưa ra tệp Sothuc.out
Hướng dẫn:
Một sô câu hỏi hướng dẫn học sinh trước khi viết chương trình:
Câu hỏi 1: Sô lượng phần tử của tệp đã biết trước chưa?
Trả lời: Sô lượng phần tử của tệp chưa biết trước.
Câu hỏi 2: Khi chưa biết sô lượng phần tử của tệp để thao tác đọc/ ghi với tệp
văn bản thường sử dụng hàm chuẩn nào.
Trả lời: Hàm eof(<biến tệp>) trả về giá trị true nếu con trỏ tệp đang chỉ tới cuôi
tệp.
Câu hỏi 3: Em hãy viết đoạn lệnh đọc dữ liệu từ tệp Sothuc.inp và tính tổng các
phần tử của tệp.

Begin
assign(f1,'Sothuc.inp');
reset(f1);
assign(f2,'Sothuc.out');
rewrite(f2);
s:=0;
while not eof(f1) do
begin
readln(f1,x);
S:=S+x;
end;
write(f2,S:6:2);
close(f1);
close(f2);
End.
Sau khi thực hiện chương trình đưa tệp Sothuc.out để các em quan sát:
12


Tệp Sothuc.out thu được sau khi thực hiện chương trình:

V. Hiệu quả của SKKN
Trong năm học 2014 - 2015 tôi thấy học sinh khi làm bài tập “Chương VTin học 11” thường gặp phải những lỗi giông nhau.
Để khắc phục, năm 2015 – 2016 và năm 2016 - 2017 tôi đã vận dụng các
phương pháp giảng dạy trên thì kết quả đã khác hơn rất nhiều, học sinh đã
hiểu bài và làm bài tập tôt hơn. Các lỗi thường gặp các em đã sửa được nhất
là những em say mê với môn học, tham gia đội tuyển học sinh giỏi môn tin
của trường các kỹ năng thao tác với tệp là rất quan trọng.
Kết quả được thể hiện qua các bảng liệt kê tỷ lệ bài kiểm tra nội dung
kiến thức chương V qua các năm:

11B

Sĩ sô
40
39

Sô lượng TB trở lên
39
31

Tỉ lệ % trên TB
97,5%
79,4%

13


C.KẾT LUẬN
1. Những mặt đạt được và chưa đạt được
Những mặt đạt được
- Phần lớn học sinh nắm được kiến thức của các bài học vận dụng
vào làm các bài tập.
- Các em đã khắc phục được những lỗi hay mắc phải khi viết chương
trình sử dụng kiểu dữ liệu tệp.
- Có thái độ tích cực trong học tập, yêu thích môn học hơn.
- Các em có hứng thú hơn trong các giờ thực hành
Những mặt chưa đạt được
- Một sô em tiếp xúc ít với máy tính nên còn chậm trong các thao tác
thực hành.
- Một sô học sinh còn chậm trong việc áp dụng lý thuyết vào bài tập.


15




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