Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vtq ngoc
1. 1
TRƢỜNG: PTTH LƢƠNG VĂN CAN NĂM HỌC: 2013 - 2014
LỚP: Tuần:
GVHD: Bùi Mộng Thúy Uyên Ngày:
GSTT : Vũ Thị Quỳnh Ngọc
Tên bài học: TỆP VÀ THAO TÁC VỚI TỆP
I- Mục tiêu:
1- Kiến thức:
Biết khái niệm và vai trò của kiểu tệp.
Biết hai cách phân loại tệp: theo cách tổ chức dữ liệu và theo cách truy cập
Hiểu bản chất của tệp văn bản
Biết các bước làm việc với tệp: gắn tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp.
Biết khai báo biến tệp và các thao tác cơ bản với tệp văn bản
Biết sử dụng một số hàm và thủ tục chuẩn làm việc với tệp.
2- Kỹ năng:
Khai báo đúng tệp văn bản.
Sử dụng được một số hàm và thủ tục chuẩn để làm việc với tệp.
3- Thái độ: HS thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp
II- Chuẩn bị của giáo viên và học sinh:
GV: Phòng học trên lớp với phấn bảng, khăn lau. Giáo án. HS: SGK
III- Phƣơng pháp dạy học: Thuyết trình, vấn đáp.
IV- Tiến trình bài dạy:
Hoạt động 1 (10'): Ổn định lớp, kiểm tra bài cũ về mảng và xâu
TG Hoạt động của gv Hoạt động của hs Nội dung
- Gọi 2 học sinh lên bảng làm bài tập,
sau đó giáo viên chữa bài.
- xau = 'coni'
- s = 1 + 7 + 3 = 11
- 2 HS lên bảng làm
bài tập, các học
sinh khác chú ý
theo dõi.
Bài 01. Cho đoạn chương trình sau:
s := 'Tin Hoc 11';
xau := '';
for i := length(s) downto 1 do
if(s[i] >= 'a') and (s[i] <= 'z')then
xau := xau + s[i];
- Sau khi xử lý đoạn chương trình trên,
giá trị của biến xau = ?
Bài 02. Cho đoạn chương trình sau:
s := 0;
for i :=1 to 5 do
if (a[i] mod 2 <> 0) then
s := s + a[i];
Cho mảng a gồm 5 phần tử: a[1] = 2,
a[2] = 1, a[3] = 8, a[4] = 7, a[5] = 3
- Sau khi xử lý đoạn chương trình trên,
giá trị của biến s = ?
2. 2
Hoạt động 2:(5'). §14. Kiểu dữ liệu tệp
- Đặt vấn đề
+ Ở chương IV, chúng ta đã tìm hiểu về kiểu dữ liệu có cấu trúc: Kiểu mảng, kiểu xâu. Dữ liệu thuộc các
kiểu dữ liệu đã xét đều được lưu trữ ở bộ nhớ trong (RAM) và do đó dữ liệu sẽ bị mất khi tắt máy hoặc
chạy lại chương trình.
+ Với một số bài toán, dữ liệu cần được lưu trữ để xử lý nhiều lần với số lượng dữ liệu lớn, hoặc ta cần lấy
kết quả tính toán của bài toán đó để sử dụng sau này, vì vậy cần có kiểu dữ liệu tệp.
TG Hoạt động của gv Hoạt động của
hs
Nội dung
* Thuyết trình bài giảng
1. Vai trò của kiểu tệp
2. Phân loại tệp: 2 cách
- Theo cách tổ chức dữ liệu:
+ Tệp văn bản: là tệp mà dữ liệu được ghi
dưới dạng các kí tự theo mã ASCII. Trong
tệp văn bản, cuối mỗi dòng có kí tự kết thúc
dòng, cuối tệp có kí tự kết thúc tệp.
+ Tệp có cấu trúc: là tệp mà dữ liệu được tổ
chức theo một cấu trúc nhất định (ví dụ như
tổ chức theo các phần tử cùng kiểu - dữ liệu
ảnh, âm thanh, ...)
- Theo cách thức truy cập:
+ Tệp truy cập tuần tự: Để đến được vị trí
cần truy cập, con trỏ tệp phải di chuyển trên
các dòng tuần tự: từ đầu dòng về cuối dòng
và từ dòng đầu đến dòng cuối của tệp.
+ Tệp truy cập trực tiếp: đến được ngay vị trí
cần truy cập. Cách truy cập tệp có cấu trúc
thường là truy cập trực tiếp, do biết được
kích thước của từng phần tử.
* Lắng nghe,
ghi bài
§14. Kiểu dữ liệu tệp
1. Vai trò của kiểu tệp
- Lưu trữ dữ liệu lâu dài ở bộ nhớ
ngoài ((đĩa từ, CD, . . .), dữ liệu
không bị mất khi tắt nguồn điện.)
- Lưu trữ lượng dữ liệu lớn (phụ
thuộc vào dung lượng đĩa).
2. Phân loại tệp: 2 cách
- Xét theo cách tổ chức dữ liệu:
+ Tệp văn bản.
+ Tệp có cấu trúc.
- Xét theo cách thức truy cập:
+ Tệp truy cập tuần tự.
+ Tệp truy cập trực tiếp.
3. 3
Hoạt động 3:(25') §15. Thao tác với tệp
TG Hoạt động của gv Hoạt động
của hs
Nội dung
5'
5'
5'
* Thuyết trình bài giảng
1. Khai báo biến tệp văn bản:
- Để thực hiện các thao tác với tệp trong chương
trình, ta phải thông qua biến tệp.
2. Thao tác với tệp:
- Các thao tác với tệp chia thành bốn nhóm.
a. Gắn tên tệp cho biến tệp:
- Lệnh assign tạo một tham chiếu giữa tệp trên
đĩa và biến tệp trong chương trình. Sau lệnh này,
tất cả các phép toán trên biến tệp sẽ tác động tới
tệp có tên là tên tệp.
- Biến tệp cần tuân thủ theo đúng quy tắc đặt tên
biến.
- Tên tệp:
+ Là biến xâu hoặc hằng xâu.
+ Có độ dài lớn nhất là 79 kí tự.
+ Có thể là đường dẫn chứa ổ đĩa:
<ổ đĩa>:<tên thư mục> ... <tên thư mục><tên
tệp>
+ Khi tên tệp là xâu rỗng thì biến tệp được gán
cho các tệp vào ra chuẩn là bàn phím và màn
hình.
- Lưu ý: <tên tệp> khác <biến tệp>
- Ví dụ 1: nếu ta cần thao tác với tệp
DULIEU.DAT, ta cần sử dụng lệnh để gắn tệp
này với biến tep1
- Ví dụ 2: nếu ta cần thao tác với tệp INP.DAT
trên thư mục gốc của ổ đĩa C:, ta cần dùng lệnh
gắn nó với biến tep2
:
- Tệp có thể dùng để chứa dl vào hoặc kết quả ra.
- Khi mở tệp để đọc dl, lệnh reset sẽ gặp lỗi nếu
tệp không tồn tại. Sau lời gọi reset, con trỏ tệp sẽ
nằm ở đầu tệp.
- Khi mở tệp để ghi dl, lệnh rewrite sẽ tạo ra một
tệp mới với nội dung rỗng và có tên tệp đã gắn
với biến tệp. Nếu đã có một tệp cùng tên (cùng
thư mục) thì tệp này bị xóa và một tệp rỗng được
tạo ra thay thế nó.
* Lắng
nghe, ghi
bài
§15. Thao tác với tệp
1. Khai báo biến tệp văn bản:
var <biến tệp>: text;
Ví dụ: var tep1, tep2: text;
2. Thao tác với tệp:
- Gắn tên tệp.
- Mở tệp.
- Vào/Ra dữ liệu.
- Đóng tệp.
a. Gắn tên tệp cho biến tệp:
assign(<biến tệp>,<tên tệp>);
Ví dụ 1: myfile := 'DULIEU.DAT';
assign(tep1, myfile); hoặc
assign(tep1, 'DULIEU.DAT');
Ví dụ 2:
myfile := 'C:INP.DAT';
assign(tep2, myfile);
b. :
- Đ : reset(< >);
- Đ : rewrite(< >);
4. 4
TG Hoạt động của gv Hoạt động
của hs
Nội dung
5'
5'
- Chú ý: Trước khi mở tệp để đọc hoặc ghi, cần
gắn tên tệp cho biến tệp bằng lệnh assign.
- Ví dụ 1: mở tệp để đọc dữ liệu từ tệp DL.INP
- Ví dụ 2: Mở tệp KQ.DAT trên thư mục gốc ở ổ
C: để ghi kết quả
:
- Việc đọc tệp văn bản được thực hiện giống như
việc nhập từ bàn phím.
- Việc ghi dữ liệu ra tệp văn bản giống như ghi ra
màn hình.
- Dữ liệu trong tệp văn bản được chia thành các
dòng.
- Đọc dữ liệu từ tệp:
+ Danh sách biến là một hay nhiều biến đơn. Các
biến phân cách nhau bởi dấu phẩy:
tên biến 1, tên biến 2, ..., tên biến N.
+ Khi đọc dữ liệu từ tệp để gán vào danh sách
biến, dữ liệu phải có kiểu tương ứng với kiểu của
biến trong danh sách biến. Nếu sai kiểu thì
chương trình mắc lỗi. Lỗi này thường gặp khi
biến có kiểu số, dữ liệu đọc được lại là kiểu xâu.
- Ghi dữ liệu vào tệp:
+ Danh sách kết quả có thể là biến đơn, biểu thức
(số học, quan hệ hoặc logic) hoặc hằng xâu -
được phân cách nhau bởi dấu phẩy:
kết quả 1, kết quả 2, ..., kết quả N
+ Khi hai kết quả liền nhau cùng là số thì cần xen
vào giữa hai kết quả số này một dấu cách. Ví dụ:
write(f, x,' ',y);
d. Đóng tệp:
- Sau lệnh close, tệp gắn với biến tệp được hoàn
thành cập nhật và sau đó được đóng lại, chương
trình trả lại quyền quản lý tệp cho hệ điều hành.
- Nếu thực hiện ghi dữ liệu vào tệp mà không
đóng tệp thì không có dữ liệu nào được ghi hoặc
chỉ ghi được một phần vào tệp, nguyên nhân do
Ví dụ 1: assign(tep1, 'DL.INP');
reset(tep1);
Ví dụ 2: tentep := 'C:KQ.DAT';
assign(tep3,tentep);
rewrite(tep3);
c văn bản:
- Đọc dữ liệu từ tệp văn bản:
read(<biến tệp>,<danh sách
biến>); hoặc
readln(<biến tệp>,<danh sách
biến>);
- Ghi dữ liệu vào tệp văn bản:
write(<biến tệp>, <danh sách kết
quả>); hoặc
writeln(<biến tệp>, <danh sách kết
quả>);
Ví dụ 1: Đọc dữ liệu từ tệp A:
read (tepA, x, y, z); hoặc
readln (tepA, x, y, z);
Ví dụ 2: Ghi dữ liệu vào tệp B:
write (tepB, 'x = ', x, 'y= ', y);
writeln (tepB, 'x = ', x, 'y= ', y);
d. Đóng tệp:
close (<biến tệp>);
Ví dụ: close (tep1); close (tep3);
5. 5
TG Hoạt động của gv Hoạt động
của hs
Nội dung
các dữ liệu chứa trong bộ nhớ đệm chưa chuyển
kịp vào đĩa thì chương trình đã bị ngắt.
- Một số hàm và thủ tục chuẩn thường dùng khi
thao tác với tệp:
+ Hàm eoln trả về true nếu con trỏ tệp đang chỉ
tới cuối dòng.
+ Hàm eof (<biến tệp>); trả về true nếu con trỏ
tệp đang chỉ tới cuối tệp.
- Một số hàm thường dùng khi thao
tác với tệp:
+ eoln (<biến tệp>);
+ eof (<biến tệp>);
V- Củng cố và dặn dò (5’):
- Nhắc lại vai trò của kiểu tệp là dùng để lưu trữ dữ liệu lâu dài, và lưu trữ lượng dữ liệu lớn.
- Nhắc lại các thao tác cơ bản khi làm việc với tệp: Khai báo biến tệp, Gắn tên tệp cho biến tệp, Mở tệp để đọc
hoặc ghi, Đọc dữ liệu từ tệp. Ghi dữ liệu ra tệp, Đóng tệp.
- Vẽ sơ đồ làm việc với tệp lên bảng
- Dặn dò: Về nhà ôn tập lại các bài đã học
Ngày…..... tháng….... năm 2014
Ngƣời soạn Duyệt của giáo viên hƣớng dẫn
Vũ Thị Quỳnh Ngọc Bùi Mộng Thúy Uyên
assign(<biến tệp>,<tên tệp>);
reset(<biến tệp>); rewrite(<biến tệp>);
read(<biến tệp>,<danh sách biến>);
close(<biến tệp>);
Đọc Ghi
Hình 16. Sơ đồ làm việc với tệp
write(<biến tệp>,<danh sách kết quả>);