Kiến thức - Học sinh biết đợc vai trò của kiểu dữ liệu tệp - Học sinh biết đợc có 2 cách phân loại tệp.. - Học sinh biết khai báo biến tệp và thao tác cơ bản với tệp văn bản 2.. Nội dung
Trang 1Chơng V Tệp và thao tác với tệp Bài 14+15: Kiểu dữ liệu tệp và thao tác với tệp
I Mục đích yêu cầu
1 Kiến thức
- Học sinh biết đợc vai trò của kiểu dữ liệu tệp
- Học sinh biết đợc có 2 cách phân loại tệp
- Học sinh biết khai báo biến tệp và thao tác cơ bản với tệp văn bản
2 Kỹ năng
Dần dần hình thành kỹ năng về thao tác với tệp văn bản
3 Thái độ
- Rèn luyện cho học sinh có ý thức lu trữ dữ liệu một cách khoa học, phòng chống mất mát thông tin hoặc nhiễm vi rút
II Phơng pháp, dụng cụ
- Sử dụng thuyết trình, giảng giải, gợi ý nêu vấn đề
- Dùng bảng in sẵn hinhg 16 SHK và chuẩn bị máy chiếu
III Nội dung
Nội dung - Hoạt động của giáo viên Hoạt động của học sinh
HĐ1: Đặt vấn đề
Trong các giờ thực hành đã học, sau khi chạy chơng
trình ta thấy kết quả in trên màn hình, tuy nhiên
muốn sử dụng kết quả đó về sau thì không đợc (nó
không lu trữ lâu dài đợc) Để khắc phục nhợc điểm
đó ta nghiên cứu dữ liệu kiểu tệp
1 Vai trò của tệp
C_hỏi: Trong máy tính có những loại bộ nhớ nào ?
loại bộ nhớ nào không bị mất dữ liệu khi tắt máy ?
C_hỏi 2: Vậy theo em thì có các kiểu dữ liệu đã học
đợc lu trữ ở bộ nhớ nào ?
C-Hỏi 3: Bộ nhớ trong hay bộ nhớ ngoài có dung
l-ợng lớn hơn ?
Gv: Chốt lại:
Dữ liệu kiểu tệp đợc lu trữ lâu dài ở bộ nhớ ngoài
(Đĩa từ, CD, và không bị mất khi tắt nguồn điện
Lợng dữ liệu lu trữ dữ liệu trên tệp có thể rất lớn và
chỉ phụ thuộc vào dung lợng đĩa
2 Phân loại tệp và thao tác với tệp
Gv: Giới thiệu cho học sinh có 2 loại tệp ( không
đòi hỏi học sinh hiểu cặn kẽ 2 loại tệp)
- Theo cách tổ chức dữ liệu:
Tệp văn bản là tệp đợc ghi dới dạng các kí tự
theo bảng mã ASCII Trong tệp văn bản dãy kí tự
kết thúc bởi kí tự xuống dòng hay kí tự kết thúc tệp
tạo thành một dòng.
Tệp dữ liệu có cấu trúc là tệp mà các thành phần
của nó đợc tổ chức theo một cấu trúc nhất định.
- Theo cách thức truy cập
Tệp truy cập tuần tự: Bằng cách đi từ đầu tệp và đi
qua lần lợt các dữ liệu đến vị trí cần truy cập.
Tệp truy cập trực tiếp: Cho phép tham chiếu đến dữ
liệu cần truy cập bằng cách xác định trực tiếp vị trí
của dữ liệu đó.
GV Có 2 thao tác cơ bản đối với tệp là đọc và ghi
dữ liệu ta xem xét trong ngôn ngữ lập trình Pascal
các thao tác đó đựơc thể hiện nh thế nào đối với tệp
văn bản ?
3 Khai báo:
Khai báo biến tệp văn bản có dạng
HS: Chú y nghe giảng
Hs Trả lời
Tệp dữ liệu dạng văn bản xuất hiện ở dạng ở đâu ?
Ví dụ: Tệp hình ảnh, âm thanh…
Học sinh lấy ví dụ minh hoạ
Trang 2Var <tên biến tệp> : Text;
Vd: Var tep1,tep2:text;
4 Thao tác với tệp
a Gắn tên tệp.
Gv: Giải thích cho học sinh tại sao phải gắn tên tệp
cho biến tệp, rồi đa ra thủ tục
Để truy cập đến tệp ta thông qua tên tệp Tên tệp là
biến xâu hoặc hằng xâu ví dụ: 'Dulieu.dat'
Trong lập trình ta không thao tác trực tiếp trên tệp
mà thông qua biến tệp Biến tệp đợc NNLT sử dụng
làm đại diện cho tệp
Do vậy để thao tác với tệp trớc hết ta phải gắn tên
tệp cho biến tệp bằng thủ tục
Assign(<biến tệp>, <tên tệp>);
Trong đó: Biến tệp là biến đợc khai báo ở mục 3
Tên tệp là biến xâu hoặc hằng xâu
Ví dụ: tên tệp:='Kq.txt'
Tên tệp:='C:\TP\BaiTap\dulieu.int'
Ví dụ gắn tên tệp vào biến:
Assign(tep1,'kq.txt');
assign(tep2,'C;\Tp\baitap\dulieu.int');
b.Mở tệp
Xét 2 tình huống: em cần mở mở tin học ra: Mở ra
để đọc và mở ra để ghi
Thủ tục mở tệp để ghi dữ liệu:
Rewrite(<biến tệp>); {mở ra để ghi dữ liệu vào}
Khi gọi thủ tục này thì tệp cha có tên thì tệp sẽ đợc
tạo ra với nội dung rỗng còn nếu đã có tên thì nội
dung cũ sẽ bị xoá và chuẩn bị ghi dữ liệu mới
ví dụ: assign(tep1,'kq.txt');
Rewrite(tep1);
Thủ tục mở tệp để đọc dữ liệu
Reset(<biến tệp>); {mở ra để đọc dữ liệu vào}
ví dụ
assign(<tep2,'c:\tp\baitap\dulieu.int');
reset(tep2);
Nhấn mạnh trớc khi sử dụng 2 thủ tục trên ta phải
gắn tên tệp cho biến tệp đồng thời biến tệp phải đợc
khai báo từ trớc
c Đọc, ghi tệp văn bản
Gv: Để nhập dữ liệu từ bàn phím và để in dữ liệu
lên màn hình ta dùng thủ tục gì ?
Gv: Giới thiệu các thủ tục đọc dữ liệu từ tệp và ghi
dữ liệu vào tệp
Thủ tục đọc dữ liệu từ tệp:
Read(<tên biến tệp>,< danh sách biến>);
Hoặc
Readln(<tên biến tệp>,< danh sách biến>);
Ghi dữ liệu và tệp:
Write(<tên biến tệp>,< danh sách kết quả>);
Hoặc
Writeln(<tên biến tệp>,< danh sách kết quả>);
Ví dụ ta khai báo nh sau:
Var tep1, tep2:text;
begin
assign(tep1,'Dulieu.int');
reset(tep1);
assign(tep2,'Dulieu.out');
rewrite(tep2);
{ có thủ tục đọc tệp: tep1 và ghi tệp: tep2 nh sau:}
read(tep1,a,b);
Học sinh chú ý nghe và ghi
Hs tự đa ra cách khai báo tên tệp
Nếu học sinh khá giỏi ta có thểt
đa thêm lệnh {$I-} trớc lệnh Reset(bien tệp);
Hàm IoResult =0 nếu mở thành công và khác 0 nếu có tệp tồn tại Tơng tự với lệnh Rewrite
Học sinh ghi chép
Học sinh tự lấy ví dụ
Hs trả lời câu hỏi
Hs ghi và trả lời sự khác nhau giữa thủ tục nhập vào từ bản phím và thủ tục nhập, và ghi dữ liệu vào tệp
Trang 3write(tep2,c,d);
writeln(tep2,a,c,(-b+sqrt(delta))/(2*a):5:2);
* Một số hàm thờng dùng đối với tệp văn bản
Hàm eof(<biến tệp>);
Trả về kết quả true khi cuối tệp và ngợc lại
Hàm eoln(<biến tệp>);
Trả và kết quả true khi con trỏ văn bản đang ở cuối
dòng
d Đóng tệp
Đa ra lý do phải đóng tệp
Vì khi không đóng tệp với việc ghi dữ liệu sẽ không
tồn tại dữ liệu ở trong tệp
Câu lệnh : Close(<biến tệp>);
ví dụ:
Close(tep1);
Close(tep2);
IV Củng cố
- Gọi học sinh khái quát lại vai trò của tệp và phân loại tệp
- Học sinh khái quát lại các thao tác phải thực hiện đọc và ghi dữ liệu từ tệp
- Cho học sinh làm một số bài tập trắc nghiệm khách quan
Trang 4Hãy khoanh tròn vào đáp đúng trong những câu hỏi sau: Câu 1: Để gán tệp cho biến tệp ta dùng thủ tục
a assign(<Tên tệp>,<biến tệp>); b assign(<biến tệp>,<tên tệp>);
c assign(<biến tệp>;<tên tệp>); b assign(<Tên tệp>.<biến tệp>);
Câu 2: Sau khi gán tên tệp cho biến tệp ta mở tệp để ghi dữ liệu vào tệp ta dùng thủ tục:
a Reset(<biến tệp>); b Reset(<tên tệp>);
c Rewrite(<biến tệp>); d Rewrite(<tên tệp>);
Câu 3: Để đọc dữ liệu từ tệp ra biến ta dùng thủ tục
a Read(<tên tệp>,<danh sách biến>); b Read(<biến tệp>,<danh sách biến>);
c Write(<biến tệp>,<danh sách biến>); d writeln(<biến tệp>,<danh sách biến>);
Câu4: Dữ liệu kiểu tệp đợc lu trữ
Câu 5 Trong Pascal để khai báo biến tệp văn bản ta sử dụng cú pháp
a Var < Tên tệp>: Text; b Var <tên tệp> : String;
c Var < Tên biến tệp>: Text; c Var < tên biến tệp> : String;
Câu6: Để thao tác với tệp
a Ta có thể gán tên tệp cho biến tệp, hoặc sử dụng trực tiếp tên tệp cũng đợc
b Ta nhất thiết phải gán tên tệp cho tên biến tệp
c Ta sử dụng trực tiếp tên tệp trong chơng trình
d Ta nhất thiết phải sử dụng trực tiếp tên tệp trong chơng trình