1. Ổn định tổ chức (1p) 2. Kiểm tra bài cũ (5p)
* Cõu hỏi: Sắp xếp cỏc bảng dưới đõy theo thứ tự cỏc bước mở tệp để ghi và để đọc?
Assign(<biến tệp>, <tờn tệp>); Rewrite(<biến tệp>); Reset(<biến tệp>); + Read(<biến tệp>, <danh sỏch biến>); Write(<biến tệp>, <danh sỏch kết quả>); Close(<biến tệp>);
* Đỏp ỏn:
- Mở để ghi: + Assign(<biến tệp>, <tờn tệp>); Rewrite(<biến tệp>); Write(<biến tệp>, <danh sỏch kết quả>); Close(<biến tệp>);
- Mở để đọc: + Assign(<biến tệp>, <tờn tệp>); Reset(<biến tệp>); Read(<biến tệp>, <danh sỏch biến>); Close(<biến tệp>);
3. Bài mới
* Đặt vấn đề (1p)
- Bài học trước cỏc em đó được làm quen với một kiểu dữ liệu mới đú là kiểu dữ liệu tệp, để cỏc em nắm chắc hơn phần kiến thức lớ thuyết đó học, bài học hụm nay chỳng ta sẽ đi vào tỡm hiểu một số vớ dụ cụ thể.
* Triển khai bài
Hoạt động của giỏo viờn và học sinh Nội dung
Hoạt động 1: (chung cả lớp) (10p) GV: Giới thiệu nội dung đề bài.
- Chiếu chương trỡnh vớ dụ lờn bảng gợi ý học sinh tỡm hiểu chương trỡnh.
- Hàm eof(f) cú chức năng gỡ?
HS: Trả về giỏ trị true nếu con trỏ tệp định vị ở vị trớ kết thỳc tệp.
GV: Cú thể sử dụng cấu trỳc FOR thay cho WHILE được khụng?
HS: Khụng, vỡ khụng biết số lượng phần tử của tệp.
GV: Chương trỡnh này thực hiện cụng việc gỡ? Vỡ sao?
HS: Tớnh và đưa ra màn hỡnh khoảng cỏch từ trại của thầy hiệu trưởng đến trại của mỗi giỏo viờn.
GV: Giới thiệu cho HS cỏch tạo file
TRAI.TXT. Thực hiện chương trỡnh để học sinh thấy kết quả.
1. Vớ dụ 1 (SGK, trang 87) Progam Khoang_cach;
Var d: real; f :text; x, y: integer; Begin
Assign(f, ‘TRAI.TXT’); Reset(f);
While not eof(f) do Begin Read(f,x,y); D:= sqrt(x*x+y*y); Write(‘Khoang cach: ‘,d:10:2); End; Close(f); End. Hoạt động 2: (theo từng nhúm) (7p)
GV: Chiếu tranh mụ phỏng kết nối cỏc điện trở, hỡnh 17, trang 88 SGK. Hóy cho biết cụng thức tớnh điện trở của sơ đồ II, III, IV?
HS: Nghiờn cứu và trả lời
GV: Chiếu chương trỡnh vớ dụ lờn bảng. Hỏi mảng A dựng để lưu trữ giỏ trị nào?
HS: Lưu trữ giỏ trị điện trỡ tương đương theo 5 cỏch ghộp nối như trong sơ đồ.
GV: Cho một file dữ liệu vào gồm 2 hàng. Yờu cầu học sinh tớnh kết quả.
HS: Tớnh kết quả của 5 điện trở tương đương. GV: Thực hiện chương trỡnh đọc file dữ liệu
2. Vớ dụ 2 (SGK, trang 87) Program Dien_tro;
Var a: array[1..5] of real;
R1, R2, R3: real; f1,f2 :text; i: integer; Begin
Assign(f1, ‘RESIST.DAT’); Reset(f1);
Assign(f2, ‘RESIST.EQU’); Rewrite(f2);
While not eof(f1) do Begin
Giỏo ỏn Tin học 11 Trường THPT Lờ Trực
vào trờn để học sinh đối chiếu kết quả.
HS: Quan sỏt kết quả của chương trỡnh và so sỏnh với kết quả tớnh được. Nhận xột về tớnh chớnh xỏc và thời gian thực hiện của chương trỡnh. a[1]:=R1*R2*R3/(R1*R2+R1*R3+R2*R3); a[2]:=R1*R2/(R1+R2)+R3; a[3]:=R1*R3/(R1+R3)+R2; a[4]:=R2*R3/(R2+R3)+R1; a[5]:=R1+R2+R3;
For i:=1 to 5 do write(f2, a[i]:9:3,’ ‘); Writeln(f2);
End;
Close(f1); Close(f2); End.
Hoạt động 3: (Chung cả lớp) (p)
GV: Cung cấp cho HS một số kiến thức mở rộng.
- Giới thiệu cho HS một thủ tục mở file để ghi thờm dữ liệu vào file?
HS: Quan sỏt và ghi bài.
GV: Giới thiệu hàm kiểm tra sự tồn tại của một file.
- í nghĩa: hàm trả về giỏ trị TRUE nếu tập tin cần mở cú trờn đĩa, ngược lại cho giỏ trị False. - Lồng hàm trờn vào vớ dụ 2 cho HS kiểm chứng.
* Thủ tục: APPEND(biến tệp);
* í nghĩa: Thủ tục này dựng để mở tập tin cú tờn đó được gỏn cho biến tệp bởi thủ tục Assign trước đú. Khi tệp được mở thỡ cửa sổ tệp định vị ở vị trớ kết thỳc tệp. Từ đú cú thể tuần tự ghi thờm dữ liệu vào cuối tệp.
FUNCTION FileExists (tờn_file: String):Boolean; Var F: FILE;
Begin {$I-}
Assign (f, tờn_file); Reset (f); Close (f); {$I+}
FileExists:= (IOResult=0); End;