+ Nhận biết được các thành phần trong đầu hàm, các câu lệnh sử dụng hàm ở trong chương trình chính cùng với các tham số thực sự.. Về thái độ : + Tiếp tục rèn luyện các phẩm chất của ng[r]
Trang 1 Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp
Tin Học 11 Trang 1
Tuần : 20 Ngày soạn : 17/12/08
Tiết : 37 Ngày dạy : / /
§14 KIỂU DỮ LIỆU TỆP §15 THAO TÁC VỚI TỆP
I/- Mục đích – yêu cầu :
Về kiến thức :
+ Biết khái niệm và vai9 trò của 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 cập
+ Hiểu bản chất của tệp văn bản
Về kỹ năng :
+ Khai báo đúng 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
Về thái độ :
+ Thấy 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 1 cách khoa học, phòng chống mất mát hoặc nhiễm virus GD thêm về ý thức tôn trọng bản quyền
II/- Chuẩn bị :
GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy
HS : + Đọc trước sách giáo khoa ở nhà
PP : + Diễn giảng ,phát vấn và gợi mở
III/- Hoạt động dạy học :
1 Ổn định lớp : Kiểm tra sĩ số (1’)
2 Kiểm tra bài cũ : (4’)
3 Nội dung bài mới :
TG Hoạt Động Của GV Hoạt Động Của HS Nội Dung Bài
Tiết
37 + Đặt vấn đề : Sau khi chạy 1
chương trình ta thấy kết quả in
lên màn hình, tuy nhiên muốn
sử dụng kết quả đó thì không
được Vì nó không lưu trữ được
lâu dài Để khắc phục nhược
điểm này ta sang bài 14 kiểu
dữ liệu tệp
? Trong MT có những loại bộ
nhớ nào ? Loại bộ nhớ nào
không bị mất dữ liệu khi tắt
máy hoặc mất điện ?
+ Bộ nhớ ngoài và bộ nhớ trong
+ Bộ nhớ ngoài
1/- Vai trò của kiểu tệp :
- 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 đi khi tắt máy
Trang 2 Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp
Tin Học 11 Trang 2
? Vậy theo em thì các kiểu dữ
liệu đã học được lưu trữ ở bộ
nhớ nào ? Theo em dữ liệu
kiểu tệp được lưu trữ trên bộ
nhớ nào ?
+ Tệp văn bản : gồm các kí tự
được tổ chức và quản lí theo
từng dòng Khi truy cập tệp,
con trỏ tệp được di chuyển trên
các dòng tuần tự từ đầu dòng
về cuối dòng Cuối mỗi dòng
có nhóm kí tự điều khiển báo
hết dòng và chuyển tới đầu
dòng tiếp theo Cách truy cập
tệp văn bản thường là truy cập
tuần tự
+ Tệp có cấu trúc : là tệp mà
các thành phần của nó được tổ
chức theo 1 cấu trúc nhất định (
Vd như tổ chức theo các phần
tử cùng kiểu ) Cách truy cập
tệp có cấu trúc thường là truy
cập trực tiếp, do biết được kích
thước của từng phần tử nên có
thể định vị con trỏ tệp đến
ngay vị trí ( phần tử ) cần truy
cập
* Để nắm được rõ hơn về kiểu
dữ liệu tệp, ta sang bài 15 thao
tác với tệp
+ Có 2 thao tác cơ bản đối với
tệp là ghi dữ liệu vào tệp và
đọc dữ liệu từ tệp ra Ta xét
xem trong Pascal các thao tác
đó được thể hiện như thế nào
đối với tệp văn bản ?
+ Khai báo trên xác định 2 biến
tệp văn bản : A, B
+ Lưu trữ ở bộ nhớ trong (RAM)
+ Lưu trữ ở bộ nhớ ngoài
- Lượng dữ liệu lưu trữ trên tệp rất lớn và phụ thuộc vào dung lượng đĩa
2/- Phân loại tệp và thao tác với tệp :
Theo cách tổ chức dữ liệu : ( phân thành 2 loại )
- Tệp văn bản
- Tệp có cấu trúc
Theo cách thức truy cập : ( phân thành 2 loại )
- Tệp truy cập tuần tự
- Tệp truy cập trực tiếp
§15 THAO TÁC VỚI TỆP
1/- Khai báo :
- Khai báo biến tệp văn bản có dạng :
Var < Tên biến tệp > : Text ;
Vd : Var F : Text ;
2/- Thao tác với tệp :
a) Gắn tên tệp :
- Mỗi tệp dữ liệu đều có 1 tên tệp để
Trang 3 Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp
Tin Học 11 Trang 3
+ Trong lập trình, ta không thao
tác trực tiếp với tệp dữ liệu
trên đĩa mà thông qua biến tệp
Có thể hình dung biến tệp được
NNLT sử dụng như đại diện
cho tệp
VD 2 : Để gắn tên tệp
KQ.TXT cho biến tệp F :
ASSIGN(F, ‘KQ.TXT’)
+ Để mở tệp ta có 2 trường hợp
: mở để ghi bài( ghi dữ liệu) và
mở ra để học bài (đọc dữ liệu)
? Vậy ta có 2 thủ tục nào?
+ Khi sử dụng thủ tục
Rewrite(F), nếu trên đĩa C:\
chưa có tệp ‘KQ.DAT’ thì tệp
sẽ được tạo với nội dung rỗng
Nếu đã có thì nội dung cũ bị
xoá hết và ghi vào dữ liệu mới
Chú ý : Trước khi sử dụng
2 thủ tục trên phải gắn tên tệp
cho biến tệp đồng thời biến tệp
phải được khai báo từ trước
? Để nhập dữ liệu từ bàn phím
và in dữ liệu lên màn hình ta
có thể dùng thủ tục nào ?
+ Thủ tục Rewrite và thủ tục Reset
+Để đọc DL ta dùng
Read/Readln.
+ Để ghi DL ta dùng
Write/Writeln.
tham chiếu Tên tệp là biến xâu hoặc
hằng xâu Vd : DULIEU.DAT.
ASSIGN(<biến tệp >, < tên tệp > )
- Lệnh này dùng để gán tên tệp vào biến kiểu tệp
VD 1 : ASSIGN(F, ‘DULIEU.DAT’)
- Gắn tên tệp ‘DULIEU.DAT’ vào biến tệp F
VD 2 : Để đọc dữ liệu từ tệp INP.DAT
ở đĩa C:\ , ta cần gắn tệp đó với biến tệp F :
ASSIGN( F, ‘ C:\INP.DAT ’)
b) Mở tệp :
Ta có 2 thủ tục để mở tệp : + Mở tệp để ghi dữ liệu :
Rewrite(< biến tệp >) ;
Ví dụ : ASSIGN(F, ‘ C:\KQ.Dat’) ; Rewrite(F) ;
+ Mở tệp để đọc dữ liệu :
Reset(< tên biến tệp >) ;
Ví dụ : Để đọc dữ liệu từ tệp
‘KQ.DAT’ ta dùng lệnh : Tentep :=’KQ.DAT’ ;
ASSIGN(F, tentep) ; Reset(F) ;
Hoặc
ASSIGN(F, ‘KQ.DAT’) ; Reset(F) ;
c) Đọc/ ghi tệp văn bản :
Đọc dữ liệu từ tệp : Read/Readln(<Tên biến tệp>,< danh sách biến >) ;
- Đọc dữ liệu từ tệp
Vd : Read(F, X1,X2) ;
Trong đó : X1,X2 là các biến cùng kiểu với các thành phần của tệp
Ghi dữ liệu vào tệp :
Trang 4 Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp
Tin Học 11 Trang 4
+ Danh sách kết quả : gồm một
hoặc nhiều phần tử Phần tử có
thể là biến đơn hoặc biểu thức
hoặc hằng xâu Và các phần tử
cách nhau bằng dấu phẩy
Write/Writeln(< tên biến tệp >, Danh sách kết quả )
Vd : Write(F, 5,x+y,3)
- Ghi lần lượt 3 phần tử : 5, x + y, 3 vào biến tệp F
Một số hàm chuẩn thường dùng để đọc/ghi tệp văn bản :
- Hàm EOF(< biến tệp >) : trả về 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
d) Đóng tệp : Close(< biến tệp >) ;
Vd : Close(F) ;
+ Các em có thể xem sách giáo khoa trang 86, hình 16 thao tác với tệp
4 Củng cố :(4’)
- Nhắc lại khái quát lại vai trò của kiểu tệp và phân loại tệp
- Cho HS xem SGK trang 86 hình 16 thao tác với tệp để HS nắm rõ hơn về việc đọc và
ghi dữ liệu từ tệp
5 Dặn dò :(1’)
- Học bài và chuẩn trước Bài 16 Ví Dụ Làm Việc Với Tệp trong SGK trang 87
Hoà Lợi, ngày……Tháng ……Năm 20
Trang 5
Bài 16 Ví Dụ Làm Việc Với Tệp
Tin Học 11 Trang 5
Tuần : 21 Ngày soạn : 29/12/08 Tiết : 38 Ngày dạy : / /
§16 VÍ DỤ LÀM VIỆC VỚI TỆP I/- Mục đích – yêu cầu :
Về kiến thức :
+ Hiểu và 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ư : Mở tệp, gán tên tệp cho biến tệp, đọc/ghi dữ liệu đối với tệp, đóng tệp
Về kỹ năng :
+ Sử dụng một số hàm và một số thủ tục chuẩn làm việc với tệp
Về thái độ :
+ Thấy 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ữ dl 1 cách khoa học, phòng chống mất mát hoặc nhiễm virus Giáo dục thêm về ý thức tôn trọng bản quyền
II/- Chuẩn bị :
GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy
+ Cần chuẩn bị khổ giấy lớn để ghi lại 2 ví dụ trong SGK
HS : + Đọc trước sách giáo khoa ở nhà
PP : + Diễn giảng ,phát vấn và gợi mở
III/- Hoạt động dạy học :
1 Ổn định lớp : Kiểm tra sĩ số (1’)
2 Kiểm tra bài cũ : (5’)
? Có mấy cách để phân loại tệp và thao tác vớitệp ?
? Hãy trình bày các thủ tục liên quan đến tệp ?
3 Nội dung bài mới :
TG Hoạt Động Của GV Hoạt Động Của HS Nội Dung Bài
Tiết
38 + Đặt vấn đề : Để làm nắm
được rõ hơn về cách thao tác
với tệp ta sang ví dụ một(làm
việc với tệp)
- Xem ví dụ 1 SGK trang 87
+ Chương trình sau sẽ đọ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( với độ chính xác
hai chữ số sau dấu chấm thập
phân) giữa trại của mỗi giáo
viên chủ nhiệm và trại của
thầy hiệu trưởng
Ví dụ 1 :
Program Khoang_cach ; Var d : real ;
F :Text ; 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) ;
Trang 6 Bài 16 Ví Dụ Làm Việc Với Tệp
Tin Học 11 Trang 6
+ Nhắc lại công thức tính
khoảng cách giữa 2 điểm khi
biết toạ độ của 2 điểm trên mặt
phẳng toạ độ
? Hãy cho biết từng dòng lệnh
của chương trình ?
+ Xem ví dụ 2 trong SGK trang
87
+ Ví dụ 2 cho ta biết về đọc dữ
liệu từ tệp văn bản thứ nhất và
ghi dữ liệu vào tệp Vb thứ hai
+ Xây dựng chương trình theo
tùng bước 1 :
- Khai báo
- Gán tên tệp cho biến tệp
- Đọc dữ liệu từ tệp
-Tính các điện trở tương
đương
- Ghi vào tệp
- Đóng tệp
+ Tối ưu hoá chương trình
- Chạy chương trình
Writeln(‘khoang cach:’, d:10:2) ;
End ;
Close(F) ;
End.
Ví dụ 2 : Tính điện trở
tương đương
Program Dientro ; Var a : array[1 5 ] of real ;
R1, R2, R3 : real ; F1, F2 : text ;
Begin
ASSIGN(F1,’RESIST.DAT’) ; Reset(F1) ;
ASSIGN(F2,’RESIST.EQU’) ; Rewrite(F2) ;
While not EOF(F1) do 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) + R1 ; a[4] := R2*R3 /(R2+R3) + R1 ; a[5] := R1 + R2 + R3 ;
For I := 1 to 5 do
Write(F2, a[i] :9:3,’’) ; Writeln(f2) ;
End ;
Close(F) ; Close(F2) ;
End.
4 Củng cố :(4’)
- Việc trao đổi dữ liệu với bộ nhớ ngoài được thực hiện thông qua kiểu dữ liệu tệp
- Để có thể làm việc với tệp cần khai báo biến tệp
- Các thao tác với tệp văn bản : Khai báo biến tệp, mở tệp và đóng tệp, đọc/ ghi
5 Dặn dò :(1’)
- Học bài và chuẩn trước phần Câu Hỏi Và Bài Tập trong SGK trang 89
Hoà Lợi, ngày……Tháng ……Năm 20
Trang 7
Bài Tập Chương V
Tin Học 11 Trang 7
Tuần : 22 Ngày soạn : 01/01/09 Tiết : 39 Ngày dạy : / /
BàØI TẬP
I/- Mục đích – yêu cầu :
Về kiến thức :
+ Củng cố lại kiến thức đã được học trong tiết 1 và 2 của chương V gồm : kiểu tệp, biến tệp, thao tác với tệp, gắn tên tệp, mở và đóng tệp, đọc/ghi dữ liệu
Về kỹ năng :
+ Luyện tập cho học sinh về kiểu tệp
+ Tiếp tục làm quen với các công việc phục vụ việc hiệu chỉnh và khai thác chương trình Về thái độ :
+ Thấy 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 1 cách khoa học, phòng chống mất mát hoặc nhiễm virus GD thêm về ý thức tôn trọng bản quyền
II/- Chuẩn bị :
GV : + Phải có giáo án , bài tập và sử dụng thiết bị liên quan đến bài tập
+ Chuẩn bị trước nhiều câu hỏi phát vấn cho học sinh để cho HS tham gia trả lời + Có thể chuyển các câu hỏi 1,2,3,4 về dạng trắc nghiệm
HS : + Đọc trước sách giáo khoa trước ở nhà trang 89
PP : + Làm việc theo nhóm(chia làm 6 nhóm)
+ Diễn giảng và phát vấn
III/- Hoạt động dạy học :
1 Ổn định lớp : Kiểm tra sĩ số (1’)
2 Kiểm tra bài cũ :(5’)
1 Hãy nhắc lại các thao tác với tệp( cũng như các thủ tục và hàm trong tệp) ?
3 Nội dung bài mới :
TG Hoạt Động Của GV Hoạt Động Của HS Nội Dung Bài
Tiết
39 + Các em hãy mở sách giáo
khoa trang 89 trong phần
câu hỏi và bài tập Ta sang
câu 1
? Em hãy nêu một số trường
hợp cần phải dùng tệp ? + Lượng thông tin lớn, dùng lâu dài, 1/- Nêu một số trường hợp cần phải dùng tệp ?
- Lượng thông tin lớn, dùng lâu dài,
2/- Trong sơ đồ thao tác với tệp, khi cần nhập dữ liệu từ tệp phải dùng những thao tác nào ?
Trang 8 Bài Tập Chương V
Tin Học 11 Trang 8
? Trong sơ đồ thao tác với
tệp, khi cần nhập dữ liệu từ
tệp phải dùng những thao
tác nào ?
? Em hãy cho biết tại sao
cần phải có câu lệnh mở tệp
trước khi đọc/ghi tệp?
?Em hãy cho biết tại sao
phải dùng câu lệnh đóng tệp
sau khi đã kết thúc ghi dữ
liệu vào tệp?
+ Trước khi dữ liệu được
thực sự ghi vào tệp, nó được
lưu trữ trên bộ nhớ đệm
Mỗi khi bộ nhớ đệm đầy
hoặc khi có yêu cầu đóng
tệp thì dữ liệu trên bộ nhớ
đệm( có thể chưa đầy) mới
được chuyển và ghi vào tệp
ASSIGN(F, Fi) ; Rewrite(F) ; Write(F, x, ‘ ‘ , y,
‘ ‘ , z) ; Close(F) ;
+ Trước khi sử dụng tệp phải có câu lệnh mở tệp để trình biên dịch biết mục đích mở tệp để đọc hay ghi, đồng thời đặt con trỏ vào vị trí thích hợp
+ Phải dùng câu lệnh đóng tệp sau khi đã kết thúc ghi dữ liệu vào tệp để hệ thống hoàn tất việc ghi dữ liệu ra tệp
Trong sơ đồ thao tác với tệp, khi cần nhập dữ liệu từ tệp phải dùng những thao tác như gắn tên tệp, mở tệp để ghi, ghi dữ liệu vào tệp, đóng tệp để hoàn tất việc ghi dữ liệu
ASSIGN(F, Fi) ; Rewrite(F) ; Write(F, x, ‘ ‘ , y, ‘ ‘ , z) ; Close(F) ;
3/- Tại sao cần phải có câu lệnh mở tệp trước khi đọc/ghi tệp?
Trước khi sử dụng tệp phải có câu lệnh mở tệp để trình biên dịch biết mục đích mở tệp để đọc hay ghi, đồng thời đặt con trỏ vào vị trí thích hợp
4/- Tại sao phải dùng câu lệnh đóng tệp sau khi đã kết thúc ghi dữ liệu vào tệp?
Phải dùng câu lệnh đóng tệp sau khi đã kết thúc ghi dữ liệu vào tệp để hệ thống hoàn tất việc ghi dữ liệu ra tệp
4 Củng cố :(4’)
- Yêu cầu HS viết được một chương trình đơn giản có sử dụng thao tác đọc/ghi tệp
5 Dặn dò :(1’)
- Học bài và làm thêm các bài tập trong sách bài tập
- Chuẩn bị tiếp Bài 17 Chương Trình Con Và Phân Loại trong SGK trang 91
Hoà Lợi,ngày……Tháng ……Năm 20
Trang 9 Bài 17 Chương Trình Con Và Phân Loại
Tin Học 11 Trang 9
Tuần : 23,24 Ngày soạn : 03/01/09 Tiết : 40,41 Ngày dạy : / /
Lập Trình Có Cấu Trúc 13(6,6,1)
§17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI
I/- Mục đích – yêu cầu :
Về kiến thức :
+ Nắm được khái niệm chương trình con
+ Sự khác biệt cơ bản giữa hàm và thủ tục
+ Phân iệt điểm giống và khác nhau về cấu trúc của chương trình và chương trình con
+ Biết được mối quan hệ giữa tham số hình thức và tham số thực sự
+ Biến cục bộ : Cách khai báo và phạm vi sử dụng
Về kỹ năng :
+ Biết cách khai báo 2 loại chương trình con cùng với các tham số hình thức của chúng
+ Biết cách gọi chương trình con thực hiện với ngững tham số thực sự trong chương trình chính
Về thái độ :
+ Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu vì công việc chung
II/- Chuẩn bị :
GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy
HS : + Đọc trước sách giáo khoa ở nhà
PP : + Diễn giảng ,phát vấn và gợi mở
III/- Hoạt động dạy học :
1 Ổn định lớp : Kiểm tra sĩ số (1’)
2 Kiểm tra bài cũ : (5’)
3 Nội dung bài mới :
TG Hoạt Động Của GV Hoạt Động Của HS Nội Dung Bài
Tiết
40 + Đặt vấn đề : Các chương
trình giải các bài toán thường
rất dài và phức tạp, có thể gồm
hàng trăm, hàng ngàn lệnh
Khi đọc những chương trình dài
rất khó nhận biết được chương
trình thực hiện những công việc
gì và muốn hiệu chỉnh lại
Trang 10 Bài 17 Chương Trình Con Và Phân Loại
Tin Học 11 Trang 10
chương trình cũng rất khó khăn
Vì vậy vấn đề đặt ra là phải có
cấu trúc chương trình như thế
nào cho hợp lý Đó chính là
chương trình con
+ Mặc khác, để giải quyết 1
bài toán lớn phức tạp người ta
có thể chia ra thành nhiều bài
toán con và cho nhiều người
có thể tham gia
+ Với những bào toán phức tạp
hơn, mỗi bài toán con lại có thể
được phân chia thành các bài
toán con nhỏ hơn Quá trình
phân chia như vậy ta gọi là
cách thiết kế từ trên xuống
Tương tự, khi lập trình trên
máy tính có thể phân chia
chương trình chính thành các
khối môđun ctrình con Mỗi
khối lệnh bao gồm con nào đó
Vậy khái niệm chương trình
con là gì?
? Hãy xem ví dụ và cho biết
trong chương trình trên có
những khối lệnh nào được viết
tương tự nhau ?
+ Ta có thể đặt tên cho chương
trình con là Luythua và mỗi
khi cần ta chỉ cần gọi tên
chương trình con là đủ Ví dụ :
để tính an , bm , cp , dq ta gọi
Luythua(a,n), Luythua(b,m),
Luythua(c,p), Luythua(d,q),
- Ví dụ tính Luythua ở phần
trên
+ Trong chương trình trên có 4 đoạn lệnh tương tự nhau
1/-Khái niệm chương trình con:
Xét bài toán tính tổng bốn luỹ thừa Tluythua = an + bm + cp + dq
Bài toán trên được chia thành 4 bài toán con : Tính an , bm , cp , dq , có thể giao cho bốn người, mỗi người thực hiện 1 bài Giá trị Tluythua là tổng kết quả của bốn bài toán con đó
a) Khái niệm : Chương trình con
là 1 dãy lệnh mô tả 1 số thao tác nhất định và có thể được thực hiện từ nhiều
vị trí trong chương trình
Ví dụ : Xem sách giáo khoa
trang 92
b) Lợi ích của việc sử dụng chương trình con :
- Tránh được việc phải viết đi viết lại cùng một dãy lệnh nào đó