Giáo án Tin học 11 KIỂU DỮ LIỆU TỆP THAO TÁC VỚI TỆP I Mục tiêu: Kiến thức: - Khái niệm tệp - Kiểu tệp - Các thủ tục hàm thao tác tệp Kĩ năng: - Học sinh biết cách lấy liệu từ tệp lưu trữ dạng tệp - Học sinh ghi nhớ, biết cách sử dụng thủ tục hàm thao tác tệp Thái độ: - Học sinh thấy cần thiết tiện lợi kiểu liệu lưu trữ dạng tệp - Học sinh có ý thức lưu trữ liệu cách khoa học, phòng chống mát nhiễm virus - Học sinh ý thức tôn trọng quyền, không sữa chữa vô ý thức phần mềm chưa mua quyền II Dự kiến phương pháp phương tiện giảng dạy: Phương pháp: - Hỏi đáp - Giải vấn đề 2 Phương tiện: - Bảng đen, phấn - Chương trình minh hoạ III Tiến trình lên lớp: Ổn định tình hình lớp:(2 phút) - Sỹ số: có mặt: vắng mặt: - ổn định trật tự lớp Giới thiệu giấo viên dự Kiểm tra cũ: (5phút) - Câu hỏi: Hãy khai báo mảng có n phần tử ( n) mảng A có kiểu phần tử xâu (string) mảng B có kiểu phần tử kí tự (Char) (gọi học sinh xung phong lên bảng học sinh khác nhận xét, hỏi thêm hai phần tử mảng có gán giá trị cho khơng) - Trả lời: * VAR A: ARRAY n] OF STRING; B: ARRAY[1 n] OF CHAR; * gán chúng khơng kiểu liệu Nội dung mới: Đặt vấn đề: (1’) Ta biết kiểu liệu học lưu trữ nhớ RAM mang tính chất tạm thời phục vụ cho q trình xử lí thơng tin Vì mà dừng chương trình điện giá trị chúng bị Đối với tốn liệu lưu trữ để xử lí nhiều lần với khối lượng lớn cần có kiểu liệu khác với kiểu liệu học Trong Turbo Pascal kiểu liệu tệp T Hoạt động G HS Hoạt động GV Nội dung ghi bảng Các em hình dung thực tế tệp giống phim Trong phim gồm nhiêù ảnh Khi ta không muốn xem ảnh ảnh phim không bị đi; Bài 14: KIỂU TỆP Khái niệm tệp: Tệp tập hợp liệu kiểu nhóm với thường lưu trữ thiết bị với tên ta xem phim lâu dài, không đdùng 5’ - HS: Đĩa mềm, nhiều lần Và tệp đĩa cứng, đĩa CD… Không bị tắt nguồn, lâu dài ?Nhắc lại thiết bị ngồi khơng có nguồn điện, với khối lượng lớn * Cấu trúc tệp: Tệp lưu trữ thiết bị ngồi tệp có ưu điểm gì? Tại thời điểm tất ô bị che trừ ô gọi cửa sổ tệp Nhờ cửa sổ tệp … EOF Cửa sổ tệp … Dấu hiệu cuối tệp đọc ghi liệu vào tệp vị trí sau thành phần Giống: dãy gồm phần tử 5’ kiểu cuối tệp dấu hiệu cuối tệp So sánh với mảng? TYPE = FILE OF tử khơng xác trữ thiết bị ngồi… Có hai cách: + Gián tiếp: Khác: số phần định trước, lưu Khai báo biến kiểu tệp: ; Để làm việc với biến tệp trước hết phải biết VAR biếntệp: kiểutệp; cách khai báo biến + Trực tiếp kiểu tệp VAR biếntệp: FILE OF ; Trong đó: : biến kiểu tệp : kiểu phần tử tệp ví dụ1: var f1: file of integer; Biến tệp f1 chứa số nguyên Var sothuc: file of real; Giải thích vd1? vd2 Khai báo biến sothuc chứa số thực? Khi khai báo var x: integer Các hàm thủ tục thao tác tệp: 5’ Hoặc Type giá trị chưa thuc= FILE OF xác định, phải dùng lệnh REAL; Var sothuc:thuc; gán chẳng hạn x:= thủ tục Read(x) để nhập giá trị cho x từ bàn phím Cũng khai báo var f : file of integer thi a Thủ tục gán tên cho biến tệp: cú pháp: ASSIGN(tênbiếntệp, têntệp); chức năng: gán cho Trong biến kiểu xâu xâu; f biến tệp đặt tên theo qui tắc số nguyên chưa Turbo Pascal tương ứng với tệp thực Vd1: Để gán tên cho biến S:= ‘dulieu.dat’; ASSIGN(f, s); tệp f ta phải sử dụng thủ tục : Mọi thao tác tệp Hoặc ASSIGN(f, ‘dulieu.dat’); thông qua 5’ Vì muốn làm thao tác khác tệp trước tiên phải sử dụng thủ tục Vd1: giả sử có biến xâu s cần gán biến tệp f với b Thủ tục mở tệp: * Mở tệp mới: cú pháp: ASSIGN(tênbiếntệp, têntệp); tệp có tên dulieu.dat REWRITE(tênbiếntệp); Cần gán biến tệp f1 với tệp chức năng: tạo tệp có tên solieu.dat thư vd1: mục gốc ổ đĩa C? Muốn thao tác tệp ta phải mở tệp để đọc ASSIGN(f, ‘dulieu.dat’); REWRITE(f); liệu từ tệp ta 5’ Giải thích ví dụ Học sinh lên tạo tệp Giải thích ví dụ? Chú ý: - Nếu tồn nội dung tệp bị xoá tạo thành tệp có kích thước bảng Muốn tạo tệp có tên byte lop11vp.dat thư mục - Nếu khơng có đường khoi11 ổ đĩa C? dẫn tệp tạo thư mục hành Vd2: * Mở tệp có sẵn: cú pháp: ASSIGN(tênbiếntệp, têntệp); RESET(tênbiếntệp); chức năng: mở tệp có tên gán cho trước để sẵn sàng truy xuất (đọc/ ghi) liệu tệp Vd: Assign(f,’solieu.dat’); Học sinh giải thích 5’ Học sinh lên bảng Giải thích ví dụ? Reset(f); Muốn mở tệp quochoc.dat c Thủ tục ghi liệu: thư mục hành để cú pháp: đọc WRITE(tênbiếntệp, Khi mở tệp Học sinh trả lời bt1,bt2, ,btn); tức tạo tệp chức năng:lần lượt ghi giá trị chúng cần phải ghi liệu bt1,bt2, ,btn vào tệp bắt đầu vị vào tệp trí cửa sổ tệp Chúng ta biết cách ghi Vd: write(f,a); liệu vào tệp, làm để đọc liệu từ tệp ra? Chú ý: biểu thức phải kiểu liệu với thành phần tệp 5’ d Thủ tục đọc liệu từ tệp: cú pháp: READ(tênbiếntệp, biến1,biến 2, ,biếnn); Read(x): nhập giá trị cho x từ đọc giá trị từ tệp gắn cho chức năng:lần lượt đọc giá trị bàn phím cịn biến tệp f1 gán cho biến tệp vị trí cửa sổ tệp read(f,x) đọc a? gán cho biến tương ứng liệu từ tệp Vd1: read(f,a); có tên gán cho biến tệp f gán cho biến x 5’ Sự khác Read(x) 0và Read(f,x)? Vd2: read(f,a,b,c); Chú ý: biểu thức phải kiểu liệu với thành phần tệp 3 -31 410 32 -33 d Thủ tục Seek: cú pháp: SEEK(tênbiếntệp, Sau làm biếnnguyên); việcvới tệp xong Chức năng:đưa cửa sổ tệp vị trí phải đóng tệp lại để tránh phần tử có số thứ tự xác định mát thông tin giá trị vd: seek(f1,4); 5’ e Thủ tục đóng tệp: cú pháp: CLOSE(tênbiếntệp); f Một số hàm: - Hàm EOF(tênbiếntệp): có giá trị True cửa sổ tệp cuối tệp cho giá trị False ngược lại - Hàm FILESIZE(tênbiếntệp): cho biết kích thước tệp Assign((tênbiếntệp, têntệp); Rewrite(tênbiếntệp); Củng cố kiến thức (2’): - Các thủ tục hàm thao tác tệp Rewrite(tênbiếntệp); Write(tênbiếntệp, bthức); Read(tênbiếntệp, biến); - Sự khác read(x) read(f,x) ... sổ tệp Nhờ cửa sổ tệp … EOF Cửa sổ tệp … Dấu hiệu cuối tệp đọc ghi liệu vào tệp vị trí sau thành phần Giống: dãy gồm phần tử 5’ kiểu cuối tệp dấu hiệu cuối tệp So sánh với mảng? TYPE ... trình điện giá trị chúng bị Đối với tốn liệu lưu trữ để xử lí nhiều lần với khối lượng lớn cần có kiểu liệu khác với kiểu liệu học Trong Turbo Pascal kiểu liệu tệp T Hoạt động G HS Hoạt động GV... REWRITE(tênbiếntệp); Cần gán biến tệp f1 với tệp chức năng: tạo tệp có tên solieu.dat thư vd1: mục gốc ổ đĩa C? Muốn thao tác tệp ta phải mở tệp để đọc ASSIGN(f, ‘dulieu.dat’); REWRITE(f); liệu từ tệp ta