Ví dụ làm việc với tệpVí dụ 1: Một tr ờng trung học cho giáo viên và học sinh đi cắm trại, sinh hoạt ngoài trời v ờn quốc gia Cúc ph ơng.. Để lên lịch đến thăm trại các lớp thầy hiệu tr
Trang 2Bài 16 Ví dụ làm việc với tệp
Ví dụ 1: Một tr ờng trung học cho giáo viên và học sinh đi cắm trại,
sinh hoạt ngoài trời v ờn quốc gia Cúc ph ơng Để lên lịch đến thăm trại các lớp thầy hiệu tr ởng cần biết khoảng cách từ trại của mình (toạ độ (0,0)) đến trại các giáo viên chủ nhiệm Mỗi lớp có một khu trại, vị trí trại của mỗi giáo viên chủ nhiệm đều có toạ độ nguyên (x,y) đ ợc ghi trong tệp văn bản TRAI.TXT (nh vậy tệp TRAI.TXT chứa liên tiếp các cặp số nguyên cách nhau bởi dấu cách)
Tính và đ a ra màn hình khoảng cách giữa trại của mỗi giáo viên chủ nhiệm và trại của thầy hiệu tr ởng?
-Công thức tính khoảng cách giữa 2 điểm khi biết toạ độ của nó
H ớng dẫn: Độ dài d của đoạn thẳng nối 2 điểm có toạ độ (x,y) và (u,v) trong mặt phẳng đ ợc tính theo công thức:
2
)
Trang 3Program 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);
writeln('Khoang cach: ', d:10:2);
end;
readln;
end
Bài 16 Ví dụ làm việc với tệp
Gắn biến tệp f với tệp trai.txt
Mở tệp để đọc
Ch a kết thúc file
Trang 4• Bµi to¸n 1 (Nhãm 1, 2)
Tõ ch ¬ng tr×nh vÝ dô 1 H·y ® a ra mµn h×nh kho¶ng c¸ch tr¹i c¸ch tr¹i cña thÇy hiÖu tr ëng xa nhÊt
• Bài toán 2 (Nhóm 3,4)
Viết thêm vào chương trình đọc dữ liệu tệp trai.txt ở thư mục d:\baitap\dulieu
Bµi 16 VÝ dô lµm viÖc víi tÖp
TÝnh thêi gian
Trang 5Bài 16 Ví dụ làm việc với tệp
R1 R2 R3
R1 R2
R3
R1 R3
R2
R2 R3
R1
Sơ đồ V
Ví dụ 2: Tính điện trở t ơng đ ơng
Cho 3 điện trở R1, R2, R3 Sử dụng
cả 3 điện trở để tạo ra 5 mạch điện
có điện trở t ơng đ ơng khác nhau
bằng cách mắc theo sơ đồ ở hình
bên:
Mỗi cách mắc đều cho điện trở t ơng
đ ơng khác nhau
Ví dụ: Sơ đồ 1 điện trở t ơng đ ơng sẽ
là:
Nếu mắc theo sơ đồ V thì:
R=R1+R2+R3
Cho tệp văn bản RESIST DAT gồm
nhiều dòng mỗi dòng chứa 3 giá trị
R1, R2, R3 cách nhau bởi mội dấu
3
* 2 3
* 1 2
* 1
3
* 2
* 1
R R
R R
R R
R R
R R
Sơ đồ 1: R=(R1*R2*R3)/(R1*R2+R1*R3+R2*R3) Sơ đồ 2: R=(R1*R2)/(R1+R2)+R3
Sơ đồ 3: R=(R1*R3)/(R1+R3)+R2 Sơ đồ 4: R=(R2*R3)/(R2+R3)+R1 Sơ đồ 5: R=R1+R2+R3
Trang 6+ Giá trị R1, R2, R3 đã cho trong tệp RESIST.DAT
+ Dữ liệu đ ợc tổ chức thành nhiều dòng Mỗi một dòng trong tệp RESIST DAT chứa 3 số thực đ ợc cách nhau bởi một dấu cách
Nh vậy ta phải thực hiện các công việc?
+ Đọc dữ liệu trong tệp RESIST.DAT
+ Tính điện trở của 5 mạch điện và l u vào file RESIST.EQU
Bài 16 Ví dụ làm việc với tệp
Ví dụ 1: Tính khoảng cách
Ví dụ 2: Tính điện trở t ơng đ ơng
Trang 7Program Dientro;
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);
While not oef(f1) do Begin
readln(f1,r1,r2,r3);
a[1]:=r1*r2*r3/(r1*r2+r1*r3+r2*r3); a[2]:=r1*r2/(r1+r2)+r3;
a[3]:=r1*r3/(r1+r3)+r2;
a[4]:=r2*r3/(r2+r3)+r1;
a[5]:=r1+r2+r3;
for i:=1 to 5 do write(f2, a[i]:8:2, ‘ ‘); writeln(f2);
End; close(f1); close(f2);
End.
Bµi 16 VÝ dô lµm viÖc víi tÖp
VÝ dô 1: TÝnh kho¶ng c¸ch
VÝ dô 2: TÝnh ®iÖn trë t ¬ng ® ¬ng
Trang 8Từ ví dụ 2 hãy viết ch ơng trình tìm giá trị lớn nhất trong file
RESIST.EQU Ghi giá trị đó vào file KETQUA.OUT
Viết ch ơng trình nhập vào từ bàn phím một bài thơ (nếu ng ời dùng
nhập vào thừa dấu cách thì phải xoá dấu cách thừa) nội dung bài thơ đ ợc l u trong tệp THO.TXT
- Đọc nội dung của tệp THO.TXT đ a ra màn hình nội dung bài thơ
- Đ a ra màn hình số từ trong bài thơ vừa nhập
Bài 16 Ví dụ làm việc với tệp
Bài tập về nhà