Tải bản đầy đủ (.ppt) (21 trang)

BÀI 16. VÍ DỤ LÀM VIỆC VỚI TỆP ( HỘI GIẢNG)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 21 trang )

Kiểm tra bài cũ
Câu 1:
. Viết khai báo biến tệp f có kiểu văn bản
. 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);


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 ‘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);



BBààii16
16

VÍ DỤ LÀM VIỆC VỚI TỆP


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.


Khoảng cách


Ví dụ 1: Tính khoảng cách giữa các trại:

y

Công thức tính khỏang cách:

yb
ya
O


B

D = ( xb − xa ) 2 + ( yb − ya ) 2

A
xa

xb

x


Xác định bài toán
* Input:
+ Tọa độ trại Hiệu trưởng O(0,0)
+ Tệp TRAI.TXT chứa các cặp số nguyên (x,y) liên tiếp.
* Output:
Khoảng cách giữa trại mỗi lớp và trại thầy hiệu trưởng

Tệp ‘Trai.txt’


Xây dựng thuật toán ?
B1. Nếu hết tệp TRAI.TXT thì kết thúc thuật toán;
B2. Đọc giá trị x, y từ tệp TRAI.TXT;
B3. Tính và in khoảng cách d;
B4. Quay lại B1.


Trình tự các bước thực hiện.

- Khai báo biến tệp f để đọc dữ liệu từ tệp.
- Khai báo biến d, x, y.
- Gắn biến tệp f với tệp ‘TRAI.TXT’
- Mở tệp để đọc dữ liệu.
- Lặp lại nếu chưa hết tệp:
1. Đọc giá trị x, y từ biến tệp f
2. Tính d
3. In d ra màn hình
- Đóng tệp.


Progam Khoang_cach;
Var d: real; f :text; x, y: integer;
Begin
Assign(f, ‘TRAI.TXT’); {Gắn tệp ‘TRAI.TXT’ với biến tệp f}
Reset(f); {Mở tệp ‘TRAI.TXT’ để đọc dữ liệu}
While not eof(f) do {Kiểm tra con trỏ tệp đã chỉ cuối tệp chưa}
Begin
{Đọc dữ liệu từ tệp, gán giá trị
Read(f,x,y);
D:= sqrt(x*x+y*y); cho 2 biến x, y}
Write(‘Khoang cach: ‘,d:10:2);
End;
Close(f); {Đóng tệp}
End.


Thực hiện
DEMO



Bài tập nhóm


Hãy viết lại chương trình của Ví dụ 1
nhưng khoảng cách được lưu vào tệp có
tên là ‘KHOANGCACH.TXT’


Xác định bài toán
* Input:
+ Tọa độ trại Hiệu trưởng O(0,0)
+ Tệp TRAI.TXT chứa các cặp số nguyên (x,y) liên tiếp.
* Output:
+ Tệp ‘KHOANGCACH.TXT’ chứa các khoảng cách
giữa các trại Giáo viên với trại Hiệu trưởng, mỗi
khoảng cách trên một dòng.


Trình tự các bước thực hiện.
- Khai báo biến tệp f1, f2 để đọc, ghi dữ liệu từ tệp.
- Khai báo biến d, x, y.
- Gắn biến tệp f1 với tệp ‘TRAI.TXT’
- Mở tệp ‘TRAI.TXT’ để đọc dữ liệu.
- Gắn biến tệp f2 với tệp ‘KHOANGCACH.TXT’
Mở tệp ‘KHOANGCACH.TXT’ để ghi dữ liệu.
- Lặp lại nếu chưa hết tệp:
1. Đọc giá trị x, y từ biến tệp f1
2. Tính d
3. Ghi giá trị d vào biến tệp f2

- Đóng tệp.


Program VD2;
Var f1,f2 : text; x ,y : integer; d:real;
Begin
assign(f1, ‘c:\trai.txt’);
reset(f1);
assign(f2, ‘c:\khoangcach.txt’);
rewrite(f2);
while not eof(f1) do
begin
read(f1,x,y);
d:= sqrt(x*x+y*y);
writeln(f2,d:9:3);
end;
close(f1); close(f2); readln
End.

Thực hiện


Bài tập về nhà
Cho một dãy số nguyên, mỗi số trên một dòng được ghi trong tệp
‘SONGUYEN.TXT’. Viết chương trình tạo tệp ‘SOCHAN.TXT’
chứa các số chẵn có trong tệp ‘SONGUYEN.TXT’, mỗi số cách nhau
một dấu cách.

16



Củng cố:
Nối cấu trúc thích hợp
1. Đóng tệp.
2. Mở tệp.
3. Gán tên tệp.
4. Đọc/ghi tệp văn bản.

1–e
2–b
3–a
4 – c, d

a. assign(<biến tệp>,<tên tệp>);
b. reset(<biến tệp>);
c. read(<biến tệp>,<danh sách biến>);
d. write(<biến tệp>,<danh sách kết quả>)
e. close(<biến tệp>);
17


VÍ DỤ 3:
Cho một dãy số nguyên, mỗi số trên một dòng được ghi
trong tệp ‘SONGUYEN.TXT’. Viết chương trình tạo
tệp ‘SOCHAN.TXT’ chứa các số chẵn có trong tệp
‘SONGUYEN.TXT’, mỗi số cách nhau một dấu cách.


Xác định bài toán
* Input:

+ Tệp SONGUYEN.TXT chứa một dãy số nguyên, mỗi
số trên một dòng.
* Output:
+ Tệp ‘SOCHAN.TXT’ chứa các số chẵn, mỗi số cách
nhau một dấu cách.


Trình tự các bước thực hiện.
- Khai báo biến tệp f1, f2 để đọc, ghi dữ liệu từ tệp.
- Khai báo biến x.
- Gắn biến tệp f1 với tệp ‘SONGUYEN.TXT’
- Mở tệp ‘SONGUYEN.TXT’ để đọc dữ liệu.
- Gắn biến tệp f2 với tệp ‘SOCHAN.TXT’
Mở tệp ‘SOCHAN.TXT’ để ghi dữ liệu.
- Lặp lại nếu chưa hết tệp:
1. Đọc giá trị x từ biến tệp f1
2. Nếu x chẵn ghi giá trị x vào biến tệp f2
- Đóng tệp.


Program VD3;
Var f1,f2 : text;
x : integer;
Begin
assign(f1, ‘c:\songuyen.txt’);
reset(f1);
assign(f2, ‘c:\sochan.txt’);
rewrite(f2);
while not eof(f1) do
begin

readln(f1,x);
if x mod 2 = 0 then write(f2,x,’ ‘);
end;
Thực hiện
close(f1); close(f2); readln
End.



×