Nội dung bài mới: TG Hoạt động của giáo viên Hoạt động của học sinh Nội dung ghi bảng Hoạt động 1: Vai trò của kiểu tệp + Cho chương trình tính trung bình cộng điểm kiểm tra một tiế
Trang 1GIÁO ÁN CHI TIẾT
Giáo viên hướng dẫn: Hà Nữ Thùy Hương Bộ môn: Tin học Sinh viên thực tập: Huỳnh Văn Thắng
Tên bài giảng: Dữ liệu kiểu tệp, thao tác với tệp (tiết 1) Tiết (theo chương trình): 36 Lớp: 11B8 Phòng: 14
Ngày giảng: 23/03/2013.
I MỤC ĐÍCH, YÊU CẦU:
1 Kiến thức:
- Biết khái niệm và vai trò của kiểu tệp
- Biết hai cách phân loại tệp: theo cách tổ chức dữ liệu và theo cách truy nhập;
- Hiểu bản chất của tệp văn bản;
- Biết các bước làm việc với tệp: gắn tên cho biến tệp, mở tệp/ghi tệp, đóng tệp;
- Biết khai báo biến tệp và các thao tác cơ bản với tệp văn bản;
- Biết sử dụng một số hàm và thủ tục chuẩn làm việc với tệp;
2 Kĩ năng:
- Nắm được vai trò và cách làm việc của kiểu tệp;
- Khai báo, gắn tên tệp, mở tệp/đóng tệp, đọc dữ liệu từ tệp, ghi dữ liệu vào tệp;
3 Thái độ học tập :
Hình thành cho học sinh tính ham học hỏi, yêu thích môn Tin học
II PHƯƠNG TIỆN VÀ PHƯƠNG PHÁP DẠY HỌC:
1 Phương tiện dạy học:
- Giáo viên: Giáo án chi tiết, SGK, SGV, SBT
- Học sinh: Sách giáo khoa, sách bài tập, vở ghi chép, vở nháp và tài liệu tham khảo (nếu có).
2 Phương pháp dạy học:
Phương pháp: thuyết trình, đặt câu hỏi, vấn đáp gợi mở, thảo luận nhóm
III TIẾN HÀNH BÀI DẠY
1 Ổn định lớp (1 phút)
2 Kiểm tra bài cũ (Không kiểm tra)
3 Nội dung bài mới:
TG Hoạt động của giáo viên Hoạt động của học sinh Nội dung ghi bảng
Hoạt động 1: Vai trò của kiểu tệp
+ Cho chương trình tính
trung bình cộng điểm
kiểm tra một tiết tin học
khối 11 trường THPT
Hương Vinh Chạy
chương trình
program diem_tb;
var A:array [1 50] of
Hs quan sát
Trang 22’
byte;
n,i: byte; s: real;
begin
writeln('nhap vao diem
thi cua hoc sinh:');
readln(n);
for i:= 1 to n do
begin
writeln('A[',i,']=');
readln(A[i]);
end;
for i:= 1 to n do
s:=s+A[i];
s:= s/50;
write('diem trung binh',s);
readln;
end
+ Các em nhận thấy với
những dữ liệu chúng ta đã
học thì việc nhập hay kết
quả tính được thì kết quả
đó được lưu trữ ở đâu?
+ Các dữ liệu này khi
chúng ta tắt chương trình
hoặc tắt máy thì sẽ bị mất
và việc nhập lại sẽ tốn
nhiều thời gian và công
sức Thậm chí là các dữ
liệu đó sẽ được sử dụng
vào các mục đích khác
nữa Từ đó đặt ra yêu cầu
cần lưu trữ được lượng dữ
liệu lớn và lâu dài để xử
lý Ngôn ngữ lập trình
cung cấp cho chúng ta
một kiểu dữ liệu mới đó là
kiểu tệp giúp chúng ta giải
quyết một số yêu cầu như
thế
Hôm nay chúng ta vào bài
mới
Bài 14 -15: Kiểu dữ liệu
tệp và thao tác với tệp
? Các em cho ví dụ về một
số tệp mà em đã biết
+ Bộ nhớ trong (Rom, Ram)
- Ví dụ: các tệp khi soạn thảo văn bản, tệp chương trình pascal, bài hát
Bài 14 -15: kiểu dữ liệu tệp và thao tác với tệp
1 Vai trò của kiểu tệp:
Trang 3?Tìm hiểu và cho thầy
biết dữ liệu kiểu tệp có
những đặc điểm gì?
+ Vậy dữ liệu kiểu tệp có
mấy loại và thao tác như
thế nào? Chúng ta qua tìm
hiểu mục 2.
? Có bao nhiêu cách phân
loại tệp và mỗi cách phân
loại thì có những loại nào?
Các em đọc sách và cho
cả lớp biết
lưu trên máy tính
+ Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài (đĩa từ, CD,…)
và không bị mất khi tắt nguồn điện;
+ Lượng dữ liệu lưu trữ trên tệp có
thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa
+ Hs lắng nghe + Theo cách tổ chức dữ liệu: Tệp văn bản, tệp có cấu trúc
+ Theo cách truy cập: Tệp truy cập tuần tự, Tệp truy cập trực tiếp
Ví dụ: songuyen.txt; tong.pas;
+ Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài (đĩa từ, CD,…) và không bị mất khi tắt nguồn điện;
+ Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa
2 Phân loại và thao tác với tệp: +
Theo cách tổ chức dữ liệu:
-Tệp văn bản -Tệp có cấu trúc
+ Theo cách truy cập:
-Tệp truy cập tuần tự -Tệp truy cập trực tiếp.
Hoạt động 2: Tìm hiểu cách khai báo và các thao tác với kiểu dữ liệu tệp
3’
3’
+ Chúng ta sẽ cùng nhau
tìm hiểu các thao tác để sử
dụng kiểu dữ liệu này thông
qua chương trình ví dụ và
phiếu học tập sau: (chia
nhóm và phát phiếu học
tập)
PROGRAM vidu;
VAR f: text;
(1) x,y:integer;
BEGIN
Writeln('nhap2 so
nguyen'); (2)
Readln(x,y);
Writeln('2 so nguyen vua
nhap la: ',x,' ', y);
Assign(f,'SONGUYEN.TX
T'); (3)
(4) Rewrite(f);
(5) Write(f,x,' ', y);
(6) Close(f);
Readln;
END.
? Các đoạn lệnh trên thực
hiện công việc gì?
+ Gọi nhóm nhanh nhất trả
lời cho điểm tốt.( nếu
xong)
+ Để hiểu rõ hơn về các
+ Các nhóm làm bài trên phiếu học tập
+ Nhóm trả lời
+ Trả lời: (1) VAR f: text;
PROGRAM vidu;
VAR f: text;
x,y:integer;
BEGIN
writeln(' nhap vao 2 so nguyen'); readln(x,y);
writeln('2 so nguyen vua nhap la: ',x,' ', y); assign(f,'SONGUYEN.TXT'); rewrite(f);
write(f,x,' ', y);
readln;
close(f);
END.
3 Thao tác với tệp văn bản 3.1 Khai báo:
Trang 45’
4’
3’
thao tác với tệp chúng ta sẽ
đi lần lượt các đoạn lệnh
này
- Đoạn lệnh thứ nhất.(1)
+ Cũng giống như mọi kiểu
dữ liệu khác muốn sử dụng
một biến thì trước hết phải
khai báo Tìm hiểu sách
giáo khoa và cho biết cú
pháp khai báo biến tệp?
+ Đoạn chương trình (2)
tiếp theo làm việc gì?
? Đoạn chương trình(3) tiếp
theo làm việc gì?
? Cho biết cú pháp gắn biến
tệp? Vì chúng ta đang thao
tác trên ngôn ngữ lập trình
chứ không phải là thao tác
trực tiếp với tệp trên đĩa nên
cần phải gắn tên tệp
+ Cho ví dụ?
- Khi các em đặt mở vở đặt
trên bàn thì múc đích của
các em mở ra để làm gì?
Diễn giải: Vậy khi ta mở
cuốn vở ra thì mục đích của
chúng ta mở ra để đọc hoặc
ghi
Vậy khi sử dụng tệp ta
muốn mở 1 tệp thì các em
phải xác định mục đích của
mình mở tệp để ghi hay để
đọc? Chúng ta cùng tìm
hiểu đoạn chương trình
(4)làm việc gì?
-Hãy đọc sách và cho biết
cú pháp mở tệp để đọc và
ghi như thế nào ?Cho ví dụ?
+ Nếu xác định trước là mở
tệp để đọc dữ liệu thì dùng
thủ tục Reset(<biến tệp>);
Ví dụ?
-Với tệp SONGUYEN.TXT
x,y:integer;
là phần khai báo biến
Khai báo 2 biến x,y kiểu nguyên và biến dữ liệu kiểu text
-Cú pháp khai báo biến tệp:
var <tên biến tệp>: text;
+ Ví dụ: var f, tep1, tep2: text;
+ Đoạn (writeln('nhap vao 2 so nguyen');
readln(x,y);
writeln('2 so nguyen vua nhap la: ',x,' ', y); )
Nhập 2 số nguyên x, y và in ra màn hình
+ Đoạn assign(f,'SONGUYEN.TXT');
dùng để gắn tên tệp vào biến f;
+ Cú pháp gắn tên tệp assign(<biến tệp>, <tên tệp>);
+ Ví dụ:
assign(f,‘SONGUYEN.TXT’);
- Đọc/ ghi
+ Đoạn(4) rewrite(f);
Mở tệp để ghi dữ liệu
+ Mở tệp mới (để ghi dữ liệu):
rewrite(<biến tệp>);
Ví dụ: rewrite(f);
-Mở để đọc/ ghi
Reset(f);
Cú pháp khai báo biến tệp:
var <tên biến tệp>: text;
+ Ví dụ:
var f: text;
+ Nhập 2 số nguyên x, y và in ra màn hình
3.2 a Gắn tên tệp:
+ Cú pháp gắn tên tệp assign(<biến tệp>, <tên tệp>);
Tên tệp là một hằng xâu hoặc biến xâu
Ví dụ:
assign(f,‘SONGUYEN.TXT’);
3.2.b Mở tệp:
+ Mở tệp tệp để ghi dữ liệu
rewrite(<biến tệp>);
Ví dụ: rewrite(f);
+ Mở tệp đã có (để đọc dữ liệu) reset(<biến tệp>);
Ví dụ: reset(f);
Trang 5’
2’
đã được tạo ra bây giờ
chúng ta sẽ mở tệp đó ra
đọc các thông tin đã nhập
vào xem có đúng hay
không
+ Đoạn chương trình(5) tiếp
theo làm việc gì?
Tìm hiểu phần 3.2.c
Ghi/Đọc tệp văn bản
Ghi dữ liệu vào tệp
+ Cú pháp là gì?
+ ví dụ?
Chú ý: dữ liệu trong tệp văn
bản được chia thành các
dòng và khi đọc giống như
nhập từ bàn phím và khi ghi
giống như ghi ra màn hình
+ Sự khác nhau giữa
write(); và writeln();
Việc đọc dữ liệu từ tệp thì
như thế nào? Cú pháp?
So sánh giống và khác nhau
của Readln(); và Read();
- Ví dụ?
+ Ví dụ minh họa( thời gian
dư)
+ Một số hàm chuẩn thường
dùng trong khi đọc/ghi tệp
văn bản:
+Hàm eof(<biến tệp>): Trả
+ Đoạn write(f,x,' ', y);
Ghi dữ liệu vào tệp
Ghi dữ liệu vào tệp
write(<biến tệp>, <danh sách kết quả>);
hoặc:
writeln(<biến tệp>, <danh sách kết quả>);
- Ví dụ: write(f,x,' ', y);
write( tep1, ‘A= ‘, A, ‘B=’, B,
‘C=’, C);
hoặc:
writeln( tep2, ‘X1=’, (-B – SQRT(B*B- 4*A*C)) / (2*A) :8:3) ;
+ Writeln(); sau khi ghi xong thì con trỏ xuống đầu dòng tiếp theo ghi tiếp
+ Write(); ghi liên tiếp dữ liệu
+ Đọc tệp
read(<biến tệp>, <danh sách biến>);
hoặc:
readln(<biến tệp>, <danh sách biến>);
+ Readln(); sau khi đọc xong thì con trỏ xuống đầu dòng tiếp theo đọc tiếp
+ Read(); đọc liên tiếp dữ liệu
Hs ghi chép và lắng nghe
ví dụ: read(f, x, y); readln(f, x, y);
- Đọc sách và trả lời
3.2.c Ghi/ Đọc tệp văn bản:
Ghi tệp.
+ Cú pháp:
write(<biến tệp>, <danh sách kết quả>);
hoặc:
writeln(<biến tệp>, <danh sách kết quả>);
danh sách kết quả là gồm một hoặc nhiều phần tử
ví dụ: write(f,x,' ', y);
Đọc tệp
Read(<biến tệp>, <danh sách biến>); hoặc:
Readln(<biến tệp>, <danh sách biến>);
danh sách biến là một hay nhiều biến đơn
ví dụ: read(f, x, y); readln(f, x, y);
+ Hàm eof(<biến tệp>):
+ Hàm eoln(<biến tệp>);
Trang 6về giá trị true nếu con trỏ
tệp đang chỉ tới cuối tệp
+ Hàm eoln(<biến tệp>);
Trả về giá trị true nếu con
trỏ tệp đang chỉ tới cuối
dòng.
+ Đoạn chương trình (6)
tiếp theo làm việc gì?
+ Chạy chương trình đọc dữ
SONGUYEN.TXT
- Để học sinh thấy được vai
trò của đóng tệp như thế
nào?
PROGRAM vidu;
VAR f: text;
x,y:integer;
BEGIN
assign(f,'SONGUYEN.TXT
');
reset(f);
read(f, x, y);
write(‘du lieu la: ’,x,’ ’, y);
readln;
close(f);
END.
+ Đoạn: Close(f);
Đóng tệp
+ Hs theo dõi
3.2.d Đóng tệp:
Close(f);
Lưu ý: Khi không làm việc với tệp,
ta phải dùng lệnh đóng tệp, đặc biệt sau khi ghi dữ liệu nếu không các thao tác với tệp trước đó sẽ không có tác dụng gì.
PROGRAM vidu;
VAR f: text;
x,y:integer;
BEGIN
assign(f,'SONGUYEN.TXT');
reset(f);
read(f, x, y);
write(‘du lieu la: ’,x,’ ’, y);
readln;
close(f);
END.
Hoạt động 3: Củng cố kiến thức bài học.
4’ Chiếu hình 16: thao tác với
tệp (SGK trang 86)
Sử dụng 5 câu hỏi trắc
Câu hỏi củng cố:
Câu 1: Trong pascal để khai báo biến tệp ta sử dụng cú pháp nào?
a) Var <tên tệp>: text;
b) Var <tên biến tệp>: of text;
c) Var <tên biến tệp>: text;
d) Var <tên biến tệp>: string;
Câu 2: Để gắn tệp KQ.TXT cho biến tệp f1 ta sử dụng câu lệnh?
a) f1:= ‘KQ.TXT’;
b) Assign (‘KQ.TXT’, f1);
c) Assign (f1, KQ.TXT);
d) Assign (f1, ‘KQ.TXT’);
Câu 3:f là biến tệp, x và y là biến kiểu nguyên
Cú pháp nào sau đây đúng?
a) Read (x, y, f);
b) Readln (f, x+y);
c) Read (f, x, y);
d) Readln (f);
Câu 4: f là biến tệp, x là biến kiểu nguyên Cú pháp nào sau đây đúng?
Trang 7a) Writeln (f);
b) Write (f, x);
c) Rewrite (f, x);
d) Reset (x, f);
Câu 5: Phát biểu nào sau đây đúng?
a) Hàm eof (<biến tệp>) trả về vị trí cuối tệp; b)Hàm eof (<biến tệp>) trả về vị trí đầu tệp nếu tệp rỗng;
c) Hàm eoln (<biến tệp>) trả về giá trị true nếu con trỏ đang ở cuối dòng;
d)Hàm eoln (<biến tệp>) trả về giá trị false nếu con trỏ đang ở cuối dòng;
Hoạt động 4: Dặn dò
2’ + Đọc và nghiên cứu các ví
dụ ở bài 16: Ví dụ làm việc
với tệp
Hs lắng nghe
Hương Trà.Ngày 19 tháng 03 năm 2013
Trang 8PROGRAM vidu; VAR f: text;
(1) x,y:integer; BEGIN Writeln('nhap vao 2 so nguyen'); (2) Readln(x,y); Writeln('2 so nguyen vua nhap la: ',x,' ', y); (3) Assign(f,'SONGUYEN.TXT'); (4) Rewrite(f); (5) Write(f,x,' ', y); (6) Close(f); Readln; END Các đoạn lệnh bên thực hiện công việc gì? +Đoạn1:……….
+Đoạn2………
+ Đoạn 3:………
+ Đoạn 4:………
+Đoạn5:………
+Đoạn6……….
Nhóm:
PROGRAM vidu; VAR f: text;
(1) x,y:integer; BEGIN Writeln('nhap vao 2 so nguyen'); (2) Readln(x,y); Writeln('2 so nguyen vua nhap la: ',x,' ', y); (3) Assign(f,'SONGUYEN.TXT'); (4) Rewrite(f); (5) Write(f,x,' ', y); (6) Close(f); Readln; END Các đoạn lệnh bên thực hiện công việc gì? +Đoạn1:………
+Đoạn2……….
+ Đoạn 3:………
+ Đoạn 4:………
+Đoạn5:………
+Đoạn6……….
Nhóm
PROGRAM vidu; VAR f: text;
(1) x,y:integer; BEGIN Writeln('nhap vao 2 so nguyen'); (2) Readln(x,y); Writeln('2 so nguyen vua nhap la: ',x,' ', y); (3) Assign(f,'SONGUYEN.TXT'); (4) Rewrite(f); (5) Write(f,x,' ', y); (6) Close(f); Readln; END. Các đoạn lệnh bên thực hiện công việc gì? +Đoạn1:………
+Đoạn2………
+ Đoạn 3:………
+ Đoạn 4:………
+Đoạn5:………
+Đoạn6………
Nhóm:
PROGRAM vidu; VAR f: text;
(1) x,y:integer; BEGIN Writeln('nhap vao 2 so nguyen'); (2) Readln(x,y); Writeln('2 so nguyen vua nhap la: ',x,' ', y); (3) Assign(f,'SONGUYEN.TXT'); (4) Rewrite(f); (5) Write(f,x,' ', y); (6) Close(f); Các đoạn lệnh bên thực hiện công việc gì? +Đoạn1:………
+Đoạn2……….
+ Đoạn 3:………
+ Đoạn 4:………
+Đoạn5:………
Trang 9Readln;
END.
+Đoạn6……….