Chương V TỆP VÀ THAO TÁC VỚI TỆP Bài 15 : THAO TÁC VỚI TỆP I. MỤC ĐÍCH, YÊU CẦU : 1 Kiến thức : Học sinh biết được vai trò của kiểu dữ liệu tệp . Học sinh biết được có hai cách phân loại tệp . Học sinh biết khai báo biến tệp và các thao tác cơ bản đối với tệp văn bản . 2 Kỹ năng : Dần dần hình thành kỹ năng về các thao tác với tệp văn bản . 3 Thái độ : Rèn luyện cho học sinh có ý thức lưu trữ dữ liệu một cách khoa học, phòng chống mất mát thông tin hoặc nhiễm virút . II. PHƯƠNG PHÁP, PHƯƠNG TIỆN : Sử dụng thuyết trình, giảng giải, gợi ý nêu vấn đề . Dùng bảng trong in sẵn hình 16 trong SGK và chuẩn bị máy chiếu overhead . III. NỘI DUNG : NỘI DUNG – HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Hoạt động 1 : Đặt vấn đề : Trong các giờ thực hành đã học, sau khi chạy một chương trình ta thấy kết quả in lên màn hình, tuy nhiên muốn sử dụng kết quả đó về sau thì không được (nó không lưu trữ lại lâu dài) => Để khắc phục nhược điểm này ta nghiên cứu dữ liệu kiểu tệp . § 14 : KIỂU DỮ LIỆU TỆP Hoạt động 2 : Vai trò kiểu tệp : Câu hỏi 1 : Trong máy tính có những loại bộ HS : Chú ý nghe giảng . HS : Lần lượt trẻ lời từng câu hỏi 1 (Dựa vào kiến thức đã học ở lớp 10) nhớ nào ? Loại bộ nhớ nào không bị mất dữ liệu khi tắt máy hoặc mất điện ? Câu hỏi 2 : Vậy theo em thì các kiểu dữ liệu đã học được lưu trữ ở bộ nhớ nào ? Dự đoán xem dữ liệu kiểu tệp được lưu trữ trên bộ nhớ nào ? Câu hỏi 3 : Bộ nhớ trong hay ngoài thường có dung lượng lớn hơn ? GV : Chốt lại : - Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài cho nên nó không bị mất khi tắt máy hoặc mất điện . - Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng ổ đĩa . Hoạt động 3 : Phân loại tệp và thao tác với tệp . HS : Dựa vào phần đặt vấn đề của thấy giáo và các câu trả lời bên trên để suy luận rồi đưa ra câu trả lời . HS : Dựa vào kiến thức đã học ở lớp 10 để trả lời câu hỏi . * Phân loại tệp : GV : Giới thiệu cho học sinh biết được hai cách phân loại tệp . ( Không đòi hỏi học sinh phải hiểu cặn kẽ từng loại tệp một ) . - Theo cách tổ chức dữ liệu : + Tệp văn bản . + Tệp có cấu trúc . - 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 . Hoạt động 4 : Chuyển tiếp sang bài § 15 GV : Có hai thao tác cơ bản đối với tệp là ghi dữ liệu vào tệp và đọc dữ liệu từ tệp ra . Ta xét xem trong Pascal các thao tác đó được thể hiện như thế nào đối với tệp văn bản ? § 15 : THAO TÁC VỚI TỆP HS : Chú ý nghe giảng và ghi chép bài . HS : Chú ý nghe giảng . Hoạt động 5 : Khai báo GV : Viết khai báo biến tệp lên bảng rồi giải thích các từ khóa, tên biến tệp để học sinh hiểu được . Var <tên biến tệp> : Text ; Hoạt động 6 : Thao tác với tệp : Hoạt động 6.1 : Gắn tên tệp : GV : Giải thích cho học sinh tại sao phải gắn tên tệp cho biến tệp, rồi đưa ra thủ tục : Assign (<tên biến tệp> , <tên tệp>) ; VD : Để gắn tệp KQ.TXT cho biến tệp f : Assign(f,’KQ.TXT’); Hoạt động 6.2 : Mở tệp : GV : Lấy VD về 2 tình huống cần phải mở vở HS : Lấy một vài ví dụ về khai báo biến tệp văn bản . VD : Var t1,t2 : Text ; HS : Mỗi học sinh tự lấy một vài ví dụ và ghi vào vở . HS : Chú ý nghe giảng và liên hệ với bài học . “Tin học 11” đó là : Mở ra để ghi bài (ghi dữ liệu) và mở ra để học bài (Đọc dữ liệu) => 2 trường hợp phải mở tệp . GV : Giới thiệu hai thủ tục để mở tệp : + Mở tệp để ghi dữ liệu : Rewrite(<tên biến tệp>); + Mở tệp để đọc dữ liệu : Reset(<tên biến tệp>); GV : Phải nhấn mạnh rằng : Trước khi sử dụng hai thủ tục trên phải gắn tên tệp cho biến tệp đồng thời biến tệp phải được khai báo từ trước . GV : Yêu cầu học sinh lấy ví dụ (khai báo biến tệp, gắn tên tệp cho biến tệp, mở tệp) sau đó gọi hai học sinh lên trình bày . GV : Có thể nói thêm để học sinh biết về trường hợp đã có tên tệp ở trên đĩa và trường HS : Mỗi học sinh lấy một ví dụ . hợp chưa có tệp đó để học sinh hiểu thêm . Hoạt động 6.3 : Đọc / ghi tệp văn bản : Câu hỏi : Để nhập dữ liệu từ bàn phím và để in dữ liệu lên màn hình ta có tể dùng thủ tục gì ? GV : Giới thiệu các thủ tục đọc dữ liệu từ tệp và ghi dữ liệu vào tệp . * Đọc dữ liệu từ tệp : Read(<tên biến tệp>,<danh sách kết quả>); Hoặc Readln(<tên biến tệp>,<danh sách kết quả>); * Ghi dữ liệu vào tệp : Write(<tên biến tệp>,<danh sách kết quả>); Hoặc HS : Trả lời câu hỏi . HS : Ghi các thủ tục vào vở và tự so sánh sự khác nhau giữa thủ tục nhập dữ liệu từ bàn phím, in dữ liệu lên màn hình với các thủ tục đọc dữ liệu từ tệp và ghi dữ liệu vào tệp . HS : Viết các câu lệnh theo sự gợi ý Writeln (<tên biến tệp>,<danh sách kết quả>); GV : Đưa ra ví dụ trong SGK yêu cầu học sinh viết câu lệnh để đọc dữ liệu từ tệp và ghi dữ liệu vào tệp. * Một số hàm thường dùng đối với tệp văn bản GV : Giới thiệu để học sinh biết hai hàm chuẩn thường dùng và ý nghĩa của nó . + Hàm EOF(<tên biến tệp>); + Hàm EOLN(<tên biến tệp>); Hoạt động 6.4 : Đóng tệp . GV : Đưa ra lý do của việc phải đóng tệp để giáo dục cho học sinh ý thức bảo mật, an toàn thông tin . của giáo viên . HS : Tự lấy một vài ví dụ về thủ tục đóng tệp . Close (<tên biến tệp>); VD : Close(f); IV. CỦNG CỐ: Gọi 1 học sinh khái quát lại vai trò của kiểu tệp và phân loại tệp . Học sinh khái quát lại các thao tác phải thực hiện khi đọc dữ liệu từ tệp và ghi dữ liệu vào tệp (dựa vào hình 16 - SGK ) . Cho học sinh làm một số bài tập trắc nghiệm khách quan . . v HS : Lấy một v i v dụ v khai báo biến tệp v n bản . VD : Var t1,t2 : Text ; HS : Mỗi học sinh tự lấy một v i v dụ v ghi v o v . HS : Chú ý nghe giảng v . bài § 15 GV : Có hai thao tác cơ bản đối v i tệp là ghi dữ liệu v o tệp v đọc dữ liệu từ tệp ra . Ta xét xem trong Pascal các thao tác đó được thể hiện như thế nào đối v i tệp v n bản ? . lưu trữ trên tệp có thể rất lớn v chỉ phụ thuộc v o dung lượng ổ đĩa . Hoạt động 3 : Phân loại tệp v thao tác v i tệp . HS : Dựa v o phần đặt v n đề của thấy giáo v các câu trả