Giáo viên hướng dẫn: Tạ Thị Hồng Nhung
Giáo sinh thực hiện : Nguyễn Thị Yến
Chia lớp thành 4 nhóm.
Nội dung: Viết tất cả cú pháp các câu lệnh đã
học trong bài 15 vào giấy.
Thời gian: Sau 4 phút các nhóm báo cáo vòng
tròn.
BÀI 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)
-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.
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
Xây dựng thuật toán ?
B1. Kiểm tra con trỏ tệp TRAI.TXT
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.
Thực hiện.
Phần khai báo:
Biến tệp f để đọc dữ liệu từ
tệp.
Khai báo biến d, x, y.
Phần thân:
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.
PASCAL
Var
f :text;
d: real; 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.
VÍ DỤ 2: Đưa các câu lệnh sau vào những vị trí cần thiết
nhằm đổi chương trình trên để có được chương trình đọc dữ
liệu từ bàn phím và ghi dữ liệu vào tệp?
Chương trình
{1} Var
{2}
s: string;
a: byte;
{3} Begin
{4}
readln(s);
{5}
a:=length(s);
{6}
write(a);
{7}
readln;
{8} End.
Câu lệnh
f1: text;
Assign(f1,’c:\ghixau1.txt’);
Rewrite( f1);
Write(f1,a);
Close(f1);
{1} Var s: string;
{2}
a: byte;
f1: text;
{3} Begin
Assign(f1,’c:\ghixau1.txt’);
{4}
Rewrite( f1);
readln(s);
Write(f1,a);
{5}
a:=length(s);
{6}
write(a);
{7}
readln;
{8} End.
Close(f1);
Var
s: string;
a: byte;
f1: text;
Begin readln(s);
Assign(f1,’c:\ghixau1.txt’);
Rewrite( f1);
a:=length(s);
Write(f1,a);
{write(a);}
Close(f1);
readln;
End.