intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo án tin học 9 - KIỂU DỮ LIỆU CÓ CẤU TRÚC FILE

Chia sẻ: Linh Ha | Ngày: | Loại File: PDF | Số trang:27

92
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Biết các khái niệm về FILE trong Pascal. Biết cấu trúc của 3 loại FILE, File văn bản, File định kiểu và không định kiểu. Biết cách khai báo biến File, gán tên File, mở File để đọc, để ghi và đóng File. Biết nắm vững biến toàn cục và biến địa phương, đặc biệt là tầm vực hoạt động của các biến loại này. Biết sử dụng thành thạo các lệnh, thủ tục và hàm trong File.

Chủ đề:
Lưu

Nội dung Text: Giáo án tin học 9 - KIỂU DỮ LIỆU CÓ CẤU TRÚC FILE

  1. Giáo án tin học 9 9 BÀI KIỂU DỮ LIỆU CÓ CẤU TRÚC FILE KIẾN THỨC YÊU CẦU:  Biết khi nào cần sử dụng đến FILE.  Biết cách khai báo và sử dụng.  Biết nắm vững các hàm và các câu lệnh dùng trong FILE. KIẾN THỨC ĐẠT ĐƯỢC  Biết các khái niệm về FILE trong Pascal.  Biết cấu trúc của 3 loại FILE, File văn bản, File định kiểu và không định kiểu.  Biết cách khai báo biến File, gán tên File, mở File để đọc, để ghi và đóng File.  Biết nắm vững biến toàn cục và biến địa phương, đặc biệt là tầm vực hoạt động của các biến loại này.  Biết sử dụng thành thạo các lệnh, thủ tục và hàm trong File.
  2. I/ Khái niệm về File 1. Khái niệm Kiểu File (tập tin) trong Pascal là một cấu trúc dữ liệu gồm nhiều phần tử cùng kiểu được chứa trong thiết bị ngoài như đĩa cứng hay đĩa mềm, số lượng phần tử không hạn chế, biến kiểu file dùng để thiết lập với các thiết bị ngoài như máy in, màn hình …  File dùng để lưu trữ dữ liệu trong một thời gian dài, ngay cả khi chương trình đã kết thúc.  Chứa với khối lượng lớn.  Để cung cấp cho một hay nhiều chương trình hoạt động ở nhiều thời điểm. 2. Cấu trúc và phân loại file. File là kiểu dữ liệu rất là quan trọng. Mọi dữ liệu cần lưu trữ trên đĩa mềm, đĩa cứng đều phải dùng đến kiểu file. Chúng ta có 3 loại file.  File văn bản (text).  File có định kiểu.  File không định kiểu.
  3. II/ File 1. Cách khai báo biến file a. Khai báo file văn bản Được khai báo với từ khoá Text. Tập tin văn bản được dùng phổ biến và một số thiết bị ngoại vi như màn hình, bàn phím, máy in …Bạn khai báo như sau: Var : Text; Trong đó kiểu Text được định nghĩa trước. b. Khai báo file có định kiểu Được khai báo với từ khoá FiLE OF Kiểu phần tử, bạn khai báo như sau: Type = FiLE OF Kieuphantu; Var : (Tenkieufile>; Hoặc có thể khai báo trực tiếp như sau: Var : FiLE OF Kieuphantu;
  4. Có thể hiểu các phần tử của file có định kiểu là các Record. Ví dụ: Type Lilich = Record Hovaten : String [40]; Namsinh : integer; Noisinh : String [50]; Diachi : String [50]; Tencha : String [40]; Tenme : String [40]; End; FileLilich = FiLE OF Lilich; Var Hocsinh : Lilich; F1, F2 : FileLilich; (Từ Type đến End; là cấu trúc kiểu Record) c/ Khai báo file không định kiểu
  5. Được khai báo với từ khoá chỉ có mỗi một chữ FiLE. Bạn khai báo như sau: Var : FiLE;  Với cả 3 kiểu file như trên, ta phải dùng các thủ tục sau để gán tên file, mở file và đóng file. 2. Lệnh gán tên file cho biến file đại diện ASSiGN (F, Tenfile); 3. Lệnh mở file a/ Mở file để đọc RESET (F); b/ Mở file để ghi REWRiTE (F); 4. Lệnh đóng file Khi xử lý xong, chúng ta phải đóng file lại. CLOSE (F); Ví dụ 1: Assign(F1, ‘Hocsinh.LL’);
  6. Gán Hocsinh.LL cho F1. Ví dụ 2: Assign(F1, “Hocsinh.LL’); Rewrite(F1); Chỉ sau khi thực hiện phát biểu Rewrite(F1) thì trên đĩa mới có file Hocsinh.LL, đây là một file rỗng. Nếu file Hocsinh.LL đã có trên đĩa, hai phát biểu trên sẽ xoá file Hocsinh.LL cũ. Ví dụ 3: Assign(F2, ‘Hocsinh.LL’); Reset(F2); Nếu file chưa có trên đĩa, sẽ có lỗi thời gian thi hành. 5. Một số lệnh và hàm về xử lý file a. Với File có định kiểu:  Lệnh Read(Bienfile, cacbien) Cacbien là một hay nhiều biến thuộc kiểu thành phần của kiểu file, nếu có nhiều thì chúng được cách nhau bởi dấu phẩy (,). Các biến sẽ được đọc từ Bienfile, sau mỗi lần đọc, con trỏ của file được tự động đưa đến phần tử kế tiếp. Ví dụ:
  7. Var F1 : FileLilich; x, y : Lilich; Begin Assign(F1, ‘Hocsinh.LL’); Reset(F1); Read(F1, x, y); …….. …….. x.Hovaten sẽ là ‘Nguyễn Thành An’ x.Namsinh sẽ là 1990 …….. …….. y.Hovaten sẽ là ‘Phan Thanh Bình’ y.Namsinh sẽ là 1991 …….. ……..  Lệnh Write(Bienfile, Cacbien)
  8. Giải thích như lệnh read, ở đây các biến sẽ được ghi lên Bienfile, sau mỗi lần ghi thì con trỏ của file sẽ tự động đưa đến phần tử kế tiếp. Ví dụ: …… …… Write(‘Ban cho biet ten file: ‘); Readln(Tenfile); Assign(F1, Tenfile); Rewrite(F1); x.Hovaten := ‘Thanh Văn Anh’; x.Namsinh := 1990; x.Noisinh := ‘Saigon’; …… …… y.Hovaten := ‘Phan Văn Bình’; y.Namsinh := 1991; y.Noisinh := ‘HaNoi’; ……
  9. …… Write(F1,x, y); Close(F1); b. Với File văn bản Ngoài Read(F, ch); hoặc Write(F, ch); được dùng để đọc, ghi từng ký tự, tập tin văn bản còn có các lệnh ghi, đọc theo dòng văn bản. Readln(F, Cacbien); Writeln(F, Cacbien); c. Với File không định kiểu Dùng các lệnh đọc ghi theo từng khối, do đó sẽ có tốc độ nhanh. BlockRead và BlockWrite. Ngoài ra còn có một số thủ tục và hàm xử lý File thông dụng như sau:  Hàm EOF(F): Cho giá trị True nếu con trỏ file đã ở vị trí kết thúc file. Thủ tục này được dùng mỗi khi cần đọc dữ liệu.
  10.  Hàm EOLN(F): Cho giá trị True nếu con trỏ file ở vị trí kết thúc dòng của file văn bản, thủ tục này chỉ được dùng với file văn bản.  Hàm SEEK(F, i): Đặt vị trí con trỏ file vào vị trí RECORD thứ i (i được đếm từ 0). SEEK chỉ áp dụng cho file có định kiểu.  Thủ tục EARSE(F): Xoá file trên đĩa.  Thủ tục RENAME(F): Đổi tên file. TÓM LƯỢC
  11.  Kiểu File là một cấu trúc dữ liệu gồm nhiều phần tử cùng kiểu được chứa trong thiết bị ngoài như đĩa cứng hay đĩa mềm.  File dùng để lưu trữ dữ liệu trong một thời gian dài, ngay cả khi chương trình đã kết thúc.  Chứa với khối lượng lớn.  Để cung cấp cho một hay nhiều chương trình hoạt động ở nhiều thời điểm.  Chúng ta có 3 loại file. File văn bản (text). File có định kiểu. File không định kiểu  Khai báo biến file văn bản: Var : Text;  Khai báo biến file định kiểu: Type = FiLE OF Kieuphantu; Var : (Tenkieufile>; Hoặc có thể khai báo trực tiếp như sau: Var
  12. : FiLE OF Kieuphantu;  Khai báo biến file không định kiểu: Var : FiLE;  Lệnh gán tên file: ASSiGN (F, Tenfile);  Lệnh mở file để đọc: RESET (F);  Lệnh mở file để ghi: REWRiTE (F);  Lệnh đóng file: CLOSE (F); PHẦN THỰC HÀNH: 1. Tham khảo chương trình nhập điểm cho học sinh, khi không muốn nhập nữa thì phần họ tên học sinh bỏ trống.
  13. Program Vaodiem; Type Phieudiem = Record HotenHs : String[40]; Van : real; Toan : real; Ngoaingu : real; Ly : real; Hoa : real; Sinh : real; Kythuat : real; Su : real; Dia : real; CD : real; TD : real; Nhac : real; Ve : real; End; FilePhieudiem = FiLE OF Phieudiem;
  14. Var HS : Phieudiem; F : FilePhieudiem; DK : Boolean; Begin Assign(F, ‘Lop’); Rewrite(F); DK := True; While DK do With HS do Begin Writeln(‘Ban de trong vung ho ten neu khong nhap tiep, go Enter.’); Write(‘Ho va ten hoc sinh: ‘); Readln(HotenHS); if HotenHS = ‘ ‘ then DK:= False Else Begin Write(‘Diem Van : ‘); Readln(Van);
  15. Write(‘Diem Toan : ‘); Readln(Toan); Write(‘Diem Ngoai ngu : ‘); Readln(Ngoaingu); Write(‘Diem Ly : ‘); Readln(Ly); Write(‘Diem Hoa : ‘); Readln(Hoa); Write(‘Diem Sinh : ‘); Readln(Sinh); Write(‘Diem Ky thuat : ‘); Readln(Kythuat); Write(‘Diem Su : ‘); Readln(Su); Write(‘Diem Dia : ‘); Readln(Dia); Write(‘Diem Cong dan : ‘); Readln(CD); Write(‘Diem The duc : ‘); Readln(TD); Write(‘Diem Nhac : ‘); Readln(Nhac); Write(‘Diem Ve : ‘); Readln(Ve); Write(F, HS); End; End; Close(F); End. Giải thích:
  16.  Trong chương trình trên, đầu tiên bạn khai báo Phieudiem có kiểu Record gồm 13 phần tử.  Thành phần HotenHS có kiểu chuỗi, các thành phần còn lại đều có kiểu số thực.  Khai báo File có định kiểu.  Khai báo biến HS có kiểu Phieudiem.  Khai báo biến F có kiểu FilePhieudiem.  Biến DK có kiểu Boolean, dùng làm điều kiện trong vòng lặp.  Vì dùng kiểu File, đầu tiên bạn phải dùng lệnh gán Assign, theo điều kiện bạn phải dùng lệnh mở file để ghi Rewrite.  Vòng lặp While để nhập các thông tin trong Phieudiem khi DK là true. Nếu để trống phần HotenHS, gõ Enter, sẽ thoát khỏi vòng lặp vì DK lúc này là False.  Chương trình trên dùng để nhập thông tin vào File, nếu muốn vừa nhập thông tin vào File đồng thời cũng cho xuất hiện ra màn hình các thông tin vừa nhập. Bạn thay đổi chương trình một chút như sau: Program Vaodiem;
  17. Type Phieudiem = Record HotenHs : String[40]; Van : real; Toan : real; Ngoaingu : real; Ly : real; Hoa : real; Sinh : real; Kythuat : real; Su : real; Dia : real; CD : real; TD : real; Nhac : real; Ve : real; End; FilePhieudiem = FiLE OF Phieudiem; Var
  18. HS : Phieudiem; F : FilePhieudiem; DK : Boolean; Begin Assign(F, ‘Lop’); Rewrite(F); DK := True; While DK do With HS do Begin Writeln(‘Ban de trong vung ho ten neu khong nhap tiep, go Enter.’); Write(‘Ho va ten hoc sinh: ‘); Readln(HotenHS); if HotenHS = ‘ ‘ then DK:= False Else Begin Write(‘Diem Van : ‘); Readln(Van); Write(‘Diem Toan : ‘); Readln(Toan);
  19. Write(‘Diem Ngoai ngu : ‘); Readln(Ngoaingu); Write(‘Diem Ly : ‘); Readln(Ly); Write(‘Diem Hoa : ‘); Readln(Hoa); Write(‘Diem Sinh : ‘); Readln(Sinh); Write(‘Diem Ky thuat : ‘); Readln(Kythuat); Write(‘Diem Su : ‘); Readln(Su); Write(‘Diem Dia : ‘); Readln(Dia); Write(‘Diem Cong dan : ‘); Readln(CD); Write(‘Diem The duc : ‘); Readln(TD); Write(‘Diem Nhac : ‘); Readln(Nhac); Write(‘Diem Ve : ‘); Readln(Ve); Write(F, HS); End; End; Close(F); Reset(F); While not EOF(F) do
  20. Begin Read(F, HS); Begin Writeln(‘Ho va ten hoc sinh: ‘, HS.HotenHS); Writeln(‘Diem Van: ‘, HS.Van); Writeln(‘Diem Toan: ‘, HS.Toan); Writeln(‘Diem Ngoai ngu: ‘, HS.Ngoaingu); Writeln(‘Diem Ly: ‘, HS.Ly); Writeln(‘Diem Hoa: ‘, HS.Hoa); Writeln(‘Diem Sinh: ‘, HS.Sinh); Writeln(‘Diem Ky thuat: ‘, HS.Kythuat); Writeln(‘Diem Su: ‘, HS.Su); Writeln(‘Diem Dia: ‘, HS.Dia); Writeln(‘Diem Cong dan: ‘, HS.CD); Writeln(‘Diem The duc: ‘, HS.TD); Writeln(‘Diem Nhac: ‘, HS.Nhac); Writeln(‘Diem Ve: ‘, HS.Ve); End;
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2