5

Click here to load reader

Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vtq ngoc

Embed Size (px)

Citation preview

Page 1: Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vtq ngoc

1

TRƢỜNG: PTTH LƢƠNG VĂN CAN NĂM HỌC: 2013 - 2014

LỚP: Tuần:

GVHD: Bùi Mộng Thúy Uyên Ngày:

GSTT : Vũ Thị Quỳnh Ngọc

Tên bài học: TỆP VÀ THAO TÁC VỚI TỆP

I- Mục tiê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 cậ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, đọc/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:

Khai báo đúng tệp văn bản.

Sử dụng được một số hàm và thủ tục chuẩn để làm việc với tệp.

3- Thái độ: HS thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp

II- Chuẩn bị của giáo viên và học sinh: GV: Phòng học trên lớp với phấn bảng, khăn lau. Giáo án. HS: SGK

III- Phƣơng pháp dạy học: Thuyết trình, vấn đáp.

IV- Tiến trình bài dạy:

Hoạt động 1 (10'): Ổn định lớp, kiểm tra bài cũ về mảng và xâu

TG Hoạt động của gv Hoạt động của hs Nội dung

- Gọi 2 học sinh lên bảng làm bài tập,

sau đó giáo viên chữa bài.

- xau = 'coni'

- s = 1 + 7 + 3 = 11

- 2 HS lên bảng làm

bài tập, các học

sinh khác chú ý

theo dõi.

Bài 01. Cho đoạn chương trình sau:

s := 'Tin Hoc 11';

xau := '';

for i := length(s) downto 1 do

if(s[i] >= 'a') and (s[i] <= 'z')then

xau := xau + s[i];

- Sau khi xử lý đoạn chương trình trên,

giá trị của biến xau = ?

Bài 02. Cho đoạn chương trình sau:

s := 0;

for i :=1 to 5 do

if (a[i] mod 2 <> 0) then

s := s + a[i];

Cho mảng a gồm 5 phần tử: a[1] = 2,

a[2] = 1, a[3] = 8, a[4] = 7, a[5] = 3

- Sau khi xử lý đoạn chương trình trên,

giá trị của biến s = ?

Page 2: Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vtq ngoc

2

Hoạt động 2:(5'). §14. Kiểu dữ liệu tệp

- Đặt vấn đề

+ Ở chương IV, chúng ta đã tìm hiểu về kiểu dữ liệu có cấu trúc: Kiểu mảng, kiểu xâu. Dữ liệu thuộc các

kiểu dữ liệu đã xét đều được lưu trữ ở bộ nhớ trong (RAM) và do đó dữ liệu sẽ bị mất khi tắt máy hoặc

chạy lại chương trình.

+ Với một số bài toán, dữ liệu cần được lưu trữ để xử lý nhiều lần với số lượng dữ liệu lớn, hoặc ta cần lấy

kết quả tính toán của bài toán đó để sử dụng sau này, vì vậy cần có kiểu dữ liệu tệp.

TG Hoạt động của gv Hoạt động của

hs

Nội dung

* Thuyết trình bài giảng

1. Vai trò của kiểu tệp

2. Phân loại tệp: 2 cách

- Theo cách tổ chức dữ liệu:

+ Tệp văn bản: là tệp mà dữ liệu được ghi

dưới dạng các kí tự theo mã ASCII. Trong

tệp văn bản, cuối mỗi dòng có kí tự kết thúc

dòng, cuối tệp có kí tự kết thúc tệp.

+ Tệp có cấu trúc: là tệp mà dữ liệu được tổ

chức theo một cấu trúc nhất định (ví dụ như

tổ chức theo các phần tử cùng kiểu - dữ liệu

ảnh, âm thanh, ...)

- Theo cách thức truy cập:

+ Tệp truy cập tuần tự: Để đến được vị trí

cần truy cập, con trỏ tệp phải di chuyển trên

các dòng tuần tự: từ đầu dòng về cuối dòng

và từ dòng đầu đến dòng cuối của tệp.

+ Tệp truy cập trực tiếp: đến được ngay vị trí

cần truy cập. 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ử.

* Lắng nghe,

ghi bài

§14. Kiểu dữ liệu tệp

1. Vai trò của kiểu tệp

- Lưu trữ dữ liệu lâu dài ở bộ nhớ

ngoài ((đĩa từ, CD, . . .), dữ liệu

không bị mất khi tắt nguồn điện.)

- Lưu trữ lượng dữ liệu lớn (phụ

thuộc vào dung lượng đĩa).

2. Phân loại tệp: 2 cách

- Xét theo cách tổ chức dữ liệu:

+ Tệp văn bản.

+ Tệp có cấu trúc.

- Xét theo cách thức truy cập:

+ Tệp truy cập tuần tự.

+ Tệp truy cập trực tiếp.

Page 3: Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vtq ngoc

3

Hoạt động 3:(25') §15. Thao tác với tệp

TG Hoạt động của gv Hoạt động

của hs

Nội dung

5'

5'

5'

* Thuyết trình bài giảng

1. Khai báo biến tệp văn bản:

- Để thực hiện các thao tác với tệp trong chương

trình, ta phải thông qua biến tệp.

2. Thao tác với tệp:

- Các thao tác với tệp chia thành bốn nhóm.

a. Gắn tên tệp cho biến tệp:

- Lệnh assign tạo một tham chiếu giữa tệp trên

đĩa và biến tệp trong chương trình. Sau lệnh này,

tất cả các phép toán trên biến tệp sẽ tác động tới

tệp có tên là tên tệp.

- Biến tệp cần tuân thủ theo đúng quy tắc đặt tên

biến.

- Tên tệp:

+ Là biến xâu hoặc hằng xâu.

+ Có độ dài lớn nhất là 79 kí tự.

+ Có thể là đường dẫn chứa ổ đĩa:

<ổ đĩa>:\<tên thư mục>\ ... \<tên thư mục>\<tên

tệp>

+ Khi tên tệp là xâu rỗng thì biến tệp được gán

cho các tệp vào ra chuẩn là bàn phím và màn

hình.

- Lưu ý: <tên tệp> khác <biến tệp>

- Ví dụ 1: nếu ta cần thao tác với tệp

DULIEU.DAT, ta cần sử dụng lệnh để gắn tệp

này với biến tep1

- Ví dụ 2: nếu ta cần thao tác với tệp INP.DAT

trên thư mục gốc của ổ đĩa C:, ta cần dùng lệnh

gắn nó với biến tep2

:

- Tệp có thể dùng để chứa dl vào hoặc kết quả ra.

- Khi mở tệp để đọc dl, lệnh reset sẽ gặp lỗi nếu

tệp không tồn tại. Sau lời gọi reset, con trỏ tệp sẽ

nằm ở đầu tệp.

- Khi mở tệp để ghi dl, lệnh rewrite sẽ tạo ra một

tệp mới với nội dung rỗng và có tên tệp đã gắn

với biến tệp. Nếu đã có một tệp cùng tên (cùng

thư mục) thì tệp này bị xóa và một tệp rỗng được

tạo ra thay thế nó.

* Lắng

nghe, ghi

bài

§15. Thao tác với tệp

1. Khai báo biến tệp văn bản:

var <biến tệp>: text;

Ví dụ: var tep1, tep2: text;

2. Thao tác với tệp:

- Gắn tên tệp.

- Mở tệp.

- Vào/Ra dữ liệu.

- Đóng tệp.

a. Gắn tên tệp cho biến tệp:

assign(<biến tệp>,<tên tệp>);

Ví dụ 1: myfile := 'DULIEU.DAT';

assign(tep1, myfile); hoặc

assign(tep1, 'DULIEU.DAT');

Ví dụ 2:

myfile := 'C:\INP.DAT';

assign(tep2, myfile);

b. :

- Đ : reset(< >);

- Đ : rewrite(< >);

Page 4: Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vtq ngoc

4

TG Hoạt động của gv Hoạt động

của hs

Nội dung

5'

5'

- Chú ý: Trước khi mở tệp để đọc hoặc ghi, cần

gắn tên tệp cho biến tệp bằng lệnh assign.

- Ví dụ 1: mở tệp để đọc dữ liệu từ tệp DL.INP

- Ví dụ 2: Mở tệp KQ.DAT trên thư mục gốc ở ổ

C: để ghi kết quả

:

- Việc đọc tệp văn bản được thực hiện giống như

việc nhập từ bàn phím.

- Việc ghi dữ liệu ra tệp văn bản giống như ghi ra

màn hình.

- Dữ liệu trong tệp văn bản được chia thành các

dòng.

- Đọc dữ liệu từ tệp:

+ Danh sách biến là một hay nhiều biến đơn. Các

biến phân cách nhau bởi dấu phẩy:

tên biến 1, tên biến 2, ..., tên biến N.

+ Khi đọc dữ liệu từ tệp để gán vào danh sách

biến, dữ liệu phải có kiểu tương ứng với kiểu của

biến trong danh sách biến. Nếu sai kiểu thì

chương trình mắc lỗi. Lỗi này thường gặp khi

biến có kiểu số, dữ liệu đọc được lại là kiểu xâu.

- Ghi dữ liệu vào tệp:

+ Danh sách kết quả có thể là biến đơn, biểu thức

(số học, quan hệ hoặc logic) hoặc hằng xâu -

được phân cách nhau bởi dấu phẩy:

kết quả 1, kết quả 2, ..., kết quả N + Khi hai kết quả liền nhau cùng là số thì cần xen

vào giữa hai kết quả số này một dấu cách. Ví dụ:

write(f, x,' ',y);

d. Đóng tệp:

- Sau lệnh close, tệp gắn với biến tệp được hoàn

thành cập nhật và sau đó được đóng lại, chương

trình trả lại quyền quản lý tệp cho hệ điều hành.

- Nếu thực hiện ghi dữ liệu vào tệp mà không

đóng tệp thì không có dữ liệu nào được ghi hoặc

chỉ ghi được một phần vào tệp, nguyên nhân do

Ví dụ 1: assign(tep1, 'DL.INP');

reset(tep1);

Ví dụ 2: tentep := 'C:\KQ.DAT';

assign(tep3,tentep);

rewrite(tep3);

c văn bản:

- Đọc dữ liệu từ tệp văn bản:

read(<biến tệp>,<danh sách

biến>); hoặc

readln(<biến tệp>,<danh sách

biến>);

- Ghi dữ liệu vào tệp văn bản:

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ụ 1: Đọc dữ liệu từ tệp A:

read (tepA, x, y, z); hoặc

readln (tepA, x, y, z);

Ví dụ 2: Ghi dữ liệu vào tệp B:

write (tepB, 'x = ', x, 'y= ', y);

writeln (tepB, 'x = ', x, 'y= ', y);

d. Đóng tệp:

close (<biến tệp>);

Ví dụ: close (tep1); close (tep3);

Page 5: Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vtq ngoc

5

TG Hoạt động của gv Hoạt động

của hs

Nội dung

các dữ liệu chứa trong bộ nhớ đệm chưa chuyển

kịp vào đĩa thì chương trình đã bị ngắt.

- Một số hàm và thủ tục chuẩn thường dùng khi

thao tác với tệp:

+ Hàm eoln trả về true nếu con trỏ tệp đang chỉ

tới cuối dòng.

+ Hàm eof (<biến tệp>); trả về true nếu con trỏ

tệp đang chỉ tới cuối tệp.

- Một số hàm thường dùng khi thao

tác với tệp:

+ eoln (<biến tệp>);

+ eof (<biến tệp>);

V- Củng cố và dặn dò (5’):

- Nhắc lại vai trò của kiểu tệp là dùng để lưu trữ dữ liệu lâu dài, và lưu trữ lượng dữ liệu lớn.

- Nhắc lại các thao tác cơ bản khi làm việc với tệp: Khai báo biến tệp, Gắn tên tệp cho biến tệp, Mở tệp để đọc

hoặc ghi, Đọc dữ liệu từ tệp. Ghi dữ liệu ra tệp, Đóng tệp.

- Vẽ sơ đồ làm việc với tệp lên bảng

- Dặn dò: Về nhà ôn tập lại các bài đã học

Ngày…..... tháng….... năm 2014

Ngƣời soạn Duyệt của giáo viên hƣớng dẫn

Vũ Thị Quỳnh Ngọc Bùi Mộng Thúy Uyên

assign(<biến tệp>,<tên tệp>);

reset(<biến tệp>); rewrite(<biến tệp>);

read(<biến tệp>,<danh sách biến>);

close(<biến tệp>);

Đọc Ghi

Hình 16. Sơ đồ làm việc với tệp

write(<biến tệp>,<danh sách kết quả>);