Bài 16. Ví dụ làm việc với tệp
Chia sẻ bởi Bùi Văn Vẹn |
Ngày 10/05/2019 |
54
Chia sẻ tài liệu: Bài 16. Ví dụ làm việc với tệp thuộc Tin học 11
Nội dung tài liệu:
Câu 1: Nêu đặc điểm của kiểu tệp?
ĐÁP ÁN: Dữ liệu được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn điện.
Lượng dữ liệu lưu trữ có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa.
Kiểm tra bài cũ
Câu 2:
. Viết khai báo biến tệp với tên biến tệp là ‘f’.
. Gắn tên tệp ‘ViDu.txt’ cho biến tệp f.
. Mở tệp để đọc dữ liệu.
. Đọc dữ liệu từ tệp ‘ViDu.txt’ vào 2 biến x, y.
. Đóng tệp.
ĐÁP ÁN:
Var f: text;
Assign(f,’ViDu.txt’);
Reset(f);
Readln(f, x, y);
Close(f);
Câu 3:
. Viết khai báo biến tệp với tên biến tệp là ‘f’.
. Gắn tên tệp ‘Ketqua.txt’ cho biến tệp f.
. Mở tệp để ghi dữ liệu.
. Ghi dữ liệu là s1, s2 vào tệp ‘Ketqua.txt’.
. Đóng tệp.
ĐÁP ÁN:
Var f: text;
Assign(f,’Ketqua.txt’);
Rewrite(f);
Writeln(f, s1, s2);
Close(f);
Bài 16: VÍ DỤ LÀM VIỆC VỚI TỆP
VÍ DỤ 1
VÍ DỤ 2
VÍ DỤ 1
Trại của thầy HT có toạ độ (0,0). Trại của các GVCN có toạ độ nguyên (x,y) được ghi trong tệp văn bản ‘TRAI.TXT’ (chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cách và không kết thúc bằng kí tự xuống dòng). Yêu cầu đọc các cặp toạ độ từ tệp ‘TRAI.TXT’, tính rồi đưa ra màn hình khoảng cách giữa trại của mỗi GVCN và trại của thầy HT.
DEMO
4 cặp số nguyên tương
ứng với tọa độ của 4 trại
của 4 giáo viên chủ nhiệm
VÍ DỤ 1
Progam Khoang_cach;
Var d: real; f :text; x, y: integer;
Begin
Assign(f, ‘TRAI.TXT’);
Reset(f);
While not eof(f) do
Begin
Read(f,x,y);
D:= sqrt(x*x+y*y);
Write(‘Khoang cach: ‘,d:10:2);
End;
Close(f);
End.
{Gắn tệp ‘TRAI.TXT’ với biến tệp f}
{Mở tệp ‘TRAI.TXT’ để đọc dữ liệu}
{Kiểm tra con trỏ tệp đã chỉ cuối tệp chưa}
{Đọc dữ liệu từ tệp, gán giá trị
cho 2 biến x, y}
{Đóng tệp}
DEMO
CHƯƠNG TRÌNH
DEMO
KẾT QUẢ KHOẢNG CÁCH
TỪ TRẠI CỦA THẦY HIỆU TRƯỞNG
TỚI 4 TRẠI CỦA GIÁO VIÊN CHỦ NHIỆM
VÍ DỤ 2
Cho 3 điện trở R1, R2, R3 được mắc như 5 sơ đồ H17 trong sgk trang 88. Cho tệp văn bản ‘RESIST.DAT’ gồm nhiều dòng, mỗi dòng chứa 3 số thực R1, R2, R3, các số cách nhau 1 dấu cách. Yêu cầu đọc dữ liệu từ tệp ‘RESIST.DAT’, tính các điện trở tương đương và ghi kết quả ra tệp văn bản ‘RESIST.EQU’, mỗi dòng ghi 5 điện trở tương đương của 3 điện trở ở dòng dữ liệu vào tương ứng.
DEMO
MỖI DÒNG CHỨA 3 SỐ THỰC R1, R2, R3
DEMO
mỗi dòng ghi
5 điện trở tương đương
theo 5 sơ đồ (SGK)
của 3 điện trở
ở dòng dữ liệu vào tương ứng
Program Dien_tro;
Var a: array[1..5] of real;
R1, R2, R3: real; f1,f2 :text; i: integer;
Begin
Assign(f1,‘RESIST.DAT’);
Reset(f1);
Assign(f2,‘RESIST.EQU’);
Rewrite(f2);
VÍ DỤ 2
{Gắn tệp ‘RESIST.DAT’ với biến tệp f1}
{Gắn tệp ‘RESIST.EQU’ với biến tệp f2}
{Mở tệp ‘RESIST.DAT’ để đọc dữ liệu}
{Mở tệp ‘RESIST.EQU’ để ghi dữ liệu}
5.While not eof(f1) do
6. Begin
7. Readln(f1,R1,R2,R3);
8. a[1]:=R1*R2*R3/(R1*R2+R1*R3+R2*R3);
9. a[2]:=R1*R2/(R1+R2)+R3;
10. a[3]:=R1*R3/(R1+R3)+R2;
11. a[4]:=R2*R3/(R2+R3)+R1;
12. a[5]:=R1+R2+R3;
13. For i:=1 to 5 do write(f2, a[i]:9:3,’ ‘);
14. Writeln(f2);
15. End;
16.Close(f1); Close(f2);
17.End.
{Đọc dữ liệu từ tệp, gán giá trị
Cho 3 biến R1, R2, R3}
{Ghi dữ liệu
vào tệp
RESIST.EQU}
{Đóng tệp}
{Đưa con trỏ tệp
xuống dòng}
DEMO
CHƯƠNG TRÌNH
TÓM TẮT
Trao đổi dữ liệu với bộ nhớ ngoài thực hiện thông qua kiểu dữ liệu tệp.
Để làm việc với tệp cần phải khai báo tên tệp
Các thao tác với tệp văn bản: Khai báo biến tệp,mở tệp,đọc,ghi,đóng tệp
Mỗi ngôn ngữ lập trình đều có các hàm/thu tục để làm việc với tệp
Viết khai báo biến tệp với tên biến tệp là ‘f’.
Var f: text;
Gắn tên tệp ‘ViDu.txt’ cho biến tệp f.
Assign(f,’ViDu.txt’);
Mở tệp để đọc dữ liệu.
Reset(f);
Đọc dữ liệu từ tệp ‘ViDu.txt’ vào 2 biến x, y
Readln(f, x, y);
Mở tệp để ghi dữ liệu.
Rewrite(f);
Ghi dữ liệu là s vào tệp ‘ViDu.txt’.
Writeln(f, s);
Đóng tệp.
Close(f);
CẢM ƠN CÁC EM
ĐÃ LẮNG NGHE!
ĐÁP ÁN: Dữ liệu được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn điện.
Lượng dữ liệu lưu trữ có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa.
Kiểm tra bài cũ
Câu 2:
. Viết khai báo biến tệp với tên biến tệp là ‘f’.
. Gắn tên tệp ‘ViDu.txt’ cho biến tệp f.
. Mở tệp để đọc dữ liệu.
. Đọc dữ liệu từ tệp ‘ViDu.txt’ vào 2 biến x, y.
. Đóng tệp.
ĐÁP ÁN:
Var f: text;
Assign(f,’ViDu.txt’);
Reset(f);
Readln(f, x, y);
Close(f);
Câu 3:
. Viết khai báo biến tệp với tên biến tệp là ‘f’.
. Gắn tên tệp ‘Ketqua.txt’ cho biến tệp f.
. Mở tệp để ghi dữ liệu.
. Ghi dữ liệu là s1, s2 vào tệp ‘Ketqua.txt’.
. Đóng tệp.
ĐÁP ÁN:
Var f: text;
Assign(f,’Ketqua.txt’);
Rewrite(f);
Writeln(f, s1, s2);
Close(f);
Bài 16: VÍ DỤ LÀM VIỆC VỚI TỆP
VÍ DỤ 1
VÍ DỤ 2
VÍ DỤ 1
Trại của thầy HT có toạ độ (0,0). Trại của các GVCN có toạ độ nguyên (x,y) được ghi trong tệp văn bản ‘TRAI.TXT’ (chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cách và không kết thúc bằng kí tự xuống dòng). Yêu cầu đọc các cặp toạ độ từ tệp ‘TRAI.TXT’, tính rồi đưa ra màn hình khoảng cách giữa trại của mỗi GVCN và trại của thầy HT.
DEMO
4 cặp số nguyên tương
ứng với tọa độ của 4 trại
của 4 giáo viên chủ nhiệm
VÍ DỤ 1
Progam Khoang_cach;
Var d: real; f :text; x, y: integer;
Begin
Assign(f, ‘TRAI.TXT’);
Reset(f);
While not eof(f) do
Begin
Read(f,x,y);
D:= sqrt(x*x+y*y);
Write(‘Khoang cach: ‘,d:10:2);
End;
Close(f);
End.
{Gắn tệp ‘TRAI.TXT’ với biến tệp f}
{Mở tệp ‘TRAI.TXT’ để đọc dữ liệu}
{Kiểm tra con trỏ tệp đã chỉ cuối tệp chưa}
{Đọc dữ liệu từ tệp, gán giá trị
cho 2 biến x, y}
{Đóng tệp}
DEMO
CHƯƠNG TRÌNH
DEMO
KẾT QUẢ KHOẢNG CÁCH
TỪ TRẠI CỦA THẦY HIỆU TRƯỞNG
TỚI 4 TRẠI CỦA GIÁO VIÊN CHỦ NHIỆM
VÍ DỤ 2
Cho 3 điện trở R1, R2, R3 được mắc như 5 sơ đồ H17 trong sgk trang 88. Cho tệp văn bản ‘RESIST.DAT’ gồm nhiều dòng, mỗi dòng chứa 3 số thực R1, R2, R3, các số cách nhau 1 dấu cách. Yêu cầu đọc dữ liệu từ tệp ‘RESIST.DAT’, tính các điện trở tương đương và ghi kết quả ra tệp văn bản ‘RESIST.EQU’, mỗi dòng ghi 5 điện trở tương đương của 3 điện trở ở dòng dữ liệu vào tương ứng.
DEMO
MỖI DÒNG CHỨA 3 SỐ THỰC R1, R2, R3
DEMO
mỗi dòng ghi
5 điện trở tương đương
theo 5 sơ đồ (SGK)
của 3 điện trở
ở dòng dữ liệu vào tương ứng
Program Dien_tro;
Var a: array[1..5] of real;
R1, R2, R3: real; f1,f2 :text; i: integer;
Begin
Assign(f1,‘RESIST.DAT’);
Reset(f1);
Assign(f2,‘RESIST.EQU’);
Rewrite(f2);
VÍ DỤ 2
{Gắn tệp ‘RESIST.DAT’ với biến tệp f1}
{Gắn tệp ‘RESIST.EQU’ với biến tệp f2}
{Mở tệp ‘RESIST.DAT’ để đọc dữ liệu}
{Mở tệp ‘RESIST.EQU’ để ghi dữ liệu}
5.While not eof(f1) do
6. Begin
7. Readln(f1,R1,R2,R3);
8. a[1]:=R1*R2*R3/(R1*R2+R1*R3+R2*R3);
9. a[2]:=R1*R2/(R1+R2)+R3;
10. a[3]:=R1*R3/(R1+R3)+R2;
11. a[4]:=R2*R3/(R2+R3)+R1;
12. a[5]:=R1+R2+R3;
13. For i:=1 to 5 do write(f2, a[i]:9:3,’ ‘);
14. Writeln(f2);
15. End;
16.Close(f1); Close(f2);
17.End.
{Đọc dữ liệu từ tệp, gán giá trị
Cho 3 biến R1, R2, R3}
{Ghi dữ liệu
vào tệp
RESIST.EQU}
{Đóng tệp}
{Đưa con trỏ tệp
xuống dòng}
DEMO
CHƯƠNG TRÌNH
TÓM TẮT
Trao đổi dữ liệu với bộ nhớ ngoài thực hiện thông qua kiểu dữ liệu tệp.
Để làm việc với tệp cần phải khai báo tên tệp
Các thao tác với tệp văn bản: Khai báo biến tệp,mở tệp,đọc,ghi,đóng tệp
Mỗi ngôn ngữ lập trình đều có các hàm/thu tục để làm việc với tệp
Viết khai báo biến tệp với tên biến tệp là ‘f’.
Var f: text;
Gắn tên tệp ‘ViDu.txt’ cho biến tệp f.
Assign(f,’ViDu.txt’);
Mở tệp để đọc dữ liệu.
Reset(f);
Đọc dữ liệu từ tệp ‘ViDu.txt’ vào 2 biến x, y
Readln(f, x, y);
Mở tệp để ghi dữ liệu.
Rewrite(f);
Ghi dữ liệu là s vào tệp ‘ViDu.txt’.
Writeln(f, s);
Đóng tệp.
Close(f);
CẢM ƠN CÁC EM
ĐÃ LẮNG NGHE!
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Bùi Văn Vẹn
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)