Nội dung của Bài 15: Thao tác với tệp dưới đây, các em sẽ được tìm hiểu về cách khai báo tệp, các thao tác cơ bản với tệp văn bản và cách sử dụng một số hàm và thủ tục chuẩn làm việc với tệp. Mời các em cùng theo dõi nội dung dưới đây.
Để làm việc với dữ liệu kiểu tệp ta phải sử dụng biến tệp.
Khai báo biến tệp văn bản có dạng:
var < tên biến tệp > : text;
Ví dụ 1: var tep1,tep2: text;
Khai báo trên xác định hai biến tệp văn bản tep1 và tep2.
Thủ tục gắn tên tệp với biến tệp:
assign(< biến tệp >, < tên tệp >);
Hình 1. Minh họa thao tác gắn tên tệp
rewrite(tep3);
Khi thực hiện thủ tục rewrite(tep3), nếu trên thư mục gốc của đĩa C chưa có tệp KQ.DAT, thì tệp sẽ được tạo với nội dung rỗng. Nếu đã có, thì nội dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới.
tentep:= 'DL.INP';
assign(tep1,tentep);
reset(tep1);
hoặc
assign(tep1, 'DL.INP');
reset(tep1);
Cú pháp: read( < biến tệp >,< danh sách biến > );
hoặc
readln( < tên biến tệp >,< danh sách biến >);
Trong đó:
Cú pháp: write(< biến tệp >,< danh sách kết quả >);
hoặc
writeln( < biến tệp >,< danh sách kết quả > );
Trong đó:
Giả sử trong chương trình có khai báo:
var tepA, tepB: text;
và tệp tepA được mở để đọc dữ liệu, còn tệp tepB dùng để ghi dữ liệu.
write(tepB,' A = ', A,' B = ',B,' C = ',C);
writeln(tepB,' X1 = ',(-B – SQRT(B*B- 4*A*C))/(2*A):8:3);
Sau khi đóng một tệp vẫn có thể được 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 phải dùng thủ tục assign gắn lại tên tệp.
Sau khi học xong Bài 15: Thao tác với tệp, các em có thể thao tác với tệp được mô tả trong hình 1 dưới đây:
Hình 1. Thao tác với tệp
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 11 Bài 15 cực hay có đáp án và lời giải chi tiết.
Trong NNLT Pascal, cú pháp để khai báo biến tệp văn bản là:
Để có thể thao tác với tệp dữ liệu trên đĩa thông qua biến tệp cho trước thì bước đầu tiên chúng ta phải làm gì?
Trong NNLT Pascal, cú pháp để gắn tên tệp cho biến tệp là:
Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học DapAnHay sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 11 DapAnHay
Trong NNLT Pascal, cú pháp để khai báo biến tệp văn bản là:
Để có thể thao tác với tệp dữ liệu trên đĩa thông qua biến tệp cho trước thì bước đầu tiên chúng ta phải làm gì?
Trong NNLT Pascal, cú pháp để gắn tên tệp cho biến tệp là:
Trong NNLT Pascal, cú pháp để mở tệp ở chế độ đọc dữ liệu từ tệp là:
Cú pháp của thủ tục đọc dữ liệu từ tệp văn bản là:
Cú pháp của thủ tục ghi dữ liệu vào tệp văn bản là:
Hàm eof() trả về giá trị TRUE khi nào?
Hàm eoln() trả về giá trị TRUE khi nào?
Trong NNLT Pascal, sau khi làm việc với tệp cần phải đóng tệp. Cú pháp để đóng tệp là:
Trong một chương trình Pascal, sau khi đã đóng tệp bằng thủ tục đóng tệp thì có thể mở lại tệp đó hay không?
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Câu trả lời của bạn
const fi='chia.inp';
fo='chia.out';
var f1,f2:text;
a:array[1..100]of integer;
i,n:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
n:=0;
while not eof(f1) do
begin
inc(n);
read(f1,a[n]);
end;
for i:=1 to n do
if a[i] mod 7=2 then write(f2,a[i]:4);
close(f1);
close(f2);
end.
Câu trả lời của bạn
uses crt;
const fi='nguon.txt';
var f1:text;
a,b,c:integer;
begin
clrscr;
write('a='); readln(a);
write('b='); readln(b);
write('c='); readln(c);
assign(f1,fi); rewrite(f1);
writeln(f1,a);
writeln(f1,b);
writeln(f1,c);
close(f1);
readln;
end.
a, tính trung bỉnh cộng giá trị các phần tử
b, đưa ra GTLN, GTNN của các phần tử
Câu trả lời của bạn
const fi='nguon.txt';
fo='kq.txt';
var f1,f2:text;
a,b,c,max,min:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,a);
readln(f1,b);
readln(f1,c);
writeln(f2,(a+b+c)/3:4:2);
max:=a;
if max<b then max:=b;
if max<c then max:=c;
writeln(f2,max);
min:=a;
if min>b then min:=b;
if min>c then min:=c;
writeln(f2,min);
close(f1);
close(f2);
end.
Câu trả lời của bạn
const fi='tong.inp';
fo='tong.out
var a:array[1..5]of integer;
i,t:integer;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
for i:=1 to 5 do
read(f1,a[i]);
t:=0;
for i:=1 to n do
t:=t+a[i];
writeln(f2,t);
close(f1);
close(f2);
end.
Câu trả lời của bạn
uses crt;
const fi='bai1.inp';
var a,b:integer;
f:text;
begin
clrscr;
assign(f,fi); rewrite(f);
write('Nhap a='); readln(a);
write('Nhap b='); readln(b);
writeln(f,'a=',a);
writeln(f,'b=',b);
writeln(f,a,'+',b,'=',a+b);
close(f);
end.
Câu trả lời của bạn
uses crt;
const fi='kq.out';
var st1,st2:string;
f1:text;
begin
clrscr;
write('Nhap xau thu 1:'); readln(st1);
write('Nhap xau thu 2:'); readln(st2);
assign(f1,fi); rewrite(f1);
if length(st2)>length(st1) then writeln(f1,st2)
else writeln(f1,st1);
close(f1);
end.
- Xâu đó sau khi xoá số
- Trong xâu có bao nhiêu dấu cách
- Đưa ra màn hình độ dài xâu đó
Câu trả lời của bạn
uses crt;
var st:string;
d,i,dem:integer;
begin
clrscr;
write('Nhap xau:'); readln(st);
d:=length(st);
write('Xau sau khi xoa so la: ');
for i:=1 to d do
if not(st[i] in ['0'..'9']) then write(st[i]);
writeln;
dem:=0;
for i:=1 to d do
if st[i]=#32 then inc(dem);
writeln('Xau co ',dem,' dau cach');
writeln('Do dai cua xau la: ',d);
readln;
end.
Câu trả lời của bạn
uses crt;
var a:array[1..100]of integer;
i,n,t,dem:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
dem:=0;
for i:=1 to n do
if a[i] mod 2=0 then
begin
t:=t+a[i];
inc(dem);
end;
writeln('Trung binh cong cac so chan la: ',t/dem:4:2);
readln;
end.
Câu trả lời của bạn
const fi='kt.txt';
fo='kq.out';
var f1,f2:text;
s:string;
i,dem,d:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,s);
vt:=pos('anh',s);
while vt<>0 do
begin
delete(s,vt,3);
insert(s,vt,'em');
vt:=pos('anh',s);
end;
writeln(f2,s);
close(f1);
close(f2);
end.
Tính tổng cấc số có trong tệp DAYSO.txt, ghi kết quả ra màn hình và tệp KETQUA.txt
Tính tổng và trung bình cộng các số chẵn trong tệp dayso.txt, ghi các kết quả vào tệp KETQUA.txt
Câu trả lời của bạn
Uses crt;
var f1,f2:text;
i,n,tong,tongchan,dem:integer;
tb:real;
Begin
clrscr;
Assign(f1,'DAYSO.txt');
Assign(f2,'KETQUA.txt');
reset(f1);dem:=0;tong:=0;tongchan:=0;
While Not EOF(f1) do
Begin
read(f1,i);
inc(tong,i);
If i mod 2 = 0 then
begin
inc(dem);
inc(tongchan,i);
end;
End;
tb:=tongchan/dem;
close(f1);
rewrite(f2);
writeln(f2,tong);
writeln(f2,tongchan);
writeln(f2,tb:0:2);
close(f2);
write(tong);
readln;
End.
Câu trả lời của bạn
uses crt;
const fi='vb.txt';
var f:text;
st:string;
begin
clrscr;
assign(f,fi); reset(f);
readln(f,st);
writeln('Xau co trong file la: ',st);
close(f);
readln;
end.
Câu trả lời của bạn
Program DapAnHay;
const fi='Baitap.txt';
var f: text;
begin
assign(f,fi);
reset(f);
close(f);
end.
- Tạo ra một tập tin có tên CaDao.txt được lưu tại ổ đĩa C:\
- Tập tin CaDao.txt phải có 4 câu sau:
Cong cha nhu nui thai son.
Nghia me nhu nuoc trong nguon chay ra.
Mot long tho me kinh cha
Cho tron chu hieu moi la dao con
Câu trả lời của bạn
Program HOC24;
const fo='CaDao.txt';
var f: text;
begin
assign(f,fo);
rewrite(f);
writeln(f,'Cong cha nhu nui thai son');
writeln(f,'Nghia me nhu nuoc trong nguon chay ra.');
writeln(f,'Mot long tho me kinh cha');
write(f,'Cho tron chu hieu moi la dao con');
close(f);
end.
Câu trả lời của bạn
Program DapAnHay;
const fi='Nhapvao.txt';
var f: text;
begin
assign(f,fi);
reset(f);
close(f);
end.
Câu trả lời của bạn
const fi='vd4.inp';
fo='vd4.out';
var f1,f2:text;
a,b,c,delta:real;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,a);
readln(f1,b);
readln(f1,c);
delta:=sqr(b)-4*a*c;
if delta>0 then
begin
writeln(f2,'Nghiem thu nhat cua phuong trinh la: ',((-b)-sqrt(delta))/2*a;
writeln(f2,'Nghiem thu hai cua phuong trinh la: ',((-b)+sqrt(delta))/2*a;
end;
if delta=0 then writeln(f2,'Phuong trinh co nghiem kep la: ',-b/(2*a);
if delta<0 then writeln(f2,'Phuong trinh vo nghiem');
close(f1);
close(f2);
end.
- Viết chương trình thực hiện công việc sau :
- Đọc giá trị của tập tin Data.txt vào 2 biến A, B.
- Tính diện tích và chu vi của hình chữ nhật biết (DT = A * B , CV = (A + B)*2)
- Tính chiều dài đường chéo của hình chữ nhật.(ĐC = căn bật hai của A2 + B2)
- Kết quả thu được sẽ được lưu vào tập tin có tên result.txt.
VD:
Tệp Data.txt có nội dung như sau
5
9
Tệp Result.txt lưu lại kết quả:
Chu vi cua hinh chu nhat la : 28.
Dien tich cua hinh chu nhat la : 45.
Chieu dai cua duong cheo la : 10.72
Câu trả lời của bạn
Program DapAnHay;
const fi='Data.txt';
fo='Result.txt';
var f: text;
a,b: integer;
dt,cv: longint;
dc: real;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,a);
readln(f,b);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
dt:=a*b;
cv:=(a+b)*2;
dc:=sqrt((a*a)+(b*b));
writeln(f,'Chu vi hinh chu nhat la : ',cv);
writeln(f,'Dien tich cua hinh chu nhat la : ',dt);
write(f,'Chieu dai cua duong cheo la : ',dc:1:2);
close(f);
end;
begin
ip;
out;
end.
Câu trả lời của bạn
uses crt;
const fi='input.inp';
var f1:text;
a,b,c,cv,dt,p:real;
begin
clrscr;
assign(f1,fi); reset(f1);
readln(f1,a,b,c);
if (a>0) and (b>0) and (c>0) then
begin
if (a+b>c) and (a+c>b) and (b+c>a) then
begin
cv:=a+b+c;
writeln('Chu vi=',cv:4:2);
p:=cv/2;
dt:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('Dien tich=',dt:4:2);
end
else writeln('Vui long nhap lai');
end
else writeln('Vui long nhap lai');
close(f1);
readln;
end.
Câu trả lời của bạn
Program HOC24;
const fi='DULIEU.TXT';
var f: text;
a,b,c,max,d,e: integer;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,a,b,c,d,e);
close(f);
end;
begin
ip;
max:=0;
if max<a then max:=a;
if max<b then max:=b;
if max<c then max:=c;
if max<d then max:=d;
if max<e then max:=e;
write(max);
readln
end.
Câu trả lời của bạn
const fi='input.txt';
fo='output.txt';
var f1,f2:text;
a:array[1..100]of integer;
n,i,dem:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
n:=0;
while not eoln(f1) do
begin
inc(n);
read(f1,a[n]);
end;
dem:=0;
for i:=1 to n do
if a[i]<0 then inc(dem);
writeln(f2,dem);
close(f1);
close(f2);
end.
Câu trả lời của bạn
Program DapAnHay;
var a: array[1..6] of byte;
s: string;
f: text;
begin
assign(f,'KT.TXT');
reset(f);
readln(f,s);
for i:=1 to 6 do read(f,a[i]);
close(f);
end.
0 Bình luận
Để lại bình luận
Địa chỉ email của hạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *