-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.. Phân loại tệp: *C1: dựa vào cách tổ chức dữ liệu -Tệp văn bản: dữ liệu là các kí tự trong bảng mã ASCII
Trang 1Ngày soạn: 02/01/2011
Tiết 39, 40: §14 KIỂU DỮ LIỆU TỆP
§15 THAO TÁC VỚI TỆP
§16 VÍ DỤ LÀM VIỆC VỚI TỆP TỆP
Tiết 41: BÀI TẬP
I.MỤC TIÊU CẦN ĐẠT:
1 Kiến thức:
-Biết khái niệm về kiểu dữ liệu tệp
-Khái niệm tệp văn bản, tệp có cấu trúc
-Biết cách khai báo tệp văn bản
-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 một số hàm và thủ tục làm việc với tệp
2 Kĩ năng:
-Khai báo tệp đúng
-Sử dụng được một số hàm và thủ chuẩn làm việc với tệp
3 Tư tưởng, tình cảm: Yêu thích lập trình.
II.PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY HỌC:
1 Phương pháp: Vấn đáp, xây dựng tình huống có vấn đề.
2 Phương tiện:
-GV: SGK
-HS: SGK
III TIẾN TRÌNH BÀI DẠY:
1 Ổn định lớp: Kiểm tra sỉ số lớp: Một số qui định về học tập bộ môn
*HĐ 1: Tìm hiểu vai trò của kiểu tệp
10ph -Nêu đặc điểm của kiểu tệp?
Từ đó chỉ ra vai trò của kiểu
tệp
-Tham khảo SGK trả lời §14 KIỂU DỮ LIỆU TỆP
1.Vai trò của kiểu tệp:
-Lưu trữ lâu dài ở bộ nhớ ngoài -Lượng dữ liệu lưu trữ lớn
*HĐ 2: Phân loại tệp
15ph -Có mấy cách phân loại?
-Căn cứ vào đâu để phân
loại? -Mỗi loại có đặc điểm
gì?
-Chỉ ra ưu điểm của tệp so
với mảng?
-Tham khảo SGK trả lời 2 Phân loại tệp và thao tác với tệp:
a Phân loại tệp:
*C1: dựa vào cách tổ chức dữ liệu -Tệp văn bản: dữ liệu là các kí tự trong bảng mã ASCII
-Tệp có cấu trúc: các thành phần được
tổ chức theo một cấu trúc nhất định
*C2: dựa vào cách thức truy cập -Tệp truy cập tuần tự: cho phép truy cập đến một dữ liệu nào đótrong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả dữ liệu đứng trước nó
-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 đó
*HĐ 3: Tìm hiểu các thao tác với tệp
10ph -Có những thao tác nào? -Tham khảo SGK b Các thao tác với tệp:
-Khai báo biến tệp -Mở tệp
-Đọc/ghi dữ liệu -Đóng tệp
Trang 2*HĐ 4: Tìm hiểu cách khai báo biến tệp
5ph -Nêu cú pháp
-Cho ví dụ
-Tham khảo SGK §15 THAO TÁC VỚI TỆP
1 Khai báo biến:
Var <ten bien tep>:Text;
Ví dụ: Var f1, f2: Text;
*HĐ 5: Tìm hiểu các thao tác với tệp
10ph -Đưa ra cú pháp thủ tục
-Chỉ ra <ten bien tep> là biến
tệp khai báo ở var, <ten bien
tep>: là tên một tệp đang
nằm trên bộ nhớ ngoài do hệ
điều hành quản lí
-Vì sao phải gán tên tệp?
-Tham khảo SGK trả lời 2 Thao tác với tệp:
a Gắn tên tệp:
Assign(<ten bien tep>,<ten tep>);
Ví dụ:
Assign(f1,’Dulieu.Dat’);
Assign(f2,’Ketqua.Dat’);
10ph -Phân thành hai trường hợp:
mở tệp đọc dữ liệu và mở tệp
để ghi dữ liệu với hai thủ tục
khác nhau
-Trình bày cú pháp
-Cho ví dụ
-Tham khảo SGK trả lời.’ b Mở tệp:
*Mở tệp đọc dữ liệu:
Reset(<ten bien tep>);
Ví dụ: Reset(f1);
*Mở tệp để ghi dữ liệu:
Rewrite(<ten bien tep>):
Ví dụ: Rewrite(f2);
15ph -Đọc dữ liệu bằng thủ tục
gì?
-Thủ tục Read và Readln
khác nhau như thế nào?
-Ví dụ
-Ghi dữ liệu bằng thủ tục gì?
-Thủ tục Write và Writeln
khác nhau như thế nào?
-Ví dụ
-Tham khảo SGK c Đọc/ghi tệp văn bản:
*Đọc dữ liệu:
-Read(<ten bien tep>,<danh sach bien>);
-Readln(<ten bien tep>,<danh sach bien>);
Ví dụ: Read(f1,x);
Read(f1,x,y);
*Ghi dữ liệu:
-Write(<ten bien tep>,<danh sach ket qua>);
-Writeln(<ten bien tep>,<danh sach ket qua>);
Ví dụ:
Write(f2,S);
Write(f2,’abc’);
10ph -Khi làm việc xong với tệp
cần phỉa đóng tệp lai
Close(<ten bien tep>);
Ví dụ: Close(f);
*Các hàm chuẩn thường
dùng
-Tham khảo SGK Hàm EOF(<ten bien tep>): trả về giá
trị true nếu con trỏ tệp đang chỉ đến cuối tệp
Hàm EOLN(<ten bien tep>): trả về giá trị true nếu con trỏ tệp đang chỉ đến cuối dòng
*HĐ 5: Tìm hiểu một số ví dụ
15ph *Ví dụ 1/trang 87 SGK
-Yêu cầu học sinh trả trả lời
được các câu hỏi sau:
+Có mấy tệp? Tên gì? Chứa
dữ liệu gì trong tệp đó?
+Xác định Input, Outpu?
-Tham khảo SGK
Ví dụ1/SGK
Program VIDU1;
Var f: text; x,y: integer; d: real; Begin
Assign(f,’TRAI.TXT’);
Reset(f);
Trang 3-Hướng dẫn học sinh cách
Read(f,x,y);
D:=sqrt(x*x+y*y);
Writeln(‘khoang cach:’,d:4:2); End;
Close(f);
End
10ph *Ví dụ 2: Tạo tệp TRAI.TXT
chứa các N số nguyên, các số
cách nhau bởi dấu cách và
không chứa kí tự xuống
dòng
-Hướng dẫn học sinh tạo tệp
-Biết cách tạo tệp
Ví dụ2
Program VIDU1;
Var f: text; N,x,i: integer;
Begin Assign(f,’TRAI.TXT’);
Rewrite(f);
Write(‘muon tao tep co bao nhieu so?); Readln(N);
For i:=1 to N do Begin
Write(‘Nhap so thu’,i,’:’);
Read(x);
Write(f,x);
End;
Close(f);
End
15ph *Ví dụ 2: SGK/trang 87
-Hướng dẫn học sinh đọc dữ
liệu tệp và tạo tệp mới
-Khai báo hai biến tệp f1 dùng để đọc dữ liệu, f2 dùng để ghi dữ liệu
-Dùng một mảng một chiều
có 5 phần tử để lưu giá trị điện trở của từng điện trở
Ví dụ2/SGK
Program VIDU3;
Var f1,f2: text; r1,r2,r3:real;
A: Array[1 5] of real; i:byte; Begin
Assign(f1,’RESIST.DAT’);
Reset(f1);
Assign(f2,’RESIST.EQU’);
Rewrite(f2);
While not eof(f1) do Begin
Readln(f1,r1,r2,r3);
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
IV.RÚT KINH NGHIỆM:
Trang 4Ngày soạn: 03/01/2011
Tiết 42: BÀI TẬP THỰC HÀNH
I.MỤC TIÊU CẦN ĐẠT:
1 Kiến thức: Củng cố kiến thức về kiểu dữ liệu tệp.
2 Kĩ năng:
-Rèn luyện kĩ năng và thao tác với tệp
-Vận dụng giải quyết một số bài toán
3 Tư tưởng, tình cảm: Yêu thích lập trình.
II.PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY HỌC:
-GV: SGK -HS: SGK
III TIẾN TRÌNH BÀI DẠY:
1 Ổn định lớp: Kiểm tra sỉ số lớp: Một số qui định về học tập bộ môn
HĐ 1: Tạo tệp
20ph *Viết chương trình tạo tệp DULIEU.DAT lưu
trên ổ đĩa D:\ các số nguyên, các số cách nhau
một kí tự trắng và không chứa kí tự xuống
dòng
-Học sinh thực hành cách tạo tệp
Program TAOTEP;
Var f: text; N,x,i: integer;
Begin Assign(f,’DULIEU.DAT’);
Rewrite(f);
Write(‘muon tao tep co bao nhieu so?); Readln(N); For i:=1 to N do
Begin Write(‘Nhap so thu’,i,’:’);
Read(x);
Write(f,x);
End;
Close(f);
End
-Dùng WordPad mở tệp DULIEU.DAT
HĐ 2: Đọc dữ liệu từ tệp
20ph *Viết chương trình tính tổng các số lẻ của tệp
DULIEU.DAT vừa tạo ở ví dụ 1
Program DOCTEP;
Var f: text; x, dem: integer;
Begin Assign(f,’DULIEU.DAT’);
Reset(f); dem:=0;
While not eof(f) do Begin
Read(f,x);
If x mod 2<>0 then dem:=dem+1;
End;
Writeln(‘so luong so le của tep là:’,dem);
Close(f);
End
IV.RÚT KINH NGHIỆM: