26
GIÁO VIÊN: Nguyễn Thị Hồng Cẩm Châu Cẩm Tú Bài 15: THAO TÁC VỚI TỆP TRƯỜNG THPT NGUYỄN TRUNG TRỰC

GIÁO VIÊN: Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

  • Upload
    marc

  • View
    78

  • Download
    0

Embed Size (px)

DESCRIPTION

TRƯỜNG THPT NGUYỄN TRUNG TRỰC. Bài 15: THAO TÁC VỚI TỆP. GIÁO VIÊN: Nguyễn Thị Hồng Cẩm Châu Cẩm Tú. Kiểm tra bài cũ. Câu 1: Xét theo cách tổ chức dữ liệu thì tệp có mấy loại ? đó là những loại nào ? Câu 2: Dữ liệu kiểu tệp được lưu ở đâu ?. Kiểm tra bài cũ. - PowerPoint PPT Presentation

Citation preview

Page 1: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

GIÁO VIÊN: Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

Bài 15: THAO TÁC VỚI TỆP

TRƯỜNG THPT NGUYỄN TRUNG TRỰC

Page 2: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

Ki m tra bài cũể

Câu 1: Xét theo cách tổ chức dữ liệu thì tệp có mấy loại? đó là những loại nào?Câu 2: Dữ liệu kiểu tệp được lưu ở đâu?

Page 3: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

Ki m tra bài cũể

Xét theo cách tổ chứ dữ liệu thì tệp được phân làm 2 loại: tệp văn bản và tệp có cấu trúc.

Kiểu dữ liệu tệp được lưu trữ lâu dài ở bộ nhớ ngoài (đĩa CD, đĩa từ…).

Page 4: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

1.Khai báo tệp2.Thao tác với tệp

NỘI DUNG

Page 5: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

I. Khai báo t pệ

Trong chương trình Pascal khi chúng ta muốn dùng một biến để chứa dữ liệu,

thì việc đầu tiên chúng ta sẽ làm gì?

Khai báo biến

Page 6: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

I. Khai báo t pệ

Tại sao phải sử dụng tệp tin?

Dữ liệu không bị mất khi tắt điện và dữ liệu được lưu trữ trên tệp có dung lượng lớn.

Page 7: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

I. Khai báo t pệ

Khai báo biếnnhư thế nào?

Var <danh sách biến>:<Kiểu dữ liệu>;

Page 8: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

I. Khai báo t pệ

Vậy khai báo biến tệp

như thế nào?

var <tên biến tệp> : text;

Chú ý:-Tên biến tệp: Không được bắt đầu bằng số, trong tên biến không có khoảng trắng, không chứa các kí tự đặc biệt… , , ., !, #, $, %, &, @)

Page 9: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

I. Khai báo t pệ

var tep vb : text; var tep1,tep2 : text.

ĐúngSai

Khai báo nào đúng?

Page 10: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ1. Gán tên tệp

Trong lập trình, ta không thao tác trực tiếp với tệp dữ liệu trên đĩa mà thông qua biến tệp.

Gắn tên tệp với biến tệp thực chất là tạo một tham chiếu giữa tệp trên đĩa và biến tệp trong chương tình, làm cho biến tệp trở thành đại diện cho tệp.

Page 11: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ

GHI DỮ LIỆU VÀO TỆP ĐỌC DỮ LIỆU TỪ TỆPGán tên tệp

Mở tệp để ghi Mở tệp để đọc

Ghi dữ liệu ra tệp Đọc dữ liệu từ tệp

Đóng tệp

Hình: Sơ đồ tổng quát

Page 12: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ1. Gán tên tệp

assign(<biến tệp>,<tên tệp>);

Trong đó:- tên tệp: Là hằng xâu ký tự hoặc giá trị của một biểu thức kiểu xâu ký tự. - Độ dài lớn nhất của tên tệp là 79 ký tự.

Page 13: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ1. Gán tên tệp

Phân biệt tên tệp với biến tệp:

- Mỗi tệp có một cái tên, tên tệp là biến xâu hay hằng xâu. +Ví dụ 1: assign(tep1,‘DULIEU.DAT’); +Ví dụ 2: tentep=’DL.INP’;

assign(tep1, tentep); +Ví dụ 3: assign(tep1, ‘C:\\DIEM.TXT’);- Biến tệp là biến sử dụng để tham chiếu tới các phần tử của tệp.

Page 14: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ2. Mở tệp

2 kiểu

Mở tệp để ghi Mở tệp để đọc

rewrite(<biến tệp>); reset(<biến tệp>);

Ví dụ: assign(tep1, ‘KQ.DAT’);rewrite(tep1);

Ví dụ: assign(tep2, ‘KQ.DAT’); reset(tep2);

Page 15: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ3. Đọc/ ghi tệp văn bản

Trong pascal, lệnh nào dùng để đọc dữ liệu? Lệnh nào dùng

để ghi dữ liệu?

Lệnh ghi là write hoặc writeln

Lệnh đọc là read hoặc readln

Page 16: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ3. Đọc/ ghi tệp văn bản

Đọc tệp văn bản:

Ghi tệp văn bản:

read(<biến tệp>,<danh sách biến>);readln(<biến tệp>,<danh sách biến>);

write(<biến tệp>,<danh sách kết quả>);writeln(<biến tệp>,<danh sách kết quả>);

Page 17: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ3. Đọc/ ghi tệp văn bản

Ví dụ: + Để đọc dữ liệu từ tệp A ta viết: read(tepA,x,y,z);Hoặc readln(tepA,x,y,z); Chú ý: Các dữ liệu cần đọc tệp gán vào danh sách biến phải lần lượt có kiểu tương ứng với kiểu của biến trong danh sách biến.

Page 18: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ3. Đọc/ ghi tệp văn bản

Ví dụ: + Để ghi dữ liệu vào tệp B ta viết: Write(tepB, ‘A=’,a, ‘B=’,b);Hoặc Writeln(tepB, ‘A=’,a, ‘B=’,b);Lưu ý: Khi hai kết quả liền nhau cùng là kiểu số thì cần xen vào giữa hai kết quả này một kết quả trung gian là hằng kí tự dấu cách.Vd: write( tepB,1,’ ‘,2,’ ‘,3);

Page 19: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ3. Đọc/ ghi tệp văn bản

Một số hàm và thủ tục thông dụng:

• Hàm EOF (<biến tệp>): trả về giá trị TRUE khi con trỏ tệp đã ở vị trí cuối tệp.• Hàm EOLN(biến tệp>): trả về giá trị TRUE khi

con trỏ tệp đã ở vị trí cuối dòng.

Page 20: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ4. Đóng tệp văn bản

Sau khi làm việc xong với tệp ta phải làm

gì?Tại sao ta phải

đóng tệp?

Sau khi làm việc xong với tệp cần phải đóng tệp.

Chỉ có đóng tệp thì khi đó hệ thống mới thực sự hoàn tất ghi dữ liệu ra tệp.

Page 21: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

II. Thao tác v i t pớ ệ4. Đóng tệp văn bản

Câu lệnh dùng thủ tục đóng tệp:

Vd: Close (tepA);Close (tepB);

Close (<biến tệp>);

Page 22: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

1. C u trúc khai báo t p?ấ ệ2. Các thao tác v i t p?ớ ệvar <tên biến tệp> : text;

Page 23: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

C ng củ ố

Câu 1:

Câu lệnh dùng mở tệp để ghi?

a. rewrite(<biến tệp>,<tên tệp>);b. reset (<biến tệp>,<tên tệp>);c. rewite(<biến tệp>);d. reset(biến tệp);

Page 24: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

C ng củ ố

Câu 2:

(1)Var tepA, tepB,tep C: text;(2)Begin

(3)assign (tepA, ‘Xoai.txt’);(4)assign (tepB, ‘Me.txt’);(5)reset(tepA);(6)read(tepA,A,B,C);(7)readln(tepA,D,E);(8)rewrite(tepB);(9)write(tepB, ‘A=’,A, ‘D=’,);(10)writeln(tepB, ‘x1=’, (-B-SQRT(B*B-4*A*C))/(2*A):5:3);(11)close (tepA);(12)Close (tepB);(13)Readln;

(14)End.

Khai báo tệp?

Gán tên tệp?

Mở tệp?

Đóng tệp?

Đọc tệp?

Ghi tệp?

Page 25: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

BTVN:Trả lời câu hỏi trong sách bài tập và xem trước ví dụ 1, ví dụ 2 bài 16 trong SGK.

Page 26: GIÁO VIÊN:  Nguyễn Thị Hồng Cẩm Châu Cẩm Tú

The End