S GIÁO DỤC VÀ ĐÀO TẠO NAM ĐỊNH
TRƯỜNG THPT TRẦN HƯNG ĐẠO
---------------------------------
SÁNG KIẾN KINH NGHIM
RÈN LUYỆN KĨ NĂNG LẬP TRÌNH VỚI TP
T CÁC BÀI TOÁN CƠ BẢN TRONG MÔN TIN HỌC LP 11
Tác gi : Phm Th Khánh
Trình đ chuyên môn: C nhân
Chc v: Giáo viên Tin hc
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 tp t các bài toán cơ bản trong môn Tin học lp 11
Giáo viên: Phm 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 gim tải đối vi vic hc
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
tp hoặc bài tập thực hành, nhằm đảm bo cho hc sinh nắm rõ hơn, vững hơn những
phần lý thuyết đã được hc.
2. Các tiết bài tp hoặc bài tập thực hành trong sách giáo khoa, hướng dn c th
để đạt được một cái chuẩn chung như những bài thuyết. Do đó giáo viên sẽ linh
hot dựa vào điu kiện sở vt cht của nhà trường, đặc biệt tuỳ vào đối tượng
hc sinh của mình để cung cp cho hc sinh những bài tập nhm cng c cho hc
sinh nhng kiến thc phần lý thuyết đã học.
3. Theo phân phối chương trình, chương 5: Tệp thao tác với tp ca Tin hc
11 2 tiết thuyết 2 tiết bài tập thực hành. Phần thuyết, sách giáo khoa cung
cấp đã khá đầy đủ d hiểu đi vi hc sinh. Tuy nhiên, phần bài tập thì chưa có;
phần ví dụ chưa đủ để hc sinh nm vững và áp dụng được hết các thao tác với tp.
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 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 năng đọc dliệu với các dạng dữ liệu cách 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
PHN 1: ng dn phần thuyết v vai trò của kiu tp trong lập trình các
thao tác làm việc vi tp
Rèn luyện kĩ năng lập trình với tp t các bài toán cơ bản trong môn Tin học lp 11
Giáo viên: Phm Th Khánh 3 Trường THPT Trần Hưng Đạo
Giáo viên định hướng cho hc sinh tại sao nên sử dng tp khi lập trình giải
toán; điểm khác biệt gia vic lập trình từ bàn phím và lập trình sử dng tp văn bản.
Do đặc điểm ca b nh trong nên ta phải s dng tệp để lưu trữ d liệu lâu dài
với dung lượng ln. Khi lập trình gii một bài toán trên máy tính vi d liu Input
nhập vào từ bàn phím 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à
vi mt b Input th dùng để gii nhiều hơn một bài toán. Hơn na kết qu ca
một bài toán có thể được dùng làm dữ liu 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 nhp t bàn phím
+ Output: kết qu của bài toán (d liu ra) được in ra màn hình
Khi lập trình với tp:
+ Input: d liệu bài toán cho (d liệu vào) đưc lấy (đọc) t file d liu
(thường có phần m rộng là INP)
+ Output: kết qu của bài toán (d liu ra) được đưa (ghi) vào file d liu
khác (thường có phần m rộng là OUT)
Khi đó để gii mt bài toán, người lp trình phải tương tác với 3 tp:
Để thc hiện được s tương tác trên ta cn s dụng các thao tác làm vic vi tp
như sau:
1. Khai báo tệp Var <danh sách biến tp> : Text;
2. M tệp để đc d liu ASSIGN(biến tệp, tên tp); RESET(biến tp);
3. M tệp để ghi d liu ASSIGN(biến tệp, tên tệp); REWRITE(biến tp);
4. Đọc d liu t tp READ(biến tp, danh sách biến);
READLN(biến tp, danh sách biến);
5. Ghi d liu vào tệp WRITE(biến tp, danh sách kết qu);
WRITELN(biến tp, danh sách kết qu);
Tp d liu
vào Input
(.INP)
Tp chương trình
(.PAS)
Tp d liu
ra Output
(.OUT)
Rèn luyện kĩ năng lập trình với tp t các bài toán cơ bản trong môn Tin học lp 11
Giáo viên: Phm Th Khánh 4 Trường THPT Trần Hưng Đạo
6. Đóng tệp bng th tc CLOSE(biến tp);
Chú ý: Giáo viên nên giải thích rõ các thành phần trong các thủ tc và lấy ví dụ
minh ha
Trình tự viết chương trình:
PHN 2: Rn luyện viết chương trình với các bài toán đc ghi dliệu giá trị s
đơn gin
VD1: Cho 2 s nguyên a và b.
Yêu cu: Tính tổng 2 s a, b.
Input: Đọc t tp Tong2so.Inp chứa 2 số nguyên a và b.
Output: Ghi 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 cn thc hiện tính
toán
Mở tệp .Inp để đọc giá trị vi Assign Reset
Mở tệp .Out để ghi kết quả vi Assign Rewrite
Đọc d liu từ tệp .Inp vi Read hoc Readln
X lý các dữ liệu đã đọc
Ghi các kết qu vào tệp .Out vi Write hoc Writeln
Đóng các tệp đã m bng lnh CLose
Rèn luyện kĩ năng lập trình với tp t các bài toán cơ bản trong môn Tin học lp 11
Giáo viên: Phm 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 cu: Tính giá trị ca biu thc Z vi
xy
Zxy

Input: Đọc t tp Tinh.Inp chứa các số lần lượt x, y, a, b, R
Output: Ghi o tệp Tinh.Out kết qu tìm được.
Ví dụ:
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.