Kiến thức: • Củng cố việc sử dụng các thủ tục và hàm thao tác trên tệp; • Các giải thuật và bài toán cơ bản.. Thái độ • Học sinh tích cực chủ động, nghiêm túc trong việc giải quyết bài t
Trang 1GIÁO ÁN Người soạn: Trần Hồng Thắm
Bộ môn: Tin học
Lớp: 11
TIẾT: BÀI TẬP VỀ TỆP
I Mục tiêu
1 Kiến thức:
• Củng cố việc sử dụng các thủ tục và hàm thao tác trên tệp;
• Các giải thuật và bài toán cơ bản
2 Kỹ năng:
• Học sinh có thể hiểu và sử dụng biến tệp có kiểu trong lưu và xử lý dữ liệu
3 Thái độ
• Học sinh tích cực chủ động, nghiêm túc trong việc giải quyết bài tập
II Chuẩn bị
• GV: Tài liệu, các thiết bị trực quan, giáo án
• HS: Sách, vở, bút, thước…
III Phương pháp dạy học dự kiến
• Gợi ý, thuyết trình, vấn đáp với học sinh
• Hoạt động theo nhóm
IV Nội dung bài giảng
1 Ổn định lớp- kiểm tra sỹ số
2 Kiểm tra bài cũ
3 Nội dung bài mới
Hoạt động 1: Nhắc lại các kiến thức đã học về tệp.
GV- Yêu cầu học sinh nhắc lại các thao tác về tệp
HS- Độc lập suy nghĩ để trả lời câu hỏi
Hoạt động 2: Rèn luyện kỹ năng thao tác với tệp
Nội dung ghi bảng Hoạt động của thầy và trò
Trang 2Bài 1: Cho tệp DATA.INP, mỗi dòng
chứa một số nguyên Hãy lập trình tính
trung bình cộng các số.
1 Phân tích bài toán
Input: Dữ liệu được đọc ở tệp
DATA.INP;
Output: Trung bình cộng các số
2 Diễn tả thuật toán:
Bước 1: Gán và mở tệp (f,
’DATA.INP’), dem:=0; s:=0;
Bước 2: Nếu eof(f) thì qua bước 3
Còn không: - read(f,n);
- s:=s+n;
- dem:=dem+1;
- Quay lại bước 2;
Bước 3: Nếu dem>0 thì trung bình cộng
là s/dem
Còn không thì file rỗng;
Bước 4: Đóng file
3 Viết chương trình
VAR f:text;
s,n,dem:integer;
begin
assign(f,'DATA.TXT');
RESET(f);
dem:=0; s:=0;
while not eof(f) do
begin
read(f,n);
GV: Ra đề bài tập.
HS: Chép lại đề bài tập và suy nghĩ cách
giải
GV: Hãy nêu input và output của bài
toán?
HS: Input: Dữ liệu được đọc ở tệp
DATA.INP;
Output: Trung bình cộng các số
GV: Một em hãy nêu ý tưởng để giải
quyết bài toán?
HS: Đọc từng dòng dữ liệu từ tệp, cộng
dồn các số trong tệp và đếm số phần tử của tệp
GV: Gọi một HS lên bảng mô tả thuật
toán.Dùng sơ đồ khối hoặc cách liệt kê
HS: Một em lên bảng viết bài Các bạn
khác ngồi dưới viết
GV: Chữa bài của hs viết.
HS: Theo dõi bài.
GV: Yêu cầu HS viết chương trình cài
đặt
HS: Lên viết chương trình.
GV: Sửa lỗi cho học sinh.
Mở rộng GV: Từ bài toán các em có thể mở rộng
đề giải các bài toán tương tự như:
- Tính tổng của các giá trị trong file;
- Đếm số phần tử của file văn bản
Trang 3s:=s+n; dem:=dem+1;
end;
if dem>0 then write('trung binh
cong la:',s/dem:12:2)
else write('file rong');
close(f);
readln;
end
Bài 2: Cho tệp DATA.TXT chứa các số
nguyên Hãy lập trình tìm các số chia
hết cho 3 và ghi vào tệp KETQUA.TXT.
1 Xác định bài toán
Input: Dữ liệu được đọc ở tệp
DATA.TXT;
Output: Tệp KETQUA.TXT chứa các
số chia hết cho 3
2 Diễn tả thuật toán
Bước 1: Gán và mở tệp (f,
‘DATA,TXT), gán và mở tệp
(f1,KETQUA.TXT) để ghi kết quả;
Bước 2: Nếu eof(f) thì qua bước 3
Còn không: - read(f,n);
- Nếu n mod 3=0 thì ghi vào tệp KETQUA.TXT;
- Quay lại bước 2;
Bước 3: close(f), close(f1).
3 Viết chương trình
Var f,f1: text;
n: integer;
GV: Giao bài tập thứ 2 Đọc đề cho HS HS: Chép lại đề bài tập và suy nghĩ cách
giải
GV: Hãy nêu input và output của bài
toán?
HS: Input: Dữ liệu được đọc ở tệp
DATA.INP;
Output: Tệp KETQUA.INP chứa các số chia hết cho 3
GV: Một em hãy nêu ý tưởng để giải
quyết bài toán?
HS: Duyệt từng phần tử của file nếu
chia hết cho 3 thì ghi vào tệp KETQUA.INP
GV: Gọi một HS lên bảng mô tả thuật
toán.Dùng sơ đồ khối hoặc cách liệt kê
HS: Một em lên bảng viết bài Các bạn
khác ngồi dưới viết
GV: Chữa bài của hs viết.
HS: Theo dõi bài.
Trang 4Begin
Assign(f,’DATA.TXT’);
Reset(f);
Assign(f1,’KETQUA.TXT’);
Rewrite(f1);
While not eof(f) do
Begin
Read(f,n);
If n mod 3=0 then writeln(f1,n);
End;
Close(f);
Close(f1);
Readln;
End
GV: Yêu cầu HS viết chương trình cài
đặt
HS: Lên viết chương trình.
GV: Sửa lỗi cho học sinh.
Mở rộng:
GV: Từ bài toán trên ta có thể mở rộng
để giải các bài toán tương tự sau:
- Ghi vào một tệp khác chứa các số nguyên dương
V Củng cố, dặn dò
- Củng cố các kiến thức liên quan trong chương này và các loại bài tập thường có
- Làm các bài tập trong sách bài tập để rèn luyện kỹ năng về tệp