Tin học 11 - Chương 4 - Bài 11:Kiểu mảng
3/21/2018
Slide 1
WELCOME TO MY CLASS!


Ly Thuong Kiet High School
Informatics 11
________________________
teacher: Nguy?n Ng?c Ph�
mail: tinhocnhe@gmail.com
cđu h?i: http://link.fpo.vn/giaosinh
uebsite: https://tinhocnhe.gnomio.com/
KHÔNG ĐIỆN THOẠI
KHÔNG TÁM CHUYỆN
KHÔNG NÓI LEO
1
2
Bài 14
Kiểu Dữ
Liệu Tệp
Vai trò của kiểu tệp
Phân loại tệp và thao tác với tệp
Số nguyên
Số thực
Kí tự
Logic
Mảng
Xâu
Kể tên các kiểu dữ liệu đã học
*Nhắc lại khái niệm tệp trong tin học 10:
Tệp, còn gọi là tập tin(File), là một tập hợp các thông tin ghi trên bộ nhớ ngoài, tạo thành 1 đơn vị lưu trữ do Hệ điều hành(HĐH) quản lí. mỗi tệp có 1 tên để truy cập. (tên tệp được đặt theo quy định riêng của HĐH ). 
Tên tệp ko quá 255 kí tự, thường gồm 2 phần : phần tên(name) và phần mở rộng(còn gọi là phần đuôi-Extension) và dc phân cách với nhau bằng dấu chấm(.)  Vdu: baigiang.doc, tinhoc.xls, hoten.txt…..
- Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài (đĩa từ, CD, ...) và không bị mất khi tắt nguồn điện.
- Lượng thông tin lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa.
Đặc điểm:
CÂU HỎI :
Chúng ta phân loại tệp theo mấy cách ? Và như thế nào ?
Phân loại theo 2 cách
* Xét theo cách tổ chức dữ liệu :
Tệp văn bản
Tệp có cấu trúc
* Xét 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
Lưu ý : Khác với mảng, số lượng phần tử của tệp không cần xác định trước.
Phân loại tệp
CÂU HỎI :
Cách thức mà ngôn ngữ lập trình cung cấp để có thể thao tác với kiểu tệp ?
Khai báo biến tệp
Mở tệp
Đọc/ghi dữ liệu
Đóng tệp
1
2
Bài 15:
Thao tác với tệp
Khai báo
Thao tác với tệp
Lưu ý: Chỉ xét với tệp văn bản trong Pascal
Trong chương trình Pascal khi chúng ta muốn dùng một biến để chứa dữ liệu, thì việc đầu tiên chúng ta sẽ làm gì?
Khai báo biến
VAR : TEXT;
CÂU HỎI :
Cú pháp khai báo biến tệp văn bản có dạng ?
1. Khai báo:
Program vidu1;
Uses crt;
Var f : Text;

Ví dụ 1: Khai báo biến tệp có tên là f.
Var f : text;
Cú pháp khai báo:
Var : text;
Var tep1:text;
Var phu1, phu2:text;
Var tam1,tam2,tam3:text;
ASSIGN (,);
Trong đó:
là biến xâu hoặc hằng xâu.
< biến tệp> là biến sử dụng để tham chiếu tới các phần tử của tệp
Cú pháp:
Ví dụ 2:
Để chuẩn bị thao tác với tệp có tên là INP.DAT trên thư mục gốc đĩa C: , ta gắn nó với biếp tệp F3 như sau :
Ví dụ 1:
Giả thiết có biến xâu MYFILE và cần gán biến tệp F2 với tệp có tên DULIEU.DAT. Việc gán tên tệp được thực hiện như sau :
MYFILE := ‘DULIEU.DAT ’;
ASSIGN (F2, MYFILE);
hoặc ASSIGN (F2, ‘DULIEU.DAT ’);
MYFILE : = ‘C:\INP.DAT’ ;
ASSIGN (F3, MYFILE);
Cú pháp:
Assign(, );
Assign (f, ‘BAITAP.DAT’);
Assign (f, ‘D:\IN.DAT’);
Assign (f, ‘E:\NHAP.TXT’);
2 kiểu
Mở tệp để ghi
Mở tệp để đọc
rewrite();
reset();
Ví dụ:
Assign (f, ‘D:\KQ.DAT’);
Rewrite (f);
Ví dụ:
assign(tep2, ‘KQ.DAT’);
reset(tep2);
Trước khi mở tệp, biến tệp phải được gắn tên tệp bằng thủ tục assign.
Trong pascal, lệnh nào dùng để đọc dữ liệu? Lệnh nào dùng để ghi dữ liệu?
Lệnh ghi là write
hoặc writeln
Lệnh đọc là read
hoặc readln
Đọc tệp văn bản:
read(,);
readln(,);
Ví dụ 1:
Thủ tục đọc giá trị từ tệp gắn với biến tệp F1 và gán cho biến C :
READ (F1 , C)
Danh sách biến là một hoặc nhiều tên biến. Trong trường hợp nhiều biến thì các tên cách nhau bởi dấu phẩy.
Ghi tệp văn bản:
write(,);
writeln(,);
Ví dụ 2:
Thủ tục ghi giá trị biến A vào tệp gắn với biến tệp F3 :
WRITE (F3 , A)
Danh sách kết quả gồm một hoặc nhiều phần tử. Trường hợp có nhiều phần tử thì các phần tử này cách nhau một dấu phẩy. Phần tử có thể là tên biến, biểu thức (số học, quan hệ hoặc logic) hoặc hằng xâu.
Một số hàm và thủ tục thông dụng:

Hàm EOF (): trả về giá trị TRUE khi con trỏ tệp đã ở vị trí cuối tệp.
Hàm EOLN(biến tệp>): trả về giá trị TRUE khi con trỏ tệp đã ở vị trí cuối dòng.
Sau khi làm việc xong với tệp ta phải làm gì?
Tại sao ta phải đóng tệp?
Sau khi làm việc xong với tệp cần phải đóng tệp. Chỉ có đóng tệp thì khi đó hệ thống mới thực sự hoàn tất ghi dữ liệu ra tệp.
CLOSE ();
Ví dụ:
Thủ tục đóng giá trị từ tệp gắn với biến tệp F1 và gán cho biến C :
CLOSE (F1)

Thủ tục Close đóng một tệp đang mở
Cú pháp :
Lưu ý: Một tệp, sau khi đóng có thể mở lại. Khi mở lại tệp, nếu vẫn dùng biến tệp cũ thì không cần thiết phải dùng thủ tục ASSIGN gán lại tên tệp.
Sơ đồ liên hệ giữa các thao tác với tệp
Đọc
Ghi
assign(,);
rewrite();
reset();
write(,);
close();
read(,);
BÀI TẬP CỦNG CỐ
Câu 1: Trong Pascal để khai báo biến tệp văn bản ta sử dụng cú pháp:
Var : Text;
Var : Text;
Var : string;
Var : string;
Hãy chọn phương án trả lời đúng nhất
Câu 2: Để gắn tệp KQ.TXT cho biến tệp f1 ta sử dụng câu lệnh:
f1:=‘KQ.TXT’;
KQ.TXT:=f1;
Assign(‘KQ.TXT’,f1);
Assign(f1, ‘KQ.TXT’);
BÀI TẬP CỦNG CỐ
Câu 3: Trình tự làm việc với tệp trong Pascal là:
1. Gán đường dẫn và tên tệp vào biến tệp;
2. Khai báo biến tệp;
3. Đọc hoặc ghi dữ liệu vào tệp;
4. Mở tệp;
5. Đóng tệp.
BÀI TẬP CỦNG CỐ
Câu 4: Muốn mở tệp ra để GHI dữ liệu vào ta dùng lệnh:
A. Writeln(f);
B. Write(f);
C. Reset(f);
D. Rewrite(f);
BÀI TẬP CỦNG CỐ
Câu 5: Khi theo tác với tệp, sử dụng lệnh REWRITE cần lưu ý:
1. Tiến hành mở (tạo) ra một tệp mới;
2. Cho phép in nội dung mới ra màn hình;
3. Nếu tệp trên máy trùng với tên tệp vừa mở thì nội dung cũ sẽ bị xóa;
4. Chỉ có thể đọc nội dung của tệp trên máy mà không thể thêm nội dung mới.
Khẳng định đúng là:
A. 1, 2, 3 B. 2, 3 C. 1, 2, 4 D. 1, 3
BÀI TẬP CỦNG CỐ
Câu 6: Để thao tác với tệp:
A. Ta nên sử dụng tên tệp trực tiếp trong chương trình;
B. Ta nhất thiết phải sử dụng tên tệp trong chương trình;
C. Ta nhất thiết phải gắn tên tệp cho tên biến tệp;
D. Ta có thể gắn tên tệp cho tên biến tệp, hoặc sử dụng tên tệp trực tiếp cũng được.
BÀI TẬP CỦNG CỐ
Câu 7: Lệnh nào dùng để đóng tệp?
A. Exit(f);
B. Close(f);
C. Quit(f);
D. Tất cả đều đúng.
Bài tập Ghi giá trị của hai biến a,b và tổng a+b vào tệp D:\Bai1.Inp.
1. Khai bỏo
Program Bai1;
Var Tep :Text ;
a,b :Integer ;
Begin
Write(‘ Nhap a,b : ‘); Readln(a,b);
Assign(Tep,’D:\Bai1.Inp’) ;
Rewrite(Tep) ;
Write(tep,a,’ ‘,b, ‘ ‘,a+b) ;
Close(tep) ;
Readln;
End.
3. G?n tờn t?p;
4. M? t?p ra d? ghi;
Các bước
Thể hiện bằng pascal
5. Ghi v�o t?p D:\Bai1.Inp.
6. Dúng t?p.
2. Nh?p a,b
Củng cố
(1)Var tepA,tepB,tep C: text;
(2)Begin
(3)assign (tepA, ‘Xoai.txt’);
(4)assign (tepB, ‘Me.txt’);
(5)reset(tepA);
(6)read(tepA,A,B,C);
(7)readln(tepA,D,E);
(8)rewrite(tepB);
(9)write(tepB, ‘A=’,A, ‘D=’,);
(10)writeln(tepB, ‘x1=’, (-B-SQRT(B*B-4*A*C))/(2*A):5:3);
(11)close (tepA);
(12)Close (tepB);
(13)Readln;
(14)End.
Khai báo tệp?
Gán tên tệp?
Mở tệp?
Đóng tệp?
Đọc tệp?
Ghi tệp?
GV: Lê Thị Xuân Huyền
nguon VI OLET