Giáo án Tin học 11 - Tiết 33 Bài 14: Kiểu dữ liệu tệp & Bài 15: Thao tác với tệp

doc 6 trang thienle22 7060
Bạn đang xem tài liệu "Giáo án Tin học 11 - Tiết 33 Bài 14: Kiểu dữ liệu tệp & Bài 15: Thao tác với 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:

  • docgiao_an_tin_hoc_11_tiet_33_bai_14_kieu_du_lieu_tep_bai_15_th.doc

Nội dung text: Giáo án Tin học 11 - Tiết 33 Bài 14: Kiểu dữ liệu tệp & Bài 15: Thao tác với tệp

  1. Sở GD&ĐT Thừa Thiên Huế Trường THPT Tam Giang Ngày soạn: 09/03/2012 Ngày dạy: 16/03/2012 Tiết 33 Bài 14: KIỂU DỮ LIỆU TỆP Bài 15: THAO TÁC VỚI TỆP I. Mục đích, yêu cầu 1. Về kiến thức - Biết vai trò và đặc điểm của kiểu tệp; - Biết hai cách phân loại tệp: theo cách tổ chức dữ liệu và theo cách truy cập; - Hiểu bản chất của tệp văn bản; - Biết khai báo biến tệp và các bước làm việc với tệp: gắn tên tệp cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp; - Biết được một số hàm và thủ tục chuẩn khi làm việc với tệp. 2. Về kỹ năng - Khai báo đúng biến kiểu tệp văn bản; - Thực hiện được các thao tác xử lí tệp: gắn tên tệp, mở/đóng tệp, đọc/ghi tệp; - Sử dụng được các thủ tục và hàm liên quan để đọc/ghi dữ liệu của tệp. - Có thể tạo được chương trình ghi dữ liệu ra tệp, đọc dữ liệu từ tệp văn bản. 3. Về thái độ - Thấy được sự cần thiết và tiện lợi của kiểu tệp; - Có ý thức lưu trữ dữ liệu một cách khoa học, phòng chống mất mát dữ liệu; - Góp phần rèn luyện tư duy và tác phong lập trình; - Kích thích lòng say mê lập trình của những học sinh khá giỏi thông qua các yêu cầu nâng cao. II. Phương pháp, phương tiện dạy học 1. Phương pháp Thuyết trình, đặt vấn đề, mô tả và diễn giải, minh họa trực quan, hoạt động nhóm. 2. Phương tiện Sách giáo khoa, sách giáo viên, máy vi tính, máy chiếu projector, một số đoạn chương trình Pascal hay một vài chương trình hoàn chỉnh thể hiện các câu lệnh thao tác với tệp; chuẩn bị các minh họa (các ví dụ, hình vẽ cần thiết). III. Các bước lên lớp 1. Ổn định lớp 2. Giảng bài mới Thời Hoạt động của thầy Hoạt động của trò Nội dung ghi bảng gian Bài 14: 3 - Các kiểu dữ liệu chúng - Được lưu trữ ở bộ nhớ KIỂU DỮ LIỆU TỆP phút ta đã học lưu trữ ở đâu, có trong, có đặc điểm là bị đặc điểm gì? mất đi khi tắt nguồn điện. 1. Vai trò của kiểu tệp Tất cả các dữ liệu - Với bài toán có khối thuộc các kiểu dữ liệu đã lượng dữ liệu lớn, có yêu xét đều được lưu trữ ở bộ cầu xử lý nhiều lần thì Giáo viên: Võ Văn Tú Trang 1
  2. Sở GD&ĐT Thừa Thiên Huế Trường THPT Tam Giang nhớ trong (RAM) và do cần có kiểu dữ liệu tệp. đó dữ liệu sẽ bị mất khi - Đặc điểm: tắt máy. Với một số bài + Được lưu trữ lâu dài ở toán có khối lượng dữ bộ nhớ ngoài và không bị liệu lớn, có yêu cầu lưu mất khi tắt nguồn điện. trữ để xử lý nhiều lần thì + Lượng dữ liệu lưu trữ cần có kiểu dữ liệu tệp. trên tệp có thể rất lớn - Lượng dữ liệu lớn là bao (chỉ phụ thuộc vào dung nhiêu? lượng bộ nhớ) 4 2. Phân loại và thao tác phút với tệp - Em hãy cho biết tệp có - Xét theo cách tổ chức dữ a. Phân loại tệp bao nhiêu loại? liệu có Tệp văn bản và - Xét theo cách tổ chức - Giới thiệu sơ lược từng Tệp có cấu trúc. Xét theo dữ liệu, tệp có 2 loại: loại tệp: cách truy cập có tệp truy + Tệp văn bản + Tệp văn bản là tệp mà cập tuần tự và tệp truy cập + Tệp có cấu trúc dữ liệu được ghi dưới trực tiếp. - Xét theo cách thức truy dạng các ký tự thuộc bảng cập, tệp có 2 loại: mã ASCII. + Tệp truy cập tuần tự + Tệp có cấu trúc là tệp + Tệp truy cập trực tiếp. mà các thành phần của nó được tổ chức theo một cấu trúc nhất định. + Tệp truy cập tuần tự cho phép truy cập đến một dữ liệu nào đó bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu 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 đó. - Số lượng phần tử của - Kiểu mảng (số lượng Chú ý: Số lượng phần tử tệp khác với kiểu dữ liệu phần tử phải xác định của tệp không cần xác nào? trước) định trước. b. Thao tác với tệp - Hai thao tác cơ bản đối - Thao tác đọc ghi tệp với tệp là Ghi dữ liệu vào được thực hiện với từng tệp và đọc dữ liệu từ tệp. phần tử của tệp. - Để có thể thao tác với - Ta cần tìm hiểu việc: tệp, ta cần tìm hiểu các + Khai báo biến tệp ; cách thức gì? + Mở tệp ; Giáo viên: Võ Văn Tú Trang 2
  3. Sở GD&ĐT Thừa Thiên Huế Trường THPT Tam Giang + Đọc /Ghi dữ liệu ; + Đóng tệp. Bài 15: 2 THAO TÁC VỚI TỆP Phút - Để làm việc với dữ liệu 1. Khai báo kiểu tệp ta phải sử dụng - Cú pháp: biến tệp, khai báo biến tệp Var :Text; có dạng: - Ví dụ: Var tep1, tep2:Text; - Mỗi tệp dữ liệu đều có - Cho ví dụ về tên tệp. 2. Thao tác với tệp 3 một tên để tham chiếu, baitap.dat, vidu.txt, a. Gắn tên tệp phút tên tệp là biên xâu hoặc - Cú pháp: hằng xâu. Assign(biến tệp, tên tệp); - Ta không thao tác trực - Ý nghĩa: Gán tên của tiếp với tệp dữ liệu trên một tệp ở trên đĩa cho đĩa mà thông qua biến tệp biến tệp đang lưu giữ ở (đại diện cho tệp) bộ nhớ trong. Biến tệp trở thành đối - Ví dụ: tượng trực tiếp trong Assign(tep1,‘dulieu.txt’); chương trình để nhận các - Trường hợp nào thì có thao tác đối với tệp. đường dẫn trong tên tệp. Assign(tep2, Tên tệp không nằm ‘D:\TP\baitap.inp’) ; trong thư mục chạy chương trình của Pascal. 3 b. Mở tệp để ghi phút - Nếu trên đĩa chưa có tệp - Cú pháp: vidu.txt thì tệp sẽ được - Trường hợp trên đĩa Rewrite(biến tệp); tạo ra với nội dung rỗng, chưa có tên tệp được gán - Ý nghĩa: Mở tệp để nếu đã có thì nội dung cũ cho biến tệp? chuẩn bị ghi dữ liệu ra sẽ bị xóa để chuẩn bị ghi tệp. dữ liệu mới. - Ví dụ: Assign(tep1,‘D:\vidu.txt’); Rewrite(tep1); 5 - Danh sách kết quả c. Ghi dữ liệu ra tệp phút (dskq) gồm một hoặc - Cú pháp: nhiều phần tử, phần tử có Write(biến tệp, dskq); thể là biến đơn, biểu thức, Hoặc hằng xâu, Writeln(biến tệp, dskq); - Trường hợp dskq có - Nếu dskq có nhiều phần - Ý nghĩa: Ghi dữ liệu ra nhiều phần tử thì các tử? tệp. phần tử ngăn cách nhau Var tep1:Text; - Ví dụ: Viết đoạn bởi dấu phẩy “,”. Begin chương trình để ghi ba số Assign(tep1,‘D:\vidu.txt’); 1, 6, 5 ra tệp vidu.txt lưu Rewrite(tep1); trữ ở thư mục gốc ổ đĩa - Sau khi thực hiện thủ Write(tep1,1,‘ ’, 6,‘ ’, 5); D: Giáo viên: Võ Văn Tú Trang 3
  4. Sở GD&ĐT Thừa Thiên Huế Trường THPT Tam Giang tục Reset(biến tệp); vị trí 3 con trỏ tệp sẽ ở đầu tệp. d. Mở tệp để đọc phút - Cú pháp: - Nếu trên đĩa chưa có tệp Reset(biến tệp); vidu.txt thì máy sẽ báo lỗi - Ý nghĩa: Mở tệp để xuất nhập (I/O error), lúc chuẩn bị đọc dữ liệu từ đó chương trình sẽ thoát - Trường hợp trên đĩa tệp. ra. chưa có tên tệp được gán - Ví dụ: cho biến tệp? Assign(tep1,‘D:\vidu.txt’); - Danh sách biến là một Reset(tep1); hoặc nhiều tên biến đơn, trường hợp có nhiều biến 5 thì các biến ngăn cách e. Đọc dữ liệu từ tệp phút nhau bởi dấu phẩy. - Cú pháp: Read(biến tệp, ds biến); Hoặc Readln(biến tệp, ds biến); - Ý nghĩa: Đọc dữ liệu từ Program vd1; tệp rồi gán giá trị cho các Var tep1:text; biến tương ứng. a,b,c:integer; - Đọc giá trị trong tệp - Cho biết chương trình Begin vidu.txt lưu ở ổ đĩa D: rồi bên thực hiện công việc Assign(tep1,‘D:\vidu.txt’); gán giá trị cho các biến gì? Rewrite(tep1); tương ứng a, b, c; sau đó Readln(tep1,a,b,c); xuất các giá trị vừa đọc Write(‘Ba so la:’,a,b,c); được ra màn hình. Close(tep1); (tệp vidu.txt đã được ghi Readln; trước đó, chứa 3 phần tử End. có giá trị lần lượt là 1, 6, 5). - Nếu thực hiện việc ghi 2 dữ liệu vào tệp mà không f. Đóng tệp phút đóng tệp thì không có dữ - Cú pháp: liệu nào được ghi hoặc Close(biến tệp); chỉ ghi một phần vào tệp, - Ý nghĩa: Để hoàn tất nguyên nhân do các dữ việc đọc hay ghi dữ liệu liệu chứa trong bộ nhớ trên tệp. đệm chưa kịp chuyển vào - Ví dụ: đĩa thì chương trình đã bị Close(tep1); ngắt. - Tệp văn bản được tổ 3 chức thành từng dòng với g. Một số hàm chuẩn phút độ dài mỗi dòng khác thường dùng nhau nhờ có thêm các dấu - Hàm EOF(biến tệp) Giáo viên: Võ Văn Tú Trang 4
  5. Sở GD&ĐT Thừa Thiên Huế Trường THPT Tam Giang hết dòng hay dấu chấm - Ý nghĩa: Hàm trả về giá xuống dòng. Đó là cặp ký trị true nếu con trỏ tệp tự điều khiển CR và LF, đang chỉ tới vị trí cuối chúng được nhận dạng để tệp và ngược lại. ngăn cách giữa hai dãy ký - Hàm EOLN(biến tệp) tự tương ứng với hai dòng - Ý nghĩa: Hàm trả về giá khác nhau. trị true nếu con trỏ tệp - Cho ví dụ hình ảnh của đang chỉ tới vị trí cuối một tệp văn bản. dòng và ngược lại. THPT CR ABC CR TAM HET EOF LF 123 LF GIANG Tệp văn bản trên có - Tệp bên có 3 dòng: bao nhiêu dòng? (1) THPT TAM GIANG (2) ABC123 (3) HET 2 * Sơ đồ thao tác với tệp - Đưa ra hình ảnh là “sơ phút - Điền nội dung tương ứng (hình 16, SGK trang 86) đồ câm” quá trình thao với 2 nhánh ghi/đọc dữ tác với tệp, cho học sinh liệu đối với tệp vào sơ đồ. quan sát rồi điền nội dung vào sơ đồ. 9 * Bài tập áp dụng - Chia lớp thành 4 nhóm, phút (Hoạt động nhóm) (phân công cụ thể công Program ghi_tep; - Câu 1: việc cho từng nhóm). Var f:text; Viết chương trình nhập a, b:integer; vào 2 số nguyên a, b rồi Begin ghi giá trị vừa nhập ra tệp Assign(f,‘D:\songuyen.txt’); songuyen.txt lưu ở đĩa D: Rewrite(f) ; Write(‘Nhap 2 so nguyen :’); Readln(a, b); Write(f, a, b); Close(f); Readln; End. Program doc_tep; - Câu 2: Var f:text; Viết chương trình đọc dữ a, b:integer; liệu từ tệp songuyen.txt Begin lưu ở đĩa D: rồi xuất giá Assign(f,‘D:\songuyen.txt’); trị vừa đọc ra màn hình. Reset(f) ; Read(f,a,b); Write(‘Gia tri la’,a ,b); Close(f); Readln; End. Giáo viên: Võ Văn Tú Trang 5
  6. Sở GD&ĐT Thừa Thiên Huế Trường THPT Tam Giang Program Ghi_doc_tep; - Chương trình bên có - Câu 3: Var f:tetx; tổng cộng là 5 lỗi cú pháp: Ghi ra những lỗi của a, b:integer; (1) tetx chương trình sau rồi sửa Begin (2) Assig lại cho đúng, các lỗi Assig(f,‘D:\songuyen.txt’); (3) Rewriteln được xếp theo thứ tự từ Rewriteln(f) ; (4) Resett trên xuống dưới. Write(‘Nhap 2 so nguyen :’); (5) Closef Readln(a, b); Write(f, a, b); - Các lỗi được sửa lại Close(f); đúng cú pháp là: Resett(f) ; (1) text Read(f,a,b); (2) Assign Write(‘Gia tri la’,a ,b); (3) Rewrite Closef(f); (4) Reset Readln; (5) Close End. 3. Củng cố, dặn dò: (1 phút) - Nhấn mạnh một số thao tác cơ bản trên tệp văn bản. - Về nhà làm bài tập trong SGK, xem trước bài: VÍ DỤ VÀ LÀM VIỆC VỚI TỆP. Giáo viên: Võ Văn Tú Trang 6