Bài giảng Tin học Lớp 11 - Bài 14: Kiểu dữ liệu tệp
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 11 - Bài 14: Kiểu dữ liệu tệp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_tin_hoc_lop_11_bai_14_kieu_du_lieu_tep.ppt
Nội dung text: Bài giảng Tin học Lớp 11 - Bài 14: Kiểu dữ liệu tệp
- Bài 14: Kiểu Dữ 1. Vai trò của kiểu tệp: Liệu Tệp 2. Phân loại tệp và thao tác với tệp
- CÂU HỎI : Tất cả các dữ liệu thuộc các kiểu dữ liệu đã xét được lưu ở đâu ? Và có đặc điểm gì ? TRẢ LỜI : Lưu trữ ở bộ nhớ trong RAM (dữ liệu sẽ bị mất khi tắt máy) và lưu trữ trong một giới hạn dữ liệu nhất định.
- CÂU HỎI : Vậy để giải quyết vấn đề mất dữ liệu và có thể sử lý được các bài toán có khối lượng dữ liệu lớn, có yêu cầu lưu trữ để sử lí nhiều lần ta sử dụng ? TRẢ LỜI : KIỂU DỮ LIỆU TỆP *Nhắc lại khái niệm tệp trong tin học 10: Tệp, còn gọi là tập tin(File), là một tập hợp các thông tin ghi trên bộ nhớ ngoài, tạo thành 1 đơn vị lưu trữ do Hệ điều hành(HDH) quản lí. mỗi tệp có 1 tên để truy cập. (tên tệp dc đặt theo quy định riêng của HDH). Tên tệp ko quá 255 kí tự, thường gồm 2 phần : phần tên(name) và phần mở rộng(còn gọi là phần đuôi-Extension) và dc phân cách với nhau bằng dấu chấm(.) Vdu: baigiang.doc, tinhoc.xls, hoten.txt
- Đặc điểm của KiểuĐặcdữ liệu điểm:tệp ? • Lưu trữ trên bộ nhớ ngoài và không bị mất khi tắt nguồn điện • Lượng thông tin lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa.
- Phân loại theo 2 cách * XétCÂUtheo HỎIcách tổ:chức dữ liệu : Chúng• taTệpphânvăn bảnloại tệp theo• Tệpmấycócáchcấu trúc? Và* Xétnhưtheothếcáchnàothức?truy cập • Tệp truy cập tuần tự • Tệp truy cập trực tiếp Lưu ý : Khác với mảng, số lượng phần tử của tệp không cần xác định trước.
- * Xét theo cách tổ chức dữ liệu: Tệp văn bản: Tệp có cấu trúc: Là tệp mà dữ liệu được ghi dưới dạng các Là tệp mà các thành phần của nó được tổ kí tự theo mã ASCII. Trong tệp văn bản, chức theo một cấu trúc nhất định.Tệp nhị dãy kí tự kết thúc bởi kí tự xuống dòng phân là một trường hợp riêng của tệp có cấu hay kí tự kết thúc tệp tạo thành một dòng trúc Vdu: sách, tài liệu, bài học Vdu: dữ liệu ảnh, âm thanh
- * 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: Cho phép truy cập đến một dữ liệu nào đó Cho phép tham chiếu đến dữ liệu cần truy cập trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi bằng cách xác định trực tiếp vị trí (thường là số qua lần lượt tất cả các dữ liệu trước nó hiệu) của dữ liệu đó Vdu: Để đến được phần tử thứ N trong tệp phải truy cập lần lượt qua N -1 phần tử trước đấy
- CÂU HỎI 5: Cách thức mà ngôn ngữ lập trình cung cấp để có thể thao•tácKhaivới kiểubáotệpbiến? tệp • Mở tệp • Đọc/ghi dữ liệu • Đóng tệp
- Bài 15: Thao Tác 1. Khai báo: Với Tệp 2. Thao tác với tệp: Trong mục này ta xét cách khai báo, thao tác với tệp văn bản trong Pascal
- CÂU HỎI : VARCú : TEXT; tệp văn bản có dạng ? Vdu: Var tep1,tep2 : Text; Program vd1; Uses crt; Var tep1,tep2: TEXT;
- KHAI BÁO GẮN TÊN TỆP Ghi Đọc MỞ TỆP ĐỂ GHI DỮ LIỆU MỞ TỆP ĐỂ ĐỌC DỮ LIỆU GHI TỆP VĂN BẢN ĐỌC TỆP VĂN BẢN ĐÓNG TỆP Hình 16 : Sơ đồ liên hệ giữa các thao tác với tệp (dựa trên các đầu mục và kiến thức bài học)
- Cú pháp: a. Gắn tên tệp CÂU HỎI : ASSIGNThủ( , ); Trong đó : lànóbiếnlà biếnxâutệphoặc? hằng xâu. Ví dụ: (học sinh theo dõi không ghi) ASSIGN (F2, ‘D:\TP\ BAITAP.INP’); Biến F2 được gắn với tệp BAITAP.INP đã có trong thư mục TP ở ổ đĩa D.
- b. Mở tệp: Lưu ý : Tệp có thể dùng để chứa kết quả ra hoặc dữ liệu vào. Trước khi mở tệp, biến tệp phải được gắn tên tệp bằng thủ tục ASSIGN Thủ tục mở tệp chia làm 2 hướng như hình vẽ đã xem • Mở tệp để ghi dữ liệu • Mở tệp để đọc dữ liệu Tệp đã tồn tại thì mở để lấy hay đọc dữ liệu, tệp cần đưa dữ liệu vào thì mở để ghi dữ liệu.
- b. Mở tệp: b1. Mở tệp để ghi dữ liệu: Cú pháp: REWRITE ( ); CÂU HỎI: Ví dụ: Cú pháp mở tệp để ghi dữ liệu ? Program vd1; Assign(tep2,‘D:\dulieu.inp’); Var tep2: TEXT; Rewrite (tep2); BEGIN Assign(tep2,‘D:\dulieu.inp’); Rewrite(tep2);
- b. Mở tệp: b2. Mở tệp để đọc dữ liệu: Cú pháp: RESET ( ); Ví dụ: Assign(tep2,‘D:\dulieu.inp’); CÂUResetHỎI (:tep2); Cú pháp mở tệp để đọc dữ liệu ? Program vd1; Var tep2: TEXT; BEGIN Assign(tep2,‘D:\dulieu.inp’); Reset(tep2);
- c. Đọc / ghi tệp văn bản: Chú ý: việc đọc tệp văn bản được thực hiện giống như nhập từ bàn phím. Việc ghi dữ liệu ra tệp văn bản giống như in ra màn hình. Dữ liệu trong tệp văn bản được chia thành các dòng. • Đọc văn bản (Read hoặc Readln) • Ghi văn bản (Write hoặc Writeln)
- c. Đọc/ghi tệp văn bản: c1. thủ tục đọc tệp văn bản: Cú pháp: READ ( , ); READLN ( , ); DanhCÂU sáchHỎI: biến là một hoặc nhiều tên biến đơn. Câu lệnh dùng thủ tục VD: đọcReadcó dạng (tepA,? A, B, C) Program vd2; Var tep2: TEXT; VD: a,b,c : integer; BEGIN ASSIGN(tep2, ‘D:\dulieu.inp’); RESET (tep2); READLN (tep2,a,b,c);
- c. Đọc/ghi tệp văn bản: c1. thủ tục ghi tệp văn bản: WRITE ( , ); WRITELN ( , ); Trong đó danhCÂUsáchHỎI:kết quả gồm một hoặc nhiều phần tử. Phần tử có thể làCâubiếnlệnhđơndùnghoặcthủ tụcbiểu tức (số học, quan hệ logic) hoặc hằng ghi có dạng ? xâu. Program vd2; Var tep2: TEXT; a,b,c : integer; VD: BEGIN ASSIGN(tep2, ‘D:dulieu.inp’); Rewrite (tep2); Write (tep2,2,’ ’,4,’ ’,6);
- Tìm hiểu thêm : (học sinh theo dõi không ghi) Một số hàm chuẩn dùng khi đọc /ghi tệp văn bản: EOF ( ); Cho biết con trỏ tệp đã ở vị trí cuối tệp hay chưa. Nếu trỏ tệp ở cuối tệp thì hàm EOF trả lại giá trị TRUE. EOLN ( ); Cho biết con trỏ tệp đã ở vị trí cuối dòng hay chưa. Nếu trỏ tệp ở cuối dòng thì hàm EOLN trả lại giá trị TRUE.
- Cú pháp: d. Đóng tệp: CÂU HỎI: Câu lệnh dùng thủ tục đóng CLOSEtệp?( ); VD: close (tep1); Lưu ý: Sau khi làm việc xong với tệp thì cần phải đóng tệp. Việc đóng tệp là đặc biệt quan trọng sau khi ghi dữ liệu, khi đó hệ thống mới thực sự hoàn tất việc ghi dữ liệu ra tệp
- ASSIGN( , ); Ghi Đọc Rewrite( ); Reset( ); Write( , ); Read( , ); Close( ); Hình 16: Sơ đồ liên hệ giữa các thao tác với tệp
- Đọc dữ liệu từ tệp Ghi dữ liệu ra tệp Program vd2; Program vd1; Var Var F1: TEXT; F1: TEXT; x, y: integer; x, y: integer; BEGIN BEGIN ASSIGN(F1, ‘D:\TP\BAITAP.INP’); ASSIGN(F1, ‘D:\TP\DULIEU.PAS’); RESET (F1); REWRITE (F1); READ (F1, x , y); x:=3; y:=5; WRITE (‘Hai so do la’ , x , y); WRITE (F1, x, y ,x+y); Close(F1); Close(F1); Readln; Readln; END. END.
- BÀI TẬP CỦNG CỐ I. Hãy chọn phương án trả lời đúng nhất Câu 1: Trong Pascal để khai báo biến tệp văn bản ta sử dụng cú pháp A.Var : Text; B.Var : Text; C.Var : string; D.Var : string; Câu 2: Để gắn tệp KQ.TXT cho biến tệp f1 ta sử dụng câu lệnh: A. f1:=‘KQ.TXT’; B. KQ.TXT:=f1; C. Assign(‘KQ.TXT’,f1); D. Assign(f1, ‘KQ.TXT’);