You are on page 1of 8

Lê Công Tới ( tổ trưởng tổ 4 ) Nguyễn Văn Âu

BÀI
Nguyễn Ngọc Thùy Dương Đoàn Thái Bình

Trương Thị Yến Nhi Đỗ Thị Hồng Điệp

14:KI
Lê Thị Kim Khánh Nguyễn Kim Hoàng

ỂU
Nội dung bài học
1. Vai trò của kiểu tệp
Ví dụ bài học
Ví dụ 1: Tìm nghiệm của phương trình
bậc 2: ax2 + bx + c = 0 với a<>0

DỮ
Tất cả các dữ liệu thuộc kiểu dữ liệu
đã xét đều được lưu trữ ở trong RAM
PROGRAM vidu1;
VAR a,b,c,x,x1,x2,delta:real;
BEGIN
do đó sẽ mất khi tắt máy. Với một số
bài toán có khối lượng dữ liệu lớn, có Write(‘nhap a,b,a’); readln(a,b,c);

LIỆU
yêu cầu lưu trữ để xử lí nhiều lần, cần
có kiểu dữ liệu tệp file.
Delta:=b*b-4*a*c;
IF delta <0 THEN writeln(‘phuong
trinh vo nghiem’)
ELSE IF delta=0 THEN
TỆP
Ví dụ:
Begin
Ta muốn lưu một bộ test để chấm bài X:=-b/2*a;
khoảng 1000 học sinh nếu ta nhập tay Writeln(‘phuong trinh co 1
nghiem la:’,x:8:2);
sẽ rất mất thời gian hoặc là số lượng
End
đầu vào cho chương trình rất lớn khi ELSE
đó ta cũng cần sử dụng file. Begin
X1:=(-b-sqrt(delta))/2*a;
Kiểu dữ liệu tệp có những đặc điểm X2:=(-b+sqrt(delta))/2*a;
sau: End;
Readln
+ Được lưu trữ lâu dài ở bộ nhớ ngoài END.
và không bị mất khi tắt nguồn điện. Ví dụ 2:
Tìm nghiệm thực của phương trình bậc
+ Lượng dữ liệu lưu trữ trên tệp có hai
thể rất lớn và chỉ phụ thuộc vào dung AX2 + BX + C= 0
lượng của đĩa. Ví dụ 3:
Tìm số ngày của một năm: Năm nhuận
2. Phân loại tệp và thao tác với tệp là năm chia hết cho 400 hoặc chia hết
cho 4 nhưng không chia hết cho 100.
Xét theo các tổ chức dữ liệu: program so_ngay;
uses crt;
+ Tệp văn bản: Tệp mà dữ liệu được var n,sn: integer;
ghi dưới dạng các kí tự theo mã begin
ASCII . Trong tệp văn bản, dãy kí tự clrscr;
kết thúc bởi kí tự kết thúc dòng hay kí write('nhap nam:'); readln(n);
if (n mod 400=0) or ((n mod 4 =0) and
tự kết thúc tệp tạo thành một dòng.
(n mod 100<>0)) then sn:=366
+ Tệp có cấu trúc: Tệp mà cac thành else
sn:=365;
phần của nó được tổ chức theo một
write('So ngay nam',n,'la:',sn);
cấu trúc nhất định. Tệp nhị phân là
readln;
một trường hợp riêng của tệp có cấu end.
trúc. Dữ liệu ảnh, âm thanh ,…
thường được lưu trữ dưới dạng tệp có
cấu trúc. Mỗi tệp có cấu trúc sẽ có
chương trình riêng để đọc tệp đó. Xét
theo cách thức truy cập:

+ Tệp truy cập tuần tự: Cho phép truy


cập đến một dữ liệu nào đó trong tệp
chỉ 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ó.

Ví dụ: Băng cuốn dây chạy đài CD.

+ 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ự ctieeps vị chí
(thường là số hiệu )của dữ liệ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.

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.

Để có thể thao tác với tệp, người lập


trình cần tìm hiểu cách thức mà ngôn
ngữ lập trình cung cấp để:
+ Khai báo biến tệp;

+ Mở tệp;

+ Đọc/Ghi dữ liệu;

+ Đóng tệp;

BÀI
15:
THA
O
TÁC
VỚI

Nội dung bài học Ví dụ bài học

1. Khai báo Câu 1.Các thao tác với tệp đó là?

Để làm việc với kiểu dữ liệu tệp ta A.Gắn với tệp


phải sử dụng biến tệp.
B.Mở tệp
Khai báo biến tệp văn bản có dạng
C.Đóng tệp
Var< tên biến tệp>:text;
D.Cả 3 đều đúng

2. Thao tác với tệp Câu 2.Để gắn tên tệp ta dùng thủ tục

a) Gắn tên tệp A.Assgin

Mỗi tệp đều có một tên tệp để tham B.Agin


chiếu. Tên tệp là biến xâu hoặc hằng
xâu, ví dụ: ’Dulieu.dat’. C.Sign
Trong lập trình, ta không thao tác
D.Accign
trực tiếp với tệp dữ liệu trên đĩa mà
thông qua biến tệp. Biến tệp được Câu 3.Để khai báo biến tệp văn bản ta
đại diện cho tệp trong ngông ngữ lập
trình. dùng kiểu

Để thao tác với tệp, trước hết phải A.ASCII


gắn tên tệp với đại diện của nó là
biến tệp bằng thủ tục: B.Text

Assign(<biến tệp>,<tên tệp>); C.Real

D.Integer
b) Mở tệp

Sau khi sử dụng thủ tục assign. Ta có


thể thực hiện việc đọc ghi dữ liệu.

+ Đối với việc ghi:

Câu lệnh dùng thủ tục mở tệp để ghi


dữ liệu có dạng:

Rewrite(<biến tệp>);

c) Đọc/ghi tệp văn bản.

Việc đọc ghi tệp văn bản được thực


hiện giống như nhập dữ liệu từ bàn
phí. Việc ghi dữ liệu ra tệp văn bản
giống như ghi ra màn hình. Dữ liệu
trong tệp văn bản được chia thành
các dòng.

+ Câu lệnh dùng thủ tục để đọc:

Read(<biến tệp>,<danh sách các


biến>);
Readln(<biến tệp>,<danh sách các
biến>);

+ Câu lệnh dùng thủ tục để ghi là:

Write(<biến tệp>,<danh sách các


biến>);
Writeln(<biến tệp>,<danh sách các
biến>);

Một số hàm chuẩn thường dùng


trong khi đọc/ghi tệp văn bản:

+ Hàm eof(<biến tệp>) trả về giá trị


true nếu con trỏ tệp dang chỉ tới cuối
tệp.

+ Hàm eoln(<biến tệp>) trả về giá trị


true nếu con trỏ tệp đang chỉ tới cuối
dòng.

d) Đóng tệp

Sau khi làm việc xong với tệp càn


phải đóng tệp. Việc đóng tệp là đặc
biệt quan trọng sau khi ghi dữ liệu,
khi đó hệ thong mới thực sự hoàn tất
việc hi dữ liệu ra tệp.

Cú pháp:

Close(<biến tệp>);

Ví dụ: Chương trình đọc một dòng từ


tệp INP sau đó ghi sang tệp OUT

program vdf;
uses crt;
var
f1,f2:text;
s:string;
begin
assign(f1,'INP');
assign(f2,'OUT');
rewrite(f2);
reset(f1);
readln(f1,s);
write(f2,s);
close(f1);
close(f2);
end.

Kết quả:

BÀI
Ví dụ bài học Trình bày

16.Ví
dụ

Ví dụ : program kc;
Một trường trung học phổ thông tổ uses crt;
chức cho giáo viên và học sinh của var
trường đi cắm trại, sinh hoạt ngoài
d:real;
trời ở vườn quốc gia Cúc Phương.
Để lên lịch đến thăm khu trại các f:text;
lớp, thầy hiệu trưởng cần biết x,y:integer;
khoảng cách từ trại của mình (ở vị begin
trí có tọa độ (0,0) )đến trại của các
giáo viên chủ nhiệm. Mỗi lớp có clrscr;
một khu trại, vị trí trại của mỗi assign(f,'TRAI.TXT');
giáo viên chủ nhiệm đều có tọa độ reset(f);
nguyên (x,y) được ghi trong tệp
while not eof(f) do
văn bản TRAI.TXT (như vậy tệp
TRAI.TXT chứa liên tiếp các cặp begin
số nguyên, các số cách nhau bởi read(f,x,y);
dấu cách và không kết thúc bằng kí
d:=sqrt(x*x+y*y);
tự xuống dòng).
writeln('Khoang
cach :',d:10:2);
end;
close(f);
readkey;
end.

You might also like