1. Trang chủ
  2. » Giáo Dục - Đào Tạo

SKKN Giúp Dạy Tốt Bài Kiểu Dữ Liệu Tệp

17 569 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 64 KB

Nội dung

SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Sở GD&ĐT Đồng Nai Trường THPT Ngơ Quyền SÁNG KIẾN KINH NGHIỆM GIÚP DẠY TỐT BÀI “KIỂU DỮ LIỆU TỆP” GV: PHAN THỊ TÀI TỔ: TỐN-TIN Năm 2012 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền SƠ LƯC LÝ LỊCH KHOA HỌC I THÔNG TIN CHUNG VỀ CÁ NHÂN Họ tên: Phan Thị Tài Ngày tháng năm sinh: 20-06-1983 Giới tính: Nữ Đòa chỉ:20/2-Tổ 12-Khu phố 1_P Tân Hiệp-TP Biên Hòa Điện thoại: 0909790083 Email: phanthitai@gmail.com Chức vụ: Giáo viên Đơn vò công tác: Trường THPT Ngô Quyền – Biên Hòa – Đồng Nai II TRÌNH ĐỘ ĐÀO TẠO: • Học vò cao nhất: Cử nhân • Năm nhận : 2006 • Chuyên ngành đào tạo : Đại học sư phạm Tin III KINH NGHIỆM KHOA HỌC: Lónh vực chuyên môn có kinh nghiệm: Giảng dạy môn Tin Số năm giảng dạy: SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền LÍ DO CHỌN ĐỀ TÀI Hiện nay, với chương trình giảng dạy theo SGK làm học sinh cảm thấy chương trình học Tin học 11 thật khó hiểu Cụ thể đến “Kiểu liệu tệp”, học sinh cảm thấy thật mơ hồ nhập nhằng Trước thực trạng đó, tơi nghĩ nên chọn cách dạy cho đầy đủ dễ hiểu cho học sinh Giúp cho học sinh cảm thấy gần gũi, nhận việc học lập trình thật thú vị Khi học lớp 10, em học “Tệp thư mục”, em làm quen với tệp, dạng tệp Trong ta tiếp tục nhắc dạng cho em thấy với dạng muốn ghi liệu, muốn đọc liệu muốn mở để ghi tiếp liệu có, Với nội dung phong phú, gần gũi với thực tế giúp HS nắm bắt dễ dàng mà khơng cảm thấy q khó hay trừu tượng Tơi tin với nội dung cách dạy hứng thú đem lại tiết học thành cơng cho Thầy lẫ trò SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền KIỂU DỮ LIỆU TỆP I Khái niệm tệp: Tệp dãy phần tử kiểu xếp cách Tệp liệu lưu trữ nhớ ngồi tên Tệp tập hợp số phần tử liệu có cấu trúc giống mảng khác mảng số phần tử tệp chưa xác định Trong Pascal có loại tệp sử dụng là: Tệp có kiểu: Tệp có kiểu tệp mà phần tử có độ dài kiểu liệu Tệp văn bản: Dùng để lưu trữ liệu dạng ký tự bảng mã ASCII, ký tự lưu thành dòng, độ dài dòng khác Ví dụ 2008 (kiểu word) ghi vào tệp văn cần Byte ( khơng phải Byte) Tệp khơng kiểu: Tệp khơng kiểu loại tệp khơng cần quan tâm đến kiểu liệu ghi tệp Dữ liệu ghi vào tệp khơng cần chuyển đổi Tác dụng lớn kiểu liệu tệp ta lưu trữ liệu nhập vào từ bàn phím kết xử lý nhớ RAM tệp để dùng nhiều lần Khai báo: * Định nghĩa kiểu tệp với từ khóa FILE OF phần mơ tả kiểu sau từ TYPE, khai báo biến tệp phần khai báo biến Ví dụ 2.6: SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Type MSN=Array[1 100] of integer; {định nghĩa mảng 100 số ngun} TSN= File of MSN; {định nghĩa tệp TSN có phần tử mảng số ngun} TCV=File of String[80]; {định nghĩa tệp TCV có phần tử chuỗi có độ dài 80 ký tự Bangdiem= Record …… End; TBD= File of Bangdiem; Var: Tep1: TSN; Tep2: TCV; Tep3: TBD; * Định nghĩa trực tiếp biến kiểu tệp phần khai báo biến Var Tep4:File of Array[1 5] of String[80]; Tep5: File of Bangdiem; Truy nhập vào tệp: SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Turbo Pascal xử lý loại tệp : Tệp truy nhập tệp truy nhập trực tiếp * Tệp truy nhập tuần tự: để truy nhập vào phần tử đó, ta bắt buộc phải qua phần tử trước Nếu muốn thêm phần tử vào tệp thêm vào cuối tệp * Tệp truy nhập trực tiếp: tệp truy nhập vào phần tử tệp Muốn truy nhập trực tiếp phải dùng thủ tục Seek (số hiệu phần tử) * Mở tệp: Để mở tệp chuẩn bị lưu trữ liệu, ta sử dụng thủ tục chuẩn sau đây: ASSIGN(biến tệp, tên tệp); REWRITE(biến tệp); Trong đó: Biến tệp: tên biến tệp khai báo sau từ khóa VAR Tên tệp: Là tên ta chọn để ghi liệu vào đĩa Ví dụ : ASSIGN(f, ‘a:\baitap.txt’); REWRITE(f); {khởi tạo tệp rỗng} Sau thủ tục trên, để tiến hành ghi liệu vào tệp ta lại dùng thủ tục WRITE(…): Cách viết: WRITE(biến tệp, giá trị cần ghi vào tệp); Cuối cùng, ta phải đóng tệp thủ tục: CLOSE(biến tệp); II Các loại tệp SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Tệp văn bản: a Khai báo tệp văn bản: Tệp văn khai báo trực tiếp phần khai báo biến: Var Bientep:Text; b Truy nhập vào tệp: Truy nhập vào tệp hiểu nhập liệu vào tệp, ghi lại liệu thiết bị nhớ ngồi, đọc liệu hình máy in xử lý * Mở tệp để ghi: Assign(bientep, tentep); Rewrite(bientep); * Mở tệp có để ghi thêm: Assign(bientep, tentep); Append(bientep); * Mở tệp để đọc liệu: Assign(bientep, tentep); Reset(bientep); c Ghi liệu vào tệp Sau mở tệp dùng thủ tục Write Writeln để ghi liệu vào tệp Ví dụ 2.7: Var T1:Text; Begin SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Assign(T1,’Dulieu.dat’); Rewrite(T1); Writeln(T1,’Tep van ban’); Write(T1,123); Write(T1,’ ’,123.45); Writeln(T1); Close(T1); End Dữ liệu ghi vào tệp sau: Tep van ban 123 1.234500000E+02 Dòng trống d Đọc liệu từ tệp văn Sau tiến hành mở tệp, trỏ tệp đặt dòng đầu.Ta dùng thủ tục Read Readln để đọc liệu từ dòng thời gán vào biến tương ứng, viết biến hình máy in Để viết tồn liệu từ tệp văn thiết bị ngồi thì, lệnh đọc viết phải lặp lặp lại từ dòng đến dòng cuối cùng, nghĩa phải sử dụng vòng lặp: While not eof(Bientep) SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Begin Readln(Bientep, Dong); {biến Dong phải khai báo trước, kiểu String} Write(Dong); End; Hoặc: For i:=1 to filesize(Bientep) Begin Readln(Bientep,Dong); Write(Dong); End; Lưu ý: Muốn lấy lại kiểu liệu nhập vào tệp văn biến phải nhập dòng Ví dụ 2.8: Xây dựng chương trình đơn giản để quản lý cơng chức Dữ liệu nhập bao gồm: Họ tên, Hệ số lương số Dữ liệu xuất hình bao gồm Họ tên, Hệ số lương, Số Lương tháng ( tính theo quy định nhà nước = heso*540000) Chương trình đặt hai khả lựa chọn: Nếu tệp liệu tồn nhập thêm người Nếu tệp chưa có mở tệp SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Trong trường hợp cho biết số người cần nhập Dữ liệu in dạng bảng Program Quan_ly_can_bo; Uses Crt; Var f:Text; hoten:String[20]; c1, heso:real; c2,i,n,socon:byte; Ten:string[12]; Begin Clrscr; Write(‘cho biet ten tep’); readln(ten); Assign(f,ten); Reset(f); If IOResult=0 then Append(f); Else Rewrite(f); Write(‘nhap bao nhieu nguoi’); readln(n); For i:=1 to n Begin Write(‘Hoten’); Readln(hoten); Write(‘He so’); Readln(heso); Write(‘So con’); Readln(socon); 10 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Writeln(f,hoten); Writeln(f,heso:4:2); Writeln(f,socon); End; Close(f); Assign(f,ten); Reset(f); Writeln(‘ ‘); Writeln (‘| Ho va ten | Hs | socon | Luong |’); Writeln(‘ ‘) While not eof(f) Begin Readln(f,hoten); Readln(f,heso); Readln(f,socon); Writeln(‘|’,ten:19,’|’,heso:4:2,’|’,socon:4,’|’,heso*540000:10:2,’|’); End; Readln; End 11 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Tệp có kiểu: a Đọc ghi : - Ghi lên tệp: Write(bientep,bien1,bien2,…); bien1,bien2,…là biến kiểu với biến tệp - Đọc tệp: Read(bientep,bien1,bien2,…); Chú ý: Khác với tệp văn bản, việc ghi đọc tệp có kiểu khơng sử dụng lệnh Writeln readln nghĩa tệp có kiểu khơng ghi liệu thành dòng Các phần tử tệp có kiểu ghi liên tục nhớ có ký hiệu kết thúc tệp EOF Khi đọc ghi xong phần tử trỏ tệp tự động chuyển đến vị trí b Truy nhập vào tệp: Seek(bientep,i); i=0,1,2,… Thủ tục seek định vị trỏ vị trí thứ i tệp c Các hàm xử lý tệp: * Filesize(bientep) cho biết số phần tử có tệp * FilePos(bientep) cho biết vị trí thời trỏ tệp * Eof(Bientep) cho giá trị True trỏ tệp vị trí cuối tệp, ngược lại cho giá trị False Ví dụ 2.9: Tạo tệp lấy tên TEPCK.DAT để vừa ghi vừa sửa liệu: Program Tep_co_kieu: 12 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Uses crt; Var bt:file of byte; i:byte; n:real; Begin Clrscr; Assign(bt,’ TEPCK.DAT’); Rewrite(bt); For i:=0 to write(bt,i); {ghi vào tệp số ngun} Reset(bt); Writeln(‘Du lieu luu tru tep TEPCK.DAT’); While not eof(BT) Begin Read(bt,i); write(i:5); End; Writeln; Seek(bt,3); {định vị trỏ phần tử thứ 4} Textcolor(magenta); Read(bt,i); Writeln (‘So tep o vi trí thu 4:’,i); i:=33; seek(bt,3); write(bt,i); 13 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền seek(bt,3); read(bt,i); writeln(‘So moi tep o vi tri 4:,i); writeln(‘vi tri hien thoi cua tro:’, filepos(bt)); readln; close(bt); end Tệp khơng kiểu: a Khai báo biến tệp: Var Bientep:File; b Mở tệp để ghi-đọc: * Mở tệp để ghi: Assign(bientep, tentep); Rewrite(bientep, n); * Mở tệp để đọc liệu: Assign(bientep, tentep); Reset(bientep, n); Với n độ lớn tính theo Byte c Đọc ghi tệp khơng định kiểu: * Đọc tệp khơng định kiểu: BlockRead(bientep,biennho,i,j); 14 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền * biennho: biến khai báo kiểu với phần tử tệp, biến nhớ đóng vai trò vùng nhớ đệm để lưu trữ liệu đọc từ phần tử tệp * i: số phần tử quy định cho lần đọc * j: biến kiểu Word, dùng để ghi lại số phần tử thực đọc * Ghi tệp khơng định kiểu: BlockWrite(bientep,biennho,i); d Truy nhập tệp khơng định kiểu Tệp khơng kiểu truy nhập tệp có kiểu nghĩa dùng thủ tục Seek(bientep,n) để truy nhập vào phần tử thứ n+1 tệp Lưu ý với tệp khơng kiểu, lần trỏ dịch chuyển dịch chuyển số byte số byte quy định lệnh Rewrite() Reset() Ví dụ 2.10 Nhập vào tệp phần tử record sau viết chúng hình Trong phần khai báo record chọn Hoten string[15] Diem thuộc kiểu Real Program tep_khong_kieu; Uses Crt; Type hs=record Hoten:string[15]; Diem:real; End; Var 15 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền bt:file; k,nguoi:hs; i,j:byte; begin clrscr; assign(bt,’tep0kieu.dat’); rewrite(bt,22); write(‘Nhap bao nhieu nguoi?’); readln(n); for i:=1 to n with nguoi begin write(‘ Ho va ten:’); readln(hoten); write(“Diem tong:’); readln(diem); blockwrite(bt,nguoi,1); end; for i:=1 to n-1 begin seek(bt,i); blockread(bt,k,1); textcolor(red); with k writeln(hoten.’ ‘,diem:5:2); end; ose(bt); 16 SangKienKinhNghiem.org Tổng Hợp Hơn 1000 Sáng Kiến Kinh Nghiệm Chuẩn GV:Phan Thị Tài Trường THPT Ngơ Quyền Readln; End 17

Ngày đăng: 19/04/2017, 18:02

TỪ KHÓA LIÊN QUAN

w