Ví dụ 1:Ví dụ 1: Một trường học phổ thông tổ chức cho giáo viên và học sinh của trường 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 khu trại các lớp,
Trang 1Bài 16
Tuần: 29
Tiết: 38
Ngày dạy: / ./ 2009
Tuần: 29
Tiết: 38
Ngày dạy: / ./ 2009
CHƯƠNG V: TỆP VÀ THAO TÁC VỚI TỆP CHƯƠNG V: TỆP VÀ THAO TÁC VỚI TỆP
Trang 2Ví dụ 1:
Ví dụ 1: Một trường học phổ thông tổ chức cho giáo viên và học sinh của trường 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 khu 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(ở vị trí tọa độ (0,0))
đến trại của 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 giáo viên chủ nhiệm đều có tọa độ nguyên (x,y)
Yêu cầu: Tí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 sau đó xuất dữ liệu ra màn hình
Dữ liệu vào: Cho file văn bản TRAI.INP gồm liên tiếp các cặp
số nguyên, các số cách nhau bởi dấu cách
Trang 32 3 4 5 1 2 File TRAI.INP bên có bao nhiêu vị trí
trại của giáo viên chủ
nhiệm
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
Trang 42 3 4 5 1 2 Khi đọc file ta nên đọc một lần bao
nhiêu số?
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
Nên đọc một
lần 2 số
Trang 52 3 4 5 1 2 Đọc file tới khi
nào dừng và dùng hàm gì để kiểm
tra?
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
- Đọc cho tới cuối file
- Dùng hàm eof(f)
Trang 62 3 4 5 1 2 Công thức tính
khoảng cách giữa gốc tọa độ đến tọa
độ (x,y)?
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
TRAI.INP
2 3 4 5 1 2
D=sqrt(x*x+y*y)
Trang 7- Khai báo; Program vd1;
Uses crt;
Var tep : TEXT;
d : real;
x,y : Integer;
- Gán tên tệp;
BEGIN Clrscr;
ASSIGN(tep, ‘TRAI.INP’);
- Mở tệp ra để đọc; RESET(tep);
CÁC BƯỚC:
THỂ HIỆN BẰNG
PASCAL
Trang 8- Đọc từng tọa độ trong
file, mỗi lần đọc 2 số Begin
read(f,x,y) ; d:=sqrt(x*x+y*y);
Writeln(‘Khoang cach: ’,d:10:2); End;
While not eof(f) do
Readln;
END.
Trang 102 3 4 5 1 2
Trang 11Nhấn F3 để mở tệp
BAITAP.INP xem
nội dung.
Nội dung tệp
Trang 12Cho ba điện trở R1, R2, R3 Sử dụng cả ba điện trở để tạo
ra năm mạch điện có điện trở tương đương khác nhau bằng cách mắc theo các sơ đồ nêu ở hình 17
Ví dụ 2: Tính điện trở tương đương
R1 R2 R3
Sơ đồ I
R1 R2
R3
Sơ đồ II
R3 R2
R1 R1
R3
R2
Trang 13Yêu cầu: Tính các điện trở tương đương
nhiều dòng, mỗi dòng chứa ba số thực R1, R2 và R3 các số cách nhau một dấu cách 0<=R1,R2,R3<=105
tương đương của ba điện trở R1, R2, R3.
Trang 14- Khai báo; Program vd2;
Uses crt;
Var a: array[1 5] of real;
f1,f2 : TEXT;
R1,R2,R3 : real;
i : Integer;
- Gán tên tệp;
BEGIN Clrscr;
ASSIGN(f1, ‘RESIST.DAT’);
CÁC BƯỚC:
THỂ HIỆN BẰNG
PASCAL
Trang 15- Đọc file 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]:9:3,’ ‘);
Writeln(f2);
End;
While not eof(f) do
- Đóng tệp. Close(f1); Close(f2);