Tải bản đầy đủ (.pdf) (20 trang)

SÁNG KIẾN KINH NGHIỆM SKKN xây DỰNG một số bài tập THỰC HÀNH với tệp

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 (504.36 KB, 20 trang )

SÁNG KIẾN KINH NGHIỆM

ĐỀ TÀI:
"XÂY DỰNG MỘT SỐ BÀI TẬP THỰC HÀNH VỚI TỆP"

1


A .PHẦN MỞ ĐẦU
I. LÝ DO CHỌN ĐỀ TÀI
- Hiện nay trong phân phối chƣơng trình Tin học THPT có sự thay đổi giảm tải đối
với việc học môn Tin học. Có những bài đƣợc lƣợc bớt đi 1 phần, một mục hoặc có bài
học sinh không phải học mà chỉ đọc tham khảo thêm. Bên cạnh đó để đảm bảo đủ số tiết
học nên có những tiết đƣợc bổ sung nhƣ tiết bài tập hoặc bài tập thực hành, nhằm đảm
bảo cho học sinh nắm rõ hơn, vững hơn những phần lý thuyết đã đƣợc học. Tuy nhiên với
những tiết bài tập hoặc bài tập thực hành này sách giáo khoa, cũng nhƣ sách giáo viên
chƣa có những hƣớng dẫn cụ thể để đạt đƣợc một cái chuẩn chung nhƣ những bài lý
thuyết. Thông thƣờng giáo viên sẽ linh động dựa vào điều kiện cơ sở vật chất của nhà
trƣờng, đặc biệt là tuỳ vào đối tƣợng học sinh của mình để cung cấp cho học sinh những
bài tập nhằm củng cố cho học sinh những kiến thức ở phần lý thuyết đã học.
- Tin học 11 là một modul chƣơng trình tƣơng đối khó trong hệ thống modul kiến
thức Tin học khối THPT. Ở đây học sinh đƣợc làm việc với ngôn ngữ lập trình và một
ngôn ngữ lập trình cụ thể, với thực tiễn cơ sở vật chất của trƣờng THPT Đông Sơn 1
chúng tôi sử dụng ngôn ngữ lập trình Pascal để cùng làm việc với học sinh trong học
phần này.
Theo phân phối chƣơng trình, ở chƣơng 5: Tệp và thao tác với tệp của Tin học 11
có 2 tiết lý thuyết và 2 tiết bài tập thực hành. Phần lý thuyết, sách giáo khoa cung cấp đã
khá đầy đủ và dễ hiểu đối với học sinh. Tuy nhiên phần bài tập thực hành thì chƣa có.
Với lý do trên tôi mạnh dạn đề xuất "Một số bài tập thực hành về cách làm việc
với tệp" cho 2 tiết 39, 40 nhằm giúp học sinh nắm vững hơn về cách làm việc với tệp.
Tuy giờ dạy đã dựa vào đối tƣợng học sinh, vào trọng tâm kiến thức chƣơng trình,


nhƣng vẫn còn mang tính chất cá nhân đề xuất, mong đƣợc sự góp ý của bạn đọc và đồng
nghiệp để tiết học trở thành chuẩn chung trong phân phối chƣơng trình.
II. MỤC ĐÍCH CỦA ĐỀ TÀI
Sử dụng các bài toán cụ thể trƣớc hết để học sinh nắm đƣợc cú pháp, ý nghĩa của các thao
tác xử lý tệp. Và thông qua các ví dụ đó hƣớng dẩn học sinh sử dụng thuần thục, linh
động khi xử lý các dữ liệu trong tệp.
III. NHIỆM VỤ CỦA ĐỀ TÀI .

2


Đƣa ra một số bài tập về tệp để học sinh thảo luận, làm việc qua đó nắm vững câu các
thao tác với tệp và cách làm việc với tệp. Hình thành ở học sinh kỹ năng phân tích, xử lý
các vấn đề liên quan đến kiểu dữ liệu tệp trong quá trình lập trình.
IV. ĐỐI TƢỢNG NGHIÊN CỨU.
Học sinh khối 11 tại trƣờng THPT ĐÔNG SƠN 1.
Sử dụng máy tính để chạy các chƣơng trình về thao tác với tệp.
V. PHƢƠNG PHÁP NGHIÊN CỨU
- Kết hợp thực tiễn giáo dục ở trƣờng THPT ĐÔNG SƠN 1.
- Có tham khảo các tài liệu về ngôn ngữ lập trình Pascal và tài liệu về sáng kiến
kinh nghiệm.

3


B. NỘI DUNG
I .CƠ SỞ LÝ LUẬN .
Khi học sinh học bài học Bài 14 - 15: Kiểu dữ liệu tệp - Thao tác với tệp. Học sinh
đã có rất nhiều khó khăn, nhầm lẫn trong việc xác định các thao tác xử lý tệp.
II. NỘI DUNG VÀ GIẢI PHÁP THỰC HIỆN

1. CÁC THAO TÁC VỚI TỆP
* Khai báo tệp văn bản:
Tệp văn bản đƣợc khai báo trực tiếp trong phần khai báo biến:
Var <Bientep>:Text;
* Mở tệp để ghi dữ liệu:
Để mở một tệp chuẩn bị lƣu trữ dữ liệu, ta sử dụng 2 thủ tục chuẩn sau đây:
ASSIGN(biến tệp, tên tệp);
REWRITE(biến tệp);
Trong đó:
Biến tệp: là tên biến tệp đã khai báo sau từ khóa VAR
Tên tệp: Là tên do ta chọn để ghi dữ liệu vào đĩa.
Ví dụ : ASSIGN(f, ‘a:\baitap.txt’);
REWRITE(f); {khởi tạo tệp rỗng}
Sau 2 thủ tục trên, để tiến hành ghi dữ liệu vào tệp ta dùng thủ tục WRITE(…),
hoặc WRITELN(…..):
Cách viết:
WRITE(biến tệp, các giá trị cần ghi vào tệp);
WRITELN(biến tệp, các giá trị cần ghi vào tệp);
* Mở tệp để đọc dữ liệu:
Để mở một tệp chuẩn bị lƣu trữ dữ liệu, ta sử dụng 2 thủ tục chuẩn sau đây:
ASSIGN(biến tệp, tên tệp);
RESET(biến tệp);
Trong đó:

4


Biến tệp: là tên biến tệp đã khai báo sau từ khóa VAR
Tên tệp: Là tên do ta chọn để ghi dữ liệu vào đĩa.
Ví dụ :


ASSIGN(f, ‘a:\baitap.txt’);
RESET(f);

Sau 2 thủ tục trên, để tiến hành đọc dữ liệu vào tệp ta dùng thủ tục READ(…), hoặc
READLN(…..):
Cách viết:
READ(biến tệp, các giá trị cần ghi vào tệp);
READLN(biến tệp, các giá trị cần ghi vào tệp);
* Cuối cùng, ta phải đóng tệp bằng thủ tục:
CLOSE(biến tệp);
2. BÀI TẬP
Bài toán 1:
Cho số nguyên dƣơng n (n≤12).
Yêu cầu: hãy tính n!
Dữ liệu vào từ file ‘BT01.INP’ chứa giá trị của số nguyên dƣơng n.
Kết quả ghi vào file ‘BT01.OUT’ là kết quả của n!

Xác định bài toán:
Input: giá trị của n.
Output: kết quả của n!
Giáo viên liên tƣởng cho học sinh:
Trƣớc khi học bài này:
Input: giá trị của n (dữ liệu vào)  đƣợc nhập từ bàn phím
Output: kết quả (dữ liệu ra)  đƣợc in ra màn hình
Đến bài này:
Input: giá trị của n (dữ liệu vào)  đƣợc lấy (đọc) từ file dữ liệu
5



Output: kết quả (dữ liệu ra)  đƣợc đƣa (ghi) vào file kết quả
Khi đó để giải 1 bài toán, ngƣời viết chƣơng trình phải tƣơng tác với 3 file:
File chƣơng trình (nếu dùng Pascal thì có phần mở rộng là PAS)
File chứa dữ liệu vào (thƣờng ngƣời ta để phần mở rộng là INP)
File chứa dữ liệu ra – ghi kết quả (thƣờng ngƣời ta để phần mở rộng là OUT)
Quan hệ 3 file trong bài toán 1
BT01.PAS

BT01.INP

5

var

BT01.OUT

n,i:byte;
gt:longint;
f:text;

120

begin
assign(f,'BT01.INP');
reset(f);
read(f,n);
close(f);
gt:=1;
for i:=2 to n do
gt:=gt*i;

assign(f,'BT01.OUT');
rewrite(f);
writeln(f,gt);
close(f);
end.

Giải thích: dữ liệu (giá trị của n) đƣợc lấy từ file ‘BT01.INP’ cho chƣơng trình
BT01.PAS, sau khi tính đƣợc kết quả (n!) ta ghi kết quả đó vào file ‘BT01.OUT’
Mô hình quan hệ chung

6


File Chƣơng
trình

File Input

File
Output

Giáo viên trình bày cách đọc và ghi file
Một bài toán mà dữ liệu đƣợc đọc và ghi vào file thƣờng có các thao tác chính nhƣ sau:
Khai báo biến file
Đọc dữ liệu trong file
Tính toán để có kết quả
Lấy kết quả ghi vào file
Khai báo biến file:
Var <tên biến file>:text;


Var f:text;
Ý nghĩa: khai báo biến f có kiểu file văn bản.
Đọc dữ liệu trong file:
Assign(<biến file>,<tên file>);reset(<biến file>);
Read(<biến file>,<danh sách biến>);
Hoặc Readln(<biến file>,<danh sách biến>);
Close(<biến file>);

{dòng 1} assign(f,'BT01.INP');reset(f);
{dòng 2} read(f,n);
{dòng 3} close(f);
Ý nghĩa:
Dòng 1: Mở file ‘BT01.INP’ để đọc nội dung
7


Dòng 2: Đọc 1 giá trị số nguyên trong file ‘BT01.INP’ gán cho biến n.
Dòng 3: Đóng file ‘BT01.INP’ để an toàn dữ liệu
Ghi kết quả vào file:
Assign(<biến file>,<tên file>);rewrite(<biến file>);
write(<biến file>,<danh sách biến hay kết quả>);
Hoặc writeln(<biến file>,quả>);
Close(<biến file>);

{dòng 1} assign(f,'BT01.OUT');rewrite(f);
{dòng 2} writeln(f,gt);
{dòng 3} close(f);
Ý nghĩa:
Dòng 1: Mở file ‘BT01.OUT’ để ghi nội dung

Dòng 2: Ghi giá trị của gt vào file ‘BT01.OUT’.
Dòng 3: Đóng file ‘BT01.OUT’ để an toàn dữ liệu.


Một vài điều cơ bản cần quan tâm:

Cấu trúc của file văn bản:
Dữ liệu trong file văn bản là các ký tự (bảng mã ASCII). Có một số hàm chuẩn thƣờng
dùng trong khi đọc/ghi tệp văn bản là:
* Hàm EoLn(<biến file>) : Trả về giá trị True nếu con trỏ tệp đang chỉ tới cuối dòng.
* Hàm Eof(<biến file>): Trả về giá trị True nếu con trỏ tệp đang chỉ tới cuối tệp.
Ví dụ về hình ảnh mô tả cấu trúc 1 file văn bản (chữ in đậm trong file sẽ không được thể
hiện)
File văn bản
5 Eoln
7 3 8 6 9 Eoln
4 5 6 7 9 Eoln
Eof
8


Thủ tục đọc file: Read(<biến file>,<danh sách các biến>)
Với thủ tục này, ta có thể hiểu nhƣ sau: đầu đọc sẽ đọc lần lƣợt các giá trị trong file gán
tuần tự cho các biến có trong danh sách biến của thủ tục, sau đó đầu đọc không thực hiện
việc xuống đầu dòng tiếp theo.
Thủ tục đọc file: Readln(<biến file>,<danh sách các biến>)
Giống nhƣ thủ tục Read, nhƣng điểm khác biệt là sau khi thực hiện đọc và gán giá trị cho
biến xong thì đầu đọc sẽ xuống đấu dòng tiếp theo.
Thủ tục ghi file: write(<biến file>,<danh sách biến hay kết quả>);
hoặc


writeln(<biến file>,<danh sách biến hay kết quả>);

Trong thao tác với file giống nhƣ việc in kết quả ra màn hình (chỉ khác là thay vì ta thực
hiện in kết quả ra màn hình nhƣ thế nào thì sẽ ghi mọi thứ vào file nhƣ vậy).

Bài toán 2: Cho một số số nguyên dƣơng n (n≤12).
Yêu cầu: hãy tính n! của mỗi số.
Dữ liệu vào từ file ‘BT02.INP’ chứa giá trị của một số số nguyên dƣơng n.
Kết quả ghi vào file ‘BT02.OUT’ là kết quả của n!. Mỗi dòng trong file dữ liệu vào chứa
một giá trị của n và tƣơng ứng với mỗi giá trị của n sẽ có một kết quả trong file dữ liệu ra.

Cũng giống nhƣ bài toán 1, nhƣng mỗi dòng trong file dữ liệu vào chứa một giá trị của n
và tƣơng ứng với mỗi giá trị của n sẽ có một kết quả trong file dữ liệu ra.
Bài giải tham khảo:
var

n,i:byte;
gt:longint;
9


f,g:text; {dùng 2 biến file f và g}
begin
assign(f,'BT02.INP');reset(f); {biến file f để làm file đọc dữ liệu}
assign(g,'BT02.OUT');rewrite(g); {biến file g làm file ghi dữ liệu}
while( not Eof(f)) do {đọc trong khi chưa kết thúc file}
begin
read(f,n); {hoặc readln(f,n) đều được}
gt:=1;

for i:=2 to n do
gt:=gt*i;
writeln(g,gt);
end;
close(f);
close(g);
end.
Bài toán 3:
Cho một dãy số nguyên gồm n phần tử.
Yêu cầu: Tìm giá trị lớn nhất
Dữ liệu vào từ file ‘BT03.INP’
Dòng đầu là giá trị của n (n≤100).
Dòng thứ hai ghi n phần tử của dãy (mỗi phần tử có giá trị tuyệt đối không vƣợt quá 30000,
hai phần tử kế nhau cách ít nhất một khoảng trắng)
Kết quả ghi vào file ‘BT03.OUT’ ghi giá trị tìm đƣợc.

Bài giải tham khảo:
var

a:array[1..100] of integer;

10


n,i:byte;
max:integer;
f:text;
begin
assign(f,'BT03.INP');reset(f);
readln(f,n); {Đọc số lượng phần tử gán cho biến n rồi đầu đọc xuống hàng}

for i:=1 to n do
read(f,a[i]);
close(f);
max:=a[1];
for i:=2 to n do
if maxassign(f,'BT03.OUT');
rewrite(f);
writeln(f,max);
close(f);
end.
Bài toán 4: Cho nhiều dãy số, cứ mỗi một bộ hai dòng trong file sẽ mô tả một dãy số
nguyên..
Yêu cầu: Tìm giá trị lớn nhất của mỗi dãy.
Dữ liệu vào từ file ‘BT04.INP’. Với mỗi bộ 2 dòng:
Dòng đầu là giá trị của n (n≤100).
Dòng thứ hai ghi n phần tử của dãy (mỗi phần tử có giá trị tuyệt đối không vƣợt quá 30000,
hai phần tử kế nhau cách ít nhất một khoảng trắng)
Kết quả ghi vào file ‘BT04.OUT’ ghi giá trị tìm đƣợc. Tƣơng ứng một dãy số sẽ có một kết
quả ghi trên mỗi dòng khác nhau trong file dữ liệu ra.

11


Bài giải tham khảo:
var

a:array[1..100] of integer;
n,i:byte;
max:integer;

f,g:text;

begin
assign(f,'BT04.INP'); reset(f);
assign(g,'BT04.OUT'); rewrite(g);
while (not Eof(f)) do
begin
readln(f,n);
for i:=1 to n do
read(f,a[i]);
readln(f); {Đưa đầu đọc xuống dòng tiếp theo để đọc dãy số mới}
max:=a[1];
for i:=2 to n do
if maxwriteln(g,max);
end;
close(f);

close(g);

end.

12


Bài toán 5:
Cho n dãy số nguyên.
Yêu cầu: tìm tổng của các phần tử của từng dãy
Dữ liệu vào từ file ‘BT05.INP’ gồm n dòng, mỗi dòng là một dãy số (mỗi dãy có tối đa 100
phần tử và mỗi phần tử có giá trị tuyệt đối không quá 30000; hai phần tử đứng kế nhau cách

nhau ít nhất một khoảng trắng).
Kết quả ghi vào file ‘BT05.OUT’ gồm n dòng mỗi dòng là một kết quả tìm đƣợc tƣơng ứng
với dữ liệu trong file input.

Bài giải tham khảo:
var

a:array[1..100] of integer;
n,m,i,j:byte;
s:longint;
f,g:text;

begin
assign(f,'BT05.INP');reset(f);
assign(g,'BT05.OUT');rewrite(g);
for i:=1 to n do {đọc lần lượt n dòng tương ứng với n dãy số}
begin
m:=0; {m là số phần tử của dãy số}
while (not Eoln(f)) do {trong khi chưa kết thúc dòng}
begin
m:=m+1;
read(f,a[m]);
end;
readln(f); {Đưa đầu đọc xuống dòng tiếp theo để đọc dãy số mới}
s:=0;
for j:=1 to m do s:=s+a[j];
writeln(g,s);
13



end;
close(f);
close(g);
end.
Bài toán 6:
Cho một chuỗi ký tự có tối đa 255 ký tự.
Yêu cầu: hãy cho biết có bao nhiêu ký tự ‘a’.
Dữ liệu vào từ file ‘BT06.INP’ chứa chuỗi ký tự đã cho.

Bài
giải
tham khảo:

Kết quả ghi vào file ‘BT06.OUT’ ghi số lƣợng ký tự ‘a’ tìm đƣợc

g;

var
s:strin

i,dem:
byte;
f:text;
begin
assign(f,'BT06.INP');reset(f);
readln(f,s); {đọc toàn bộ chuỗi thì phải dùng Readln}
close(f);
dem:=0;
for i:=1 to length(s) do
if s[i]=’a’ then

dem:=dem+1;
assign(f,'BT06.OUT');rewrite(f);
writeln(f,dem);
close(f);
end.

14


Bài toán 7: Cho một chuỗi ký tự.
Yêu cầu: hãy cho biết có bao nhiêu ký tự ‘a’.
Dữ liệu vào từ file ‘BT07.INP’ chứa chuỗi ký tự đã cho.

Bài
giải
tham khảo:
var
ch:ch

Kết quả ghi vào file ‘BT07.OUT’ ghi số lƣợng ký tự ‘a’ tìm đƣợc

ar;
i:byte;
dem:longint;
f:text;
begin
assign(f,'BT07.INP');reset(f);
dem:=0;
while (not Eoln(f)) do
begin

read(f,ch); {đọc từng ký tự thì dùng read}
if ch=’a’ then dem:=dem+1;
end;
close(f);
assign(f,'BT07.OUT');rewrite(f);
writeln(f,dem);
close(f);
end.
Bài toán 8:
Cho dãy số nguyên.
Yêu cầu: Hãy cho biết dãy số đó có số nguyên tố nào hay không?
Dữ liệu vào từ file ‘BT08.INP’ mỗi dòng là một dãy số (có tối đa 100 phần
tử; mỗi phần tử có giá trị tuyệt đối không quá 109; hai phần tử cách nhau một
khoảng trắng).
Kết quả ghi vào file ‘BT08.OUT’ tƣơng ứng một dãy số trong file input là
15
một dòng ghi số 1 nếu dãy đó có số nguyên tố, ngƣợc lại ghi 0.

Bài
giải
tham khảo:
var
x,i:lon
gint;


ngto:boolean;
f,g:text;
begin
assign(f,'BT08.INP');reset(f);

assign(g,'BT08.OUT');rewrite(g);
while (not Eof(f)) do
begin
while (not Eoln(f)) do
begin
read(f,x);
{đoạn chương trình kiểm tra số nguyên x có
phải là nguyên tố hay không?}
ngto:=true;
if x<2 then ngto:=false
else
for i:=2 to trunc(sqrt(x)) do
if (x mod i=0) then
begin
ngto:=false;
break; {thoát khỏi lặp for}
end;
if (ngto=true) then break; {thoát khỏi lặp
while not Eoln(f) trong tr. hợp có số nguyên tố}
end;
if (ngto=true) then writeln(g,1)
else writeln(g,0);
readln(f); {đưa đầu đọc xuống hàng tiếp theo}
end;
16


close(f);

close(g);


end.

Bài toán 9:
Cho hai số nguyên dƣơng a và b.
Yêu cầu: Hãy tìm ƣớc chung lớn nhất của hai số đó!
Dữ liệu vào từ file ‘BT09.INP’ gồm nhiều dòng, mỗi dòng chứa một cặp giá
trị của a và b (a, b≤109; hai số cách nhau một khoảng trắng).
Kết quả ghi vào file ‘BT09.OUT’ tƣơng ứng với mỗi dòng trong file input là
một kết quả.
Ví dụ:

Bài
giải
tham khảo:
var
a,b:lo
ngint;
f,g:tex
t;

BT09.INP

BT09.OUT

begin

26
7 10


2
1

assign
(f,‘BT09.IN
P’);reset(f);
assign

(g,‘BT09.OUT’);rewrite(g);
while (not Eof(f)) do
begin
readln(f,a,b);
{đoạn chương trình tìm ước chung lớn nhất của 2 số
nguyên dương a và b}
repeat
if (a>b) then a:=a-b;
if (auntil (a=b);
writeln(g,a);
end;
close(f);

close(g);
17


end.
Bài toán 10:
Cho số nguyên dƣơng n.
Yêu cầu: Hãy đếm số lƣợng chữ số 0 tận cùng của n!

Dữ liệu vào từ file ‘BT10.INP’ gồm nhiều dòng, mỗi dòng chứa một giá trị
của n (n≤109).
Kết quả ghi vào file ‘BT10.OUT’ tƣơng ứng với mỗi dòng trong file input là
một kết quả.
Ví dụ:

n,dem:longint;
BT10.INP

BT10.OUT

f,g:text;
3

0
2

10

begin

Bài
giải
tham khảo:

assign(f,‘BT10.INP’);reset(f);
assign(g,‘BT10.OUT’);rewrite(g);
while (not Eof(f)) do
begin
readln(f,n);

{đoạn chương trình đếm số lượng chữ số 0 tận cùng của n!}
dem:=0;
while (n>=5) do
begin
dem:=dem+(n div 5);
n:=n div 5;
end;
writeln(g,dem);
end;
close(f);

close(g);

end.
18

var


3. KẾT QUẢ THU ĐƯỢC.
Trong quá trình trao đổi, thảo luận, trình bày học sinh đã thấy sáng tỏ và dễ dàng nhận ra
cách làm việc khoa học của tệp, các em tỏ ra hăng hái làm việc, chủ động viết chƣơng
trình thực hiện các bài toán làm việc với tệp mà giáo viên đƣa ra.
Số liệu cụ thể khi thực hiện đề tài :
Kết quả của lớp 11A8 ( sĩ số 42)
Số HS làm đúng

Số HS làm sai

Số HS không có lời giải


Bài 1

30

8

4

Bài 2

28

10

4

Bài 3

32

7

3

Bài 4

32

6


4

Kết quả của lớp 11A6( sĩ số 45)
Số HS làm đúng

Số HS làm sai

Số HS không có lời giải

Bài 5

35

7

3

Bài 6

36

6

3

Bài 7

37


6

2

Bài 8

35

7

3

19


C. KẾT LUẬN VÀ ĐỀ XUẤT
I. KẾT LUẬN
Ngôn ngữ lập trình nói chung đóng vai trò rất quan trọng trong việc xây dựng các chƣơng
trình ứng dụng để phục vụ cho cuộc sống. Nhờ sự phát triển của tin học trong đó các nhà
lập trình chuyên nghiệp đóng vai trò không nhỏ mà hiện nay hầu hết các lĩnh vực trong
xã hội đã ứng dụng đƣợc tin học để giải quyết công viêc nhanh, hiệu quả và chính xác
hơn.
Hiện nay, ngôn ngữ lập trình Pascal đã trở thành ngôn ngữ lập trình phổ biến nhất trên
thế giới sử dụng trong lĩnh vực giảng dạy.
Đề tài này mang tính thực tiễn rất cao cụ thể là: trong tiết học bài tập các em học sinh đã
chủ động để tìm, nắm vững cách làm việc với tệp qua đó tiếp tục giải quyết đƣợc các bài
toán lập trình tiếp theo. Các em đã khá rõ ràng về sự độc lập dữ liệu, độc lập chƣơng trình
(Code), độc lập kết quả.
Kết quả là có rất nhiều em đã dễ dàng vận dụng các thao tác với tệp để làm việc với tệp
để giải các bài toán tệp tiếp theo.

II. ĐỀ XUẤT
1. VỚI SỞ
Phổ biến rộng rãi các SKKN có giải để các giáo viên trong tỉnh tham khảo và học tập.
2. VỚI TRƯỜNG
Tổ chức các lớp ôn tập theo chuyên đề, ôn luyện, kiểm tra, đánh giá việc ôn tập của học
sinh.
Sáng kiến kinh nghiệm của tôi chắc hẳn không thể tránh khỏi thiếu sót. Rất mong đƣợc
sự giúp đỡ đóng góp của ban giám khảo, các đồng nghiệp để SKKN của tôi đƣợc hoàn
thiện hơn và công việc dạy học của tôi đạt kết quả cao hơn.

20



×