GV: Tức là trong bài toán này ta sẽ đọc từng bộ 3 số thực R1, R2, R3 từ tệp RESIST.DAT sau đó tính và ghi 5 điện trở tương đương xuống tệp RESIST.EQU theo công thức vừa xác định.. Trong [r]
Trang 1Ngày soạn: 10/01/2013
Tiết CT: 39 - 40
§16 VÍ DỤ LÀM VIỆC VỚI TỆP I/ Mục đích, yêu cầu
1 Kiến thức:
Giúp học sinh:
- Vận dụng các bước làm việc với tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp vào các bài toán cụ thể
- Biết một số hàm và thủ tục chuẩn làm việc với tệp
2 Kỹ năng:
Hình thành kỹ năng về các thao tác cơ bản khi làm việc với tệp như:
1.Khai báo
2.Gán tên tệp cho biến tệp
3.Mở tệp
4.Đọc/ ghi dữ liệu cho biến tệp
5.Đóng tệp
3 Thái độ:
- Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp
- Có ý thức lưu trữ dữ liệu một cách khoa học
II/ Phương pháp, phương tiện
Nêu tình huống có vấn đề, câu hỏi gợi mở, hoạt động nhóm
III/ Nội dung
Hoạt động 1: Kiểm tra bài cũ
1/ Yêu cầu HS ghi lại danh sách các công việc và câu lệnh để đọc dữ liệu
1.Khai báo
2.Gán tên tệp cho biến tệp
3.Mở tệp để đọc
4.Đọc dữ liệu cho biến tệp
5.Đóng tệp 2/ Yêu cầu HS ghi lại danh sách các công việc và câu lệnh để ghi dữ liệu
1.Khai báo
2.Gán tên tệp cho biến tệp
3.Mở tệp để ghi
4.Ghi dữ liệu cho biến tệp
5.Đóng tệp
Hoạt động 2: Tìm hiểu ví dụ 1
Tìm hiểu bài toán
GV: Yêu cầu 1 học sinh đọc nội dung ví HS: Đọc ví dụ 1 1 Ví dụ 1
Trang 2dụ 1.
GV giải thích: bài toán yêu cầu tính
khoảng cách từ trại của thầy hiệu
trưởng tọa độ (0,0) đến trại của từng
giáo viên chủ nhiệm tọa độ (x,y) được
lưu liên tiếp trong tệp TRAI.TXT
GV: Yêu cầu HS xác định cho input và
output của bài toán
HS lắng nghe
HS suy nghĩ và trả lời
- 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ìm hiểu cách giải bài toán
GV: Vẽ minh họa về bài toán lên bảng
và yêu cầu HS nêu công thức tính
khoảng cách d
GV:Vậy thì
GV: Tức là trong bài toán này ta sẽ đọc
từng cặp tọa độ (x, y) từ tệp TRAI.TXT
sau đó tính và in khoảng cách ra màn
hình Trong tệp TRAI.TXT sẽ chứa tất
cả các tọa độ của các trại (đặt cách nhau
bởi dấu khoảng cách) Vậy tệp
TRAI.TXT sẽ có dạng như sau:
1 1 3 4 6 7 8 9
Công việc của ta là lặp lại việc đọc từng
cặp tọa độ và tính khoảng cách của
chúng tới tọa độ (0,0) cho đến khi hết
tệp
HS: Suy nghĩ và trả lời
HS: Suy nghĩ và trả lời
d=
y2-y1¿2 x2-x1¿2+¿
¿
√¿
d= x2y2
Xây dựng thuật toán để giải bài toán
GV: Hướng dẫn HS xây dựng thuật toán
GV: Nhấn mạnh rằng bài này vận dụng
thao tác đọc dữ liệu từ tệp TRAI.TXT
HS: Xây dựng thuật toán - 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
2 2
B4 Quay lại B1
Viết chương trình
GV: Gợi ý cho HS thấy được trình tự
các công việc cần thực hiện trong
- Chương trình (như trong SGK)
Trang 3chương trình:
- 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’
- 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
GV: Gợi ý và yêu cầu HS tự hoàn thành
chương trình và viết chương trình lên
bảng:
- Làm sao để biết là đã đọc hết tệp hay
chưa?
- Chúng ta có biết trước có bao nhiêu
cặp tọa đô hay không? Vậy chúng ta có
biết là sẽ lặp lại bao nhiêu lần hay
không? Vậy vòng lặp trong bài toán này
là biết trước hay chưa biết trước số lần
lặp?
HS: Eof(f) có giá trị True
HS: Chưa biết trước số lần lặp
Minh họa chương trình trên máy chiếu
GV: Hướng dẫn cách tạo tệp TRAI.TXT
từ Pascal
GV: Mở chương trình Khoangcach.pas
đã soạn thảo sẵn
GV: Thực hiện chương trình để học sinh
thấy được kết quả
GV: Giải thích khi đọc tệp thì con trỏ
tệp tự động di chuyển từ đầu tệp đến
cuối tệp Khi ở vị trí cuối tệp thì giá trị
của EOF sẽ là true
GV: Chỉ ra nơi lưu trữ mặc định của tệp
trong Pascal khi không nêu rõ đường
dẫn
Theo dõi và ghi chú
Tiết 2
Hoạt động 3: Tìm hiểu ví dụ 2
Tìm hiểu bài toán
GV: Yêu cầu 1 học sinh đọc nội dung ví
dụ 2
GV giải thích: Trong tệp văn bản
RESIST.DAT chứa nhiều bộ 3 số R1,
R2, R3, chúng ta dựa vào sơ đồ hình
HS: Đọc ví dụ 2 2 Ví dụ 2
- Xác định bài toán:
* Input:
Tệp văn bản RESIST.DAT gồm nhiều dòng, mỗi dòng chứa ba
Trang 4mắc điện trở ở hình 17 để tính và ghi lần
lượt 5 điện trở tương đương xuống tệp
RESIST.EQU
GV: Vậy theo các em ta cần Input
những giá trị nào? Và Output những giá
trị nào?
R1, R2, R3
* Output:
Tệp văn bản RESIST.EQU mỗi dòng ghi năm điện trở tương đương của R1, R2, R3
Tìm hiểu cách giải bài toán
GV: Yêu cầu HS nêu công thức tính
điện trở tương đương của 2 điện trở R1,
R2 mắc nối tếp và mắc song song
- Gọi HS trình bày cách tính điện trở tương
đương của các điện trở được mắc như trong
sơ đồ 1 đến 5.
GV: Nhận xét và bổ sung.
GV: Tức là trong bài toán này ta sẽ đọc
từng bộ 3 số thực R1, R2, R3 từ tệp
RESIST.DAT sau đó tính và ghi 5 điện
trở tương đương xuống tệp
RESIST.EQU (theo công thức vừa xác
định) Trong tệp RESIST.DAT sẽ chứa
nhiều dòng chứa 1 bộ 3 số thực R1, R2,
R3 (đặt cách nhau bởi dấu khoảng cách)
Vậy tệp RESIST.EQU có dạng như sau:
1 1 3
4 6 7
8 9 1.5
1 7 3.5
Công việc của ta là lặp lại việc đọc từng
bộ 3 số thực R1, R2, R3 từ tệp
RESIST.DAT sau đó tính và ghi lần lượt
5 điện trở tương đương xuống tệp
RESIST.EQU cho đến khi nào hết tệp
RESIST.DAT mới thôi
HS:
* Nối tiếp: Rtd=R1+ R2
* Song song:
1* 2
1 2
R R
Xem hình trong SGK và trả lời
- Lắng nghe và hình dung công việc
R td1 =
1* 2* 3 1* 2 2* 3 3* 1
R td2 =
1* 2
3
1 2
R R
R
Rtd3=
1* 3
2
1 3
R R
R
Rtd4=
2* 3
1
2 3
R
Rtd5= R1R2R3
Xây dựng thuật toán để giải bài toán
GV: Hướng dẫn HS xây dựng thuật toán
GV: Nhấn mạnh rằng bài này vận dụng
thao tác đọc dữ liệu từ tệp RESIST.DAT
và thao tác ghi dữ liệu xuống tệp
RESIST.EQU
HS: Xây dựng thuật toán - Thuật toán:
B1 Nếu hết tệp RESIST.DAT thì kết thúc thuật toán;
B2 Đọc 3 số thực R1, R2, R3
từ tệp RESIST.DAT;
B3 Tính giá trị của 5 điện trở tương đương;
B4 Ghi giá trị của 5 điện trở tương đương xuống tệp RESIST.EQU;
Trang 5B5 Quay lại B1.
Viết chương trình
GV: Chương trình này sẽ làm việc với
mấy tệp?
GV: Làm việc với 2 tệp thì chúng ta cần
2 biến tệp: 1 biến tệp để đọc (f1), 1 biến
tệp để ghi (f2)
GV: Biến tệp f1 dùng để đọc dữ liệu,
vậy f1 sẽ gắn với tệp nào?
GV: Còn biến tệp f2 thì sao?
GV: Tương tự như ví dụ 1, ta sẽ lặp lại
việc đọc tệp f1 cho đến khi EOF(f1) có
giá trị true
GV: Gợi ý cho HS thấy được trình tự
các công việc cần thực hiện trong
chương trình:
- Khai báo biến tệp f1,f2 để đọc và ghi
dữ liệu
- Khai báo R1, R2, R3 để lưu giá trị 3
điên trở
- Khai báo mảng a có 5 phân tử để lưu 5
điện trở tương đương
- Gắn biến tệp f1 với tệp ‘RESIST.DAT’
- Gắn biến tệp f2 với tệp ‘RESIST.EQU’
- Lặp lại nếu chưa hết tệp f1:
1 Đọc giá trị R1, R2, R3 từ biến tệp f1
2 Tính giá trị của 5 điện trở tương
đương
3 Ghi 5 điện trở tương đương xuống f2
- Đóng tệp f1
- Đóng tệp f2
GV: Gợi ý và yêu cầu HS tự hoàn thành
chương trình và viết chương trình lên
bảng
HS: 2 tệp
HS: RESIST.DAT HS: RESIST.EQU
- Chương trình (như trong SGK)
Minh họa chương trình trên máy chiếu
GV: Hướng dẫn cách tạo tệp
RESIST.DAT từ Pascal
GV: Mở chương trình Dientro.pas đã
soạn thảo sẵn
GV: Thực hiện chương trình để học sinh
thấy được kết quả
GV: Nhắc lại nơi trữ mặc định của tệp
trong Pascal khi không nêu rõ đường
dẫn và mở tệp RESIST.EQU để học sinh
xem kết quả
Theo dõi và ghi chú
Trang 6IV/ Củng cố
- Giáo viên nhắc lại các thao tác khi làm việc với tệp cùng với các thủ tục của nó
- Ra bài tập về nhà:
1/ Viết chương trình đọc từng bộ 3 số thực a,b, c từ tệp ‘Input.txt’ sau đó giải và ghi kết quả của ptb2: ax2 + bx +c = 0 (a≠0) xuống tệp ‘Output.txt’
Mẫu tệp Input.txt Mẫu tệp Output.txt
1 2 -1
-1 3 2
x1= -1.00 x2= -1.00 X1=0.56 x2=3.56