Đặt vấn đề: Trong tiết học trước các em đã được làm quen với kiểu dữ liệu tệp cũng như các thao tác với tệp như là: Khai báo tệp, gán tên tệp, mở tệp, đọc/ghi dữ liệu vào tệp, đóng tệp..[r]
(1)Ngày soạn 20/03/2009
§16 VÍ DỤ LÀM VIỆC VỚI TỆP
A MỤC TIÊU: 1 Kiến thức:
- Biết 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
- Biết số hàm thủ tục chuẩn làm việc với tệp
2 Kỹ năng:
- Hình thành kỹ thao tác làm việc với tệp như:
1. Mở tệp
2. Gán tên tệp cho biến tệp
3. Đọc/ ghi liệu cho biến tệp
4. Đóng tệp
3 Thái độ:
- Thấy cần thiết tiện lợi kiểu liệu tệp - Có ý thức lưu trữ liệu cách khoa học
B PHƯƠNG PHÁP: Nêu tình có vấn đề, câu hỏi gợi mở, hoạt động nhóm
C CHUẨN BỊ CỦA GIÁO VIÊN, HỌC SINH:
1 Chuẩn bị giáo viên: giáo án, phấn, bút, sổ điểm, SGK, máy chiếu, chương trình minh họa cho học thiết bị cần thiết phục vụ cho hoạt động nhóm
2 Chuẩn bị học sinh: SGK, vở, bút
D TIẾN TRÌNH LÊN LỚP: I Ổn định:
II Kiểm tra cũ:
Câu 1: Nêu vai trò kiểu tệp?
- Dữ liệu kiểu tệp lưu trữ lâu dài nhớ không bị tắt nguồn điện;
- Lượng liệu lưu trữ tệp lớn phụ thuộc vào dung lượng đĩa Câu 2: Khi sử dụng thao tác ghi tệp sử dụng thao tác đọc tệp?
- Tạo tệp sử dụng thao tác ghi tệp; - Mở tệp có sẳn sử dụng thao tác đọc tệp
(2)III Bài mới:
1 Đặt vấn đề: Trong tiết học trước em làm quen với kiểu liệu tệp thao tác với tệp là: Khai báo tệp, gán tên tệp, mở tệp, đọc/ghi liệu vào tệp, đóng tệp Để hiểu rõ thao tác làm việc với tệp văn chuyển sang
2 Triển khai bài:
Hoạt động 1: Tìm hiểu ví dụ 1
Hoạt động thầy trị Nội dung học
GV: chiếu slide tóm tắt nội dung ví dụ
GV: Nêu Input Output toán?
HS: Suy nghĩ trả lời
GV: input, output lên hình
GV: u cầu học sinh nhắc lại cơng thức tính khoảng cách
HS: Suy nghĩ trả lời
GV: giải thích cách tính khoảng cách
GV: Dựa vào sơ đồ làm việc với tệp văn theo em ví dụ thực việc ghi tệp hay đọc tệp?
HS: Đọc tệp
GV: Vậy để đọc tệp có thao tác nào?
HS: trả lời
GV: Dựa vào sơ đồ để đưa ý tưởng thuật toán
Gán tên tệp
Mở tệp
Xử lí
+ Đọc liệu từ tệp TRAI.TXT + Tính khoảng cách
+ Ghi liệu hình
(lặp lại đến trỏ đến vị trí cuối tệp)
Đóng tệp
1 Ví dụ (SGK trang 87)
- Phân tích tốn: * Input:
+ Tọa độ trại Hiệu trưởng O(0,0)
+ Tệp TRAI.TXT chứa cặp số nguyên (x,y) liên tiếp
* Output:
Khoảng cách trại lớp trại thầy hiệu trưởng
- Cơng thức tính khoảng cách + Trong toán học:
D =
y2-y1¿2 x2-x1¿2+¿
¿ √¿
- Chương trình.
Program Khoang_cach; Var d: real;
f: Text; x, y: integer; Begin
Assign(f.’TRAI.TXT’); Reset(f);
(3)GV: Dựa vào mơ hình slide dẫn dắt để học sinh biết việc đọc tệp kết thúc trỏ vị trí cuối tệp
HS: chú ý lắng nghe
GV: Sử dụng Pascal để đưa chương trình ví dụ Sau giáo viên số câu lệnh chương trình yêu cầu học sinh giải thích
HS: chú ý quan sát giải thích
GV: Mở tệp TRAI.TXT cho học sinh xem, sau chạy thử chương trình cho học sinh xem kết
HS: ý quan sát
Read(f,x,y);
D:= Sqrt(x*x+y*y);
Writeln(‘Khoangcach:’ d:10:2); End;
Close(f); End
Hoạt động 2: Tìm hiểu ví dụ 2
Hoạt động thầy trị Nội dung học
GV: Tóm tắt nội dung chiếu đầu hình vẽ lên hình
HS: Ghi
GV: Yêu cầu học sinh phân tích để xác định input, output
HS: Suy nghĩ trả lời
GV: Chiếu input, output lên hình
GV: Gọi em học sinh đưa công thức tính điện trở tương đương hai điện trở mắc nối tiếp song song
HS:
- Cơng thức tính điện trở tương đương hai điện trở mắc nối tiếp:
R = R1 + R2
- Cơng thức tính điện trở tương đương hai điện trở mắc song song:
1
R=
1
R1+
1
R2
GV: Vậy cách mắc điện trở song song ba điện trở nối tiếp ta tính khơng?
2 Ví dụ (SGK trang 87, 88)
- Phân tích tốn:
*Input: Tệp văn
RESIST.DAT gồm nhiều dòng, dòng chứa ba R1, R2, R3
*Output: Tệp văn
RESIST.EQU dòng ghi năm điện trở tương đương R1, R2, R3
Chương trình
Program Dientro;
Var a: array[1 5] of real; R1, R2, R3: Real; i: integer; f1, f2: text; BEGIN
Assign(f1,’RESIST.DAT ’); Reset(f1);
(4)GV: Chiếu công thức tính điện trở tương đương ba điện trở mắc nối tiếp song song lên hình
- Điện trở tương đương của: Sơ đồ 1: R=R1*R2*R3/ (R1*R2+R1*R3+R2*R3); Sơ đồ 5: R=R1+R2+R3;
GV: Yêu cầu học sinh tính điện trở tương đương mạch điện ứng với sơ đồ lại: Sơ đồ 2: R=R1*R2/(R1+R2) +R3;
Sơ đồ 3: R=R1*R3/(R1+R3)+R2; Sơ đồ 4: R=R2*R3/(R2+R3)+R1:
GV: Dựa vào sơ đồ làm việc với tệp văn em Ví dụ sử dụng ghi tệp hay đọc tệp?
HS:Suy nghĩ trả lời
GV: Tệp ghi? Tệp đọc?
HS: Trả lời câu hỏi
GV: Có học sinh viết chương trình cịn số lỗi chưa thực yêu câu nhóm sửa lỗi đoạn chương trình: Var a1, a2: real; {Khai bao}
R1; R2, R3: real; i: integer; Fi; Fo: txt; Begin
{Buoc 1}
Assign(fi,'D:\RESIST.DAT'); Rewrite(Fi);
Rewrite(Fo); Assign(Fo,'D:\RESIST.EQU');
{Buoc 2}
Read(Fo,R1,R2,R3);
a1:=R1*R2*R3/(R1*R2+R1*R3+R2*R3); write(Fi,a1:9:3,' ');
a2:=R1*R2/(R1+R2)+R3; write(Fi,a2:9:3,' ');
While not eof(f1) 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 write(f2,a[i] : 9:3,’’);
Writeln(f2); End;
(5){Buoc 3}
Close('RESIST.DAT'); Close('RESIST.EQU');
End
GV: Phân nhóm phát phiếu học tập
HS: Các nhóm thảo luận đưa kết cuối
GV: Chạy chương trình sửa lỗi Pascal mở tệp kết cho học sinh xem nhận xét giải yêu cầu toán chưa?
HS: ý quan sát trả lời câu hỏi (mới đọc dịng tính sơ đồ)
GV: Muốn tính sơ đồ làm nào?
HS: Sử dụng biến nhận kết sơ đồ ghi kết vào tệp
GV: Tệp RESIST.DAT có nội dung nào?
HS:
GV: Dùng lệnh Read/Readln để đọc tệp?
HS: Readln
GV: Khi không đọc tệp nữa?
HS: Khi kết thúc tệp
GV: Chạy chương trình Pascal yêu cầu học sinh ý quan sát nhận xét tệp kết quả?
PROGRAM Dientro; VAR a1,a2,a3,a4,a5: real; R1,R2,R3: real;
i: integer; Fi,Fo: text; Begin
{Buoc 1}
(6)Assign(Fi,'D:\RESIST.DAT'); Reset(Fi);
Assign(Fo,'D:\RESIST.EQU'); Rewrite(Fo);
{Buoc 2}
While not Eof(Fi) Begin
Readln(Fi,R1,R2,R3); a1:=R1*R2*R3/(R1*R2+R1*R3+R2*R3); write(Fo,a1:9:3,' ');
a2:=R1*R2/(R1+R2)+R3; write(Fo,a2:9:3,' ');
a3:=R1*R3/(R1+R3)+R2; write(Fo,a3:9:3,' ');
a4:=R2*R3/(R2+R3)+R1; write(Fo,a4:9:3,' ');
a5:=R1+R2+R3; write(Fo,a5:9:3,' '); End;
{Buoc 3}
Close(Fi); Close(Fo); End
HS: ý
GV: Mở tệp kết để học sinh xét
GV: Tổng hợp ý kiến giải thích sau tính ghi điện trở tương đương sơ đồ đưa trỏ xuống dịng (Writeln(fo);)
GV: Nếu có 100 sơ đồ cách mắc điện trở khác làm nào?
HS: sử dụng kiểu mảng
GV: đưa chương trình hồn chỉnh VD2 chạy Pascal để học sinh thấy kết
(7)Hoạt động thầy trò Nội dung học GV: Đưa chương trình ví dụ
yêu cầu học sinh bổ sung lệnh để ghi khoảng cách vào tệp
KETQUA.TXT?
HS: bổ sung lệnh dựa vào sơ đồ làm việc với tệp văn
GV: Chạy chương trình mở tệp kết để học sinh thấy rõ
Bài tập 1:
Làm lại ví dụ 1, sau ghi liệu output vào tệp có tênKETQUA.TXT.
Bài tập 2:
Cho hai tệp văn NGUYEN1.TXT
NGUYEN2.TXT gồm nhiều dòng, dòng chứa số nguyên Hãy viết chương trình để tạo tệp văn NGUYEN12.TXT, dòng dòng tệp
NGUYEN1.TXT, dòng lại dòng tệp NGUYEN2.TXT
IV Củng cố:
Lưu ý: Việc trao đổi với nhớ ngồi thực thơng qua kiểu liệu tệp Để làm việc với tệp ta cần phải khai báo tệp
Mỗi ngôn ngữ lập trình có hàm thủ tục chuẩn để làm việc với tệp Các thao tác với tệp
- Khai báo biến tệp, mở tệp đóng tệp - Đọc, ghi liệu từ tệp
V Dặn dò, hướng dẫn học sinh học tập nhà
- Làm tập nhà SGK
- Học kỹ để viết chương trình
Duyệt Tổ trưởng CM/ Hiệu trưởng :