
SỞ GIÁO DỤC VÀ ĐÀO TẠO NAM ĐỊNH
TRƯỜNG THPT TRẦN HƯNG ĐẠO
---------------------------------
SÁNG KIẾN KINH NGHIỆM
RÈN LUYỆN KĨ NĂNG LẬP TRÌNH VỚI TỆP
TỪ CÁC BÀI TOÁN CƠ BẢN TRONG MÔN TIN HỌC LỚP 11
Tác giả : Phạm Thị Khánh
Trình độ chuyên môn: Cử nhân
Chức vụ: Giáo viên Tin học
Nơi công tác: Trường THPT Trần Hưng Đạo
Nam Định, tháng 5 năm 2017

Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học lớp 11
Giáo viên: Phạm Thị Khánh 2 Trường THPT Trần Hưng Đạo
BÁO CÁO SÁNG KIẾN
I. Điều kiện hoàn cảnh tạo ra sáng kiến
1. 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. Để đả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.
2. Các tiết bài tập hoặc bài tập thực hành trong sách giáo khoa, hướng dẫn cụ thể
để đạt được một cái chuẩn chung như những bài lý thuyết. Do đó giáo viên sẽ linh
hoạt 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.
3. 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ì chưa có;
phần ví dụ chưa đủ để học sinh nắm vững và áp dụng được hết các thao tác với tệp.
II. Mô tả giải pháp
1. Thực trạng (trước khi có sáng kiến)
Một số khó khăn trong dạy học nội dung Tệp và thao tác với tệp:
- Học sinh không nhớ về khái niệm và tác dụng của việc sử dụng tệp (đã học ở
lớp 10).
- Học sinh không nắm vững trình tự các bước để viết chương trình với tệp.
- Học sinh không có kĩ năng đọc dữ liệu với các dạng dữ liệu và cách lưu trữ dữ
liệu trong tệp văn bản.
- Trong các tiết thực hành học sinh rất lúng túng khi đang lập trình với việc nhập
dữ liệu từ bàn phím chuyển sang đọc dữ liệu từ tệp văn bản.
- Giáo viên thường rất mất thời gian trong việc hướng dẫn học sinh viết chương
trình có sử dụng tệp.
2. Giải pháp
PHẦN 1: Hướng dẫn phần lí thuyết về vai trò của kiểu tệp trong lập trình và các
thao tác làm việc với tệp

Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học lớp 11
Giáo viên: Phạm Thị Khánh 3 Trường THPT Trần Hưng Đạo
Giáo viên định hướng cho học sinh tại sao nên sử dụng tệp khi lập trình giải
toán; điểm khác biệt giữa việc lập trình từ bàn phím và lập trình sử dụng tệp văn bản.
Do đặc điểm của bộ nhớ trong nên ta phải sử dụng tệp để lưu trữ dữ liệu lâu dài
với dung lượng lớn. Khi lập trình giải một bài toán trên máy tính với dữ liệu Input
nhập vào từ bàn phím và in kết quả ra màn hình thì không lưu trữ được kết quả trên
máy tính. Việc lập trình với tệp không những lưu trữ được kết quả bài toán lâu dài mà
với một bộ Input có thể dùng để giải nhiều hơn một bài toán. Hơn nữa kết quả của
một bài toán có thể được dùng làm dữ liệu vào cho bài toán khác.
Với các bài toán đã học và thực hành:
+ Input: dữ liệu bài toán cho (dữ liệu vào) được nhập từ bàn phím
+ Output: kết quả của bài toán (dữ liệu ra) được in ra màn hình
Khi lập trình với tệp:
+ Input: dữ liệu bài toán cho (dữ liệu vào) được lấy (đọc) từ file dữ liệu
(thường có phần mở rộng là INP)
+ Output: kết quả của bài toán (dữ liệu ra) được đưa (ghi) vào file dữ liệu
khác (thường có phần mở rộng là OUT)
Khi đó để giải một bài toán, người lập trình phải tương tác với 3 tệp:
Để thực hiện được sự tương tác trên ta cần sử dụng các thao tác làm việc với tệp
như sau:
1. Khai báo tệp Var <danh sách biến tệp> : Text;
2. Mở tệp để đọc dữ liệu ASSIGN(biến tệp, tên tệp); RESET(biến tệp);
3. Mở tệp để ghi dữ liệu ASSIGN(biến tệp, tên tệp); REWRITE(biến tệp);
4. Đọc dữ liệu từ tệp READ(biến tệp, danh sách biến);
READLN(biến tệp, danh sách biến);
5. Ghi dữ liệu vào tệp WRITE(biến tệp, danh sách kết quả);
WRITELN(biến tệp, danh sách kết quả);
Tệp dữ liệu
vào Input
(.INP)
Tệp chương trình
(.PAS)
Tệp dữ liệu
ra Output
(.OUT)

Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học lớp 11
Giáo viên: Phạm Thị Khánh 4 Trường THPT Trần Hưng Đạo
6. Đóng tệp bằng thủ tục CLOSE(biến tệp);
Chú ý: Giáo viên nên giải thích rõ các thành phần trong các thủ tục và lấy ví dụ
minh họa
Trình tự viết chương trình:
PHẦN 2: Rn luyện viết chương trình với các bài toán đc ghi d liệu là giá trị số
đơn gin
VD1: Cho 2 số nguyên a và b.
Yêu cầu: Tính tổng 2 số a, b.
Input: Đọc từ tệp Tong2so.Inp chứa 2 số nguyên a và b.
Output: Ghi vào tệp Tong2so.Out kết quả tìm được.
Ví dụ:
Tong2so.Inp
Tong2so.Out
5 4
9
Khai báo biến tệp văn bản và các biến cần thực hiện tính
toán
Mở tệp .Inp để đọc giá trị với Assign và Reset
Mở tệp .Out để ghi kết quả với Assign và Rewrite
Đọc dữ liệu từ tệp .Inp với Read hoặc Readln
Xử lý các dữ liệu đã đọc
Ghi các kết quả vào tệp .Out với Write hoặc Writeln
Đóng các tệp đã mở bằng lệnh CLose

Rèn luyện kĩ năng lập trình với tệp từ các bài toán cơ bản trong môn Tin học lớp 11
Giáo viên: Phạm Thị Khánh 5 Trường THPT Trần Hưng Đạo
Chương trình:
Program Tong2so;
Uses crt;
Var f1, f2: Text; a, b, S: Integer;
Begin
Assign(f1, ‘Tong2so.Inp’); Reset(f1);
Assign(f2, ‘Tong2so.Out’); Rewrite(f2);
Read(f1, a, b); S := a + b;
Write(f2, S); Close(f1); Close(f2);
End.
VD2: Cho 5 số x, y, a, b, R.
Yêu cầu: Tính giá trị của biểu thức Z với
xy
Zxy
Input: Đọc từ tệp Tinh.Inp chứa các số lần lượt x, y, a, b, R
Output: Ghi vào tệp Tinh.Out kết quả tìm được.
Ví dụ:
Tinh.Inp
Tinh.Out
Tinh.Inp
Tinh.Out
5 -8 3 6 2.3
-3.000
5 -8 3 6 14.3
13.000
Chương trình:
Program tinh;
Var f1, f2 : text; x, y, a, b, r, z : real;
Begin
Assign(f1, 'tinh.inp'); Reset(f1);
Assign(f2, 'tinh.out'); Rewrite(f2);
Readln(f1, x, y, a, b, r);
If sqrt(sqr(x-a)+sqr(y-b)) <= r then z := abs(x) + abs(y)
else z := x + y;
Write(f2, z:10:3); Close(f1);Close(f2);
End.
nếu điểm (x, y) thuộc hình tròn bán kính r, tâm (a, b).
trong trường hợp còn lại.

