Bài thuyết trình Toán Lớp 11 - Bài 15: Thao tác với tệp

Bài thuyết trình Toán Lớp 11 - Bài 15: Thao tác với tệp

SLIDE 1: Mở đầu

SLIDE 2: Video giáo viên

Chào mừng các em đến với bài giảng e-learning bài 15: Thao tác với tệp, môn Tin học lớp 11 do giáo viên Nguyễn Khánh Tâm, trường THPT Bình Xuyên – Huyện Bình Xuyên – Tỉnh Vĩnh Phúc thực hiện.

SLIDE 3: Nội dung bài học

Bài 15: Thao tác với tệp gồm 3 nội dung chính:

Nội dung Thứ nhất 1. Khai báo tệp văn bản

Nội dung Thứ 2: Thao tác với tệp văn bản

Các thao tác gồm:

a. Gắn tên tệp

b. Mở tệp

c. Đọc/ghi tệp văn bản

d. Đóng tệp

Nội dung thứ 3: ví dụ áp dụng. Ở nội dung thứ 3 này có video hướng dẫn thực hành trên Free pascal Để Từ đó các em có thể cài đặt được chương trình pascal có sử dụng kiểu dữ liệu tệp văn bản.

 

docx 13 trang Ngát Lê 25/10/2024 70
Bạn đang xem tài liệu "Bài thuyết trình Toán Lớp 11 - Bài 15: Thao tác với tệp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Công nghệ vũ trụ việt nam
sách điện tử
THUYẾT MINH BÀI 15: THAO TÁC VỚI TỆP
SLIDE 1: Mở đầu

SLIDE 2: Video giáo viên
Chào mừng các em đến với bài giảng e-learning bài 15: Thao tác với tệp, môn Tin học lớp 11 do giáo viên Nguyễn Khánh Tâm, trường THPT Bình Xuyên – Huyện Bình Xuyên – Tỉnh Vĩnh Phúc thực hiện.
SLIDE 3: Nội dung bài học
Bài 15: Thao tác với tệp gồm 3 nội dung chính:
Nội dung Thứ nhất 1. Khai báo tệp văn bản
Nội dung Thứ 2: Thao tác với tệp văn bản
Các thao tác gồm:
Gắn tên tệp
Mở tệp
Đọc/ghi tệp văn bản
Đóng tệp
Nội dung thứ 3: ví dụ áp dụng. Ở nội dung thứ 3 này có video hướng dẫn thực hành trên Free pascal Để Từ đó các em có thể cài đặt được chương trình pascal có sử dụng kiểu dữ liệu tệp văn bản.
SLIDE 4: Mục tiêu bài học
Mục tiêu bài học:
1. Về kiến thức: Các em:
- Biết khai báo tệp văn bản.
- Biết các bước làm việc với tệp văn bản: gắn tên tệp cho biến tệp, mở tệp để đọc/ghi, đọc/ghi tệp, đóng tệp.
- Biết một số hàm và thủ tục chuẩn làm việc với tệp văn bản.
- Biết một số lỗi khi làm việc với tệp văn bản.
2. Về kỹ năng: Các em:
- Khai báo đúng tệp văn bản.
- Nhận biết được các bước làm việc với tệp văn bản: gắn tên tệp cho biến tệp, mở tệp để đọc/ghi, đọc/ghi tệp, đóng tệp.
- Nhận biết được một số hàm và thủ tục chuẩn làm việc với tệp văn bản.
- Nhận biết được một số lỗi thường gặp khi làm việc với tệp văn bản.
- Cài đặt được chương trình Pascal đơn giản có sử dụng kiểu dữ liệu tệp văn bản
- Sử dụng cửa sổ Debug và chạy từng bước F7 để kiểm tra kết quả của biến tại mỗi bước của chương trình.
3. Về thái độ: Qua bài học này, các em thêm
- Ham học hỏi, chủ động tích cực trong học tập.
- Yêu thích lập trình.
4. Về năng lực hình thành: Bài học sẽ giúp các em phát triển được:
- Năng lực tự học
- Năng lực sáng tạo.
Sau đây, cô cùng các em tìm hiểu lần lượt các nội dung của bài 15; Thao tác với tệp. Tuy nhiên Trước khi đi vào tìm hiểu nội dung bài học này, các em hãy ôn tập lại một số kiến thuc đã học 
SLIDE 5: Ôn tập một số kiến thức về tệp
SLIDE 6: Ôn tập một số kiến thức về tệp
SLIDE 7: Đặt vấn đề
Các em vừa ôn tập lại một số kiến thức đã học về kiểu dữ liệu tệp. Kiểu dữ liệu tệp có vai trò to lớn đối với con người trong việc UD KHKT và trong cuộc sống. Việc trao đổi dữ liệu có thể trực tiếp giữa máy tính với bộ nhớ ngoài hoặc trên intenet cùng với công nghệ điện toán đám mây. Tuy nhiên, ở bài học hôm nay, các em chỉ tìm hiểu thao tác với tệp văn bản chứa trong bộ nhớ ngoài trong ngôn ngữ Pascal. 
Trên màn hình là chương trình Pascal giải phương trình bậc 2 với a,b,c nhập từ bàn phím và kết quả hiển thị lên màn hình.
Vấn đề đặt ra làm với yêu cầu a,b,c lấy từ tệp PTB2.Inp và kết quả ghi ra tệp PTB2.OUT thì chương trình đọc dữ liệu từ têp PTB2.INP và ghi kết quả ra tệp PTb2.OUT như thế nào? Hay nói cách khác Ngôn ngữ pascal làm việc với tệp văn bản như thế nào?
Mời các em theo dõi chi tiết bài giảng để trả lời cho câu hỏi trên.
SLIDE 8: Bảng KWLH
 Trước khi tìm hiểu nội dung chi tiết bài học để trả lời cho câu hỏi Ngôn ngữ pascal làm việc với tệp văn bản như thế nào, các em quan sát bảng KWLH sau đây:
KWLH là một kỹ thuật dạy học tích cực giúp các em lập kế hoạch học tập từ chủ đề của bài giảng theo mẫu:
Cột K: Những điều đã biết về chủ đề bài giảng
Cột W: Những điều muốn biết thêm trong chủ đề bài giảng
Cột L: Những điều đã học được từ chủ đề bài giảng
Cột H: Những kiến thức từ bài giảng vận dụng vào thực tiễn
Với Chủ đề: Thao tác với tệp, bảng KWLH có dạng:
Cột K: Những kiến thức đã biết về tệp gồm:
Khái niệm tệp (bài 11 chương trình tin học lớp 10 )
Vai trò của kiểu tệp: bài 14, chương trình tin học 11
Phân loại tệp và thao tác với tệp: bài 14, chương trình tin học 11
Cột W: Những điều muốn biết thêm trong chủ đề chính là câu hỏi Ngôn ngữ pascal làm việc với tệp văn bản như thế nào
Sau khi tìm hiểu xong bài 15, Những điều đã học được từ chủ đề bài giang các em sẽ điền vào cột L, và những điều rút ra từ chủ đề bài giảng để vận dụng vào thực tiễn các em sẽ điền vào cột H.
Như vậy Bảng KWLH bên cạnh việc giúp các em lập kế hoạch học tập về chủ đề bài giảng còn giúp các em hệ thống hóa, khái quát hóa các kiến thức liên quan đến chủ đề bài giảng. 
Sau đây, cô cùng các em tìm hiểu nội dung chi tiết bài 15: Thao tác với tệp.



SLIDE 9: Khai báo biến tệp văn bản
Mọi biến trong chương trình đều phải được đạt tên và khai báo để chương trình biết để lưu trữ và xử lí. Cách khai báo biến tệp văn bản như sau:
1. Khai báo
Cú pháp:
Var : text;
Trong đó:
+) Var: từ khóa
+) Tên biến tệp đặt theo qui tắc đặt tên của Pascal
+ Text: tên chuẩn, chỉ kiểu dữ liệu tệp
Ở đây các em chú ý: cần phân biệt qui tắc đặt tên của Pascal và quy tắc đặt tên tệp của HĐH.
Ví dụ về khai báo biến tệp:
Ví dụ 1: Var tep1, tep2: text ;
Ví dụ 2: Var f1,f2: text
Var: từ khóa
Tep1,tep2, f1, f2: biến tệp
Khai báo trên xác định các biến tệp văn bản tep1, tep2, f1, f2
Quan sát ví dụ sau, các em có thể rút ra một số lỗi khi khai báo biến tệp:
Thứ nhất: Viết sai từ khóa Var
Thứ 2: Viết sai tên chuẩn text
Thứ 3: Thiếu dấu ; sau câu lệnh
Thứ 4: Tên biến tệp không đúng qui tắc đặt tên của Pascal (hoặc chứa dấu cách, hoặc bắt đầu bằng số, hoặc chứa kí tự đặc biệt)
Sau khi khai báo biến tệp, chúng ta bắt đầu làm việc với tệp


SLIDE 10: Thao tác với tệp
2. Thao tác với tệp
Như phần Ôn lại một số kiến thức về tệp các em đã biết, mỗi tệp đều có một tên để truy cập (tham chiếu). 
Ví dụ: tệp ‘DULIEU.DAT’ lưu trong ổ đĩa C của máy tính:
Hoặc tệp PTB2.INP lưu trong thư mục cùng thư mục chứa chương trình giải phương trình bậc 2 PTB2.PAS
Tuy nhiên, Trong lập trình chúng ta không thể thao tác trực tiếp với tệp dữ liệu trên đĩa mà phải thông qua biến tệp. Có thể hình dung biến tệp được ngôn ngữ lập trình sử dụng như đại diện cho tệp.
Quan sát hình để các em hiểu sâu hơn về mối quan hệ giữa tệp, biến tệp và tên tệp.
Do vậy, để thao tác với tệp, trước hết ta phải gắn tên tệp với đại diện của nó là biến tệp.
SLIDE 11: Gắn tên tệp
a) Gắn tên tệp.
Thủ tục gắn tên tệp có cú pháp:
Assign( , );
Trong đó:
+) Assign: tên chuẩn
+) tên tệp là biến xâu hoặc hằng xâu và theo qui tắc đặt tên tệp của hệ điều hành (một lần nữa các em cần phân biệt qui tắc đặt tên của Pascal với qui tắc đặt tên tệp của HĐH).
Sau lệnh này, các thao tác với biến tệp thực chất là thao tác với tệp.
Các em cùng quan sát 3 ví dụ sau:
Ví dụ 1: Giả sử có biến tentep1 và biến tệp tep1 cần gắn với tệp có tên DU LIEU.DAT ở ổ đĩa C. Và biến tentep2 và biến tệp tep2 cần gắn với tệp có tên KETQUA.DAT ở ổ đĩa C.
Để làm được điều này ta thực hiện thủ tục sau:
Tentep1:=’C:\DULIEU.DAT’;
assign(tep1,tentep1);
Tentep2:=’C:\KETQUA.DAT’;
assign(tep2,tentep2);
Ví dụ 2: Giả sử biến tệp f1 cần gắn với tệp có tên PTB2.INP, f2 cần gắn với tệp có tên PTB2.OUT ở cùng thư mục với thư mục của chương trình PTB2.PAS, ta thực hiện thủ tục: 
assign(f1, ‘PTB2.INP’) ;	
assign(f2, ‘PTB2.OUT’) ;	
Một số lỗi gắn tên tệp
* Tương tự như khai báo biến tệp, các em có thể rút ra một số lỗi khi gắn tên tệp:
Thứ nhất: Viết sai tên chuẩn assign
Thứ 2: Biến tệp chưa khai báo
Thứ 3: Thiếu dấu ; sau câu lệnh
Thứ 4: Dấu nháy đơn là dấu nháy kép. Pascal dùng dấu nháy đơn để chỉ hằng xâu do vậy các em không được dùng dấu nháy kép để chỉ tên tệp.
Sau khi gắn tên tệp cho biến tệp, ta có thể mở tệp để đọc hoặc ghi dữ liệu.


SLIDE 12: Mở tệp
b) Mở tệp 
Mở tệp có 2 trường hợp: Mở tệp để đọc dữ liệu và mở tệp để ghi dữ liệu
SLIDE 13: Mở tệp để đọc dữ liệu
* Mở tệp để đọc dữ liệu:
Cú pháp:
reset( );
Ví dụ 1: Để đọc dữ liệu từ tệp C:\DULIEU.DAT , ta có thể mở tệp bằng thủ tục:
assign(tep1,’C:\DULLIEU.DAT’);
reset(tep1);
Ví dụ 2 Để đọc dữ liệu từ tệp PTB2.INP , ta có thể mở tệp bằng thủ tục:
assign(f1,’PTB2.INP’);
reset(f1);
* Lưu ý: Khi mới mở tệp để đọc dữ liệu, con trỏ tệp ở vị trí đầu tệp.
- Một số lỗi khi mở tệp để đọc dữ liệu
Tương tự như vậy, chúng ta có thủ tục mở tệp để ghi dữ liệu như sau:

SLIDE 14: Mở tệp để ghi dữ liệu
* Mở tệp để ghi dữ liệu
Thủ tục mở tệp để ghi dữ liệu có dạng:
rewrite( );
Ví dụ 1: assign(tep2,’C:\KETQUA.DAT’);
rewrite(tep2);
Ví dụ 2: assign(f2,’PTB2.OUT’);
rewrite(f2);
Các em cần lưu ý: Sau lệnh rewrite(tep2): Nếu ổ đĩa C chưa có tệp KETQUA.DAT thì tệp sẽ được tạo ra với nội dung trống. Nếu đã có thì nội dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới.
Tương tự như vậy với tệp PTB2.OUT
Có thể lưu ý Một số lỗi khi mở tệp để ghi dữ liệu
Sau khi mở tệp để đọc hoặc ghi dữ liệu thành công, ta có thể tiến hành đọc dữ liệu từ tệp hoặc ghi dữ liệu ra tệp:


SLIDE 15: Đoc/ghi dữ liệu tệp văn bản
c/ Đọc/ghi tệp văn bản
Việc đoc/ghi dữ liệu tệp văn bản được thực hiện với từng phần tử của tệp một cách tuần tự.
SLIDE 16: Đọc dữ liệu từ tệp văn bản
Do dữ liệu trong tệp văn bản được chia thành các dòng nên câu lệnh dùng thủ tục đọc có dạng:
read( , );
hoặc readln( , );
hoặc readln( );
Trong đó: là một hoặc nhiều tên biến thuộc kiểu kí tự, kiểu nguyên, kiểu thực, kiểu xâu (không có kiểu logic). Nếu có nhiều tên biến thì cách nhau bởi dấu phẩy.
Lưu ý: 
+) Các biến trong không nhất thiết phải cùng kiểu.
+ Lệnh readln sẽ đưa con trỏ tệp sang đầu dòng tiếp theo sau khi đã lần lượt đọc các biến tương ứng.
+) Lệnh readln( ) sẽ đưa con trỏ tệp nhảy sang dòng tiếp theo mà không đọc gì cả.
Ta nhận thấy, lệnh đọc dữ liệu từ tệp khác với lệnh đọc dữ liệu từ bàn phím ở chỗ có thêm một tham số nữa là biến tệp.
SLIDE 17: Một số hàm chuẩn trong khi đọc tệp văn bản
* Một số hàm chuẩn thường dùng:
+) Hàm eof( ) trả về giá trị TRUE nếu con trỏ tệp đang chỉ tới cuối tệp.
+) Hàm eoln( ) trả về giá trị TRUE nếu con trỏ tệp đang chỉ tới cuối dòng.
Chú ý cấu trúc đọc tất cả các phần tử của tệp:
While not EOF( ) do
Begin
 Read( , );
 .
End;
Trong đó EOF( ) là hàm kiểm tra xem con trỏ tệp đã đến cuối tệp chưa. 
Như vậy, trước khi đọc dữ liệu từ tệp cần kiểm tra vị trí của con trỏ tệp.
SLIDE 18: Ví dụ về đọc dữ liệu từ tệp văn bản
Ví dụ 1 về đọc dữ liệu từ tệp văn bản
Trong FREE PASCAl
Cho tệp DULIEU.DAT chứa dữ liệu như sau:
Để đọc dữ liệu vào 3 biến A, B, C:
Giả sử ta khai báo:
Var tep1: text;
 A: integer; 
 B: real; 
 C: string;
- Khi đó ta viết lệnh đọc dữ liệu:
Read(tep1,A,B,C);
Khi đó:
Biến A có giá trị 1234, Biến B có giá trị 1.550000000000000E+001 và Biến C có giá trị TRUE (cụ thể là xâu ‘TRUE’, không phải biến logic)
Các em tìm hiểu thêm ví dụ sau đây
SLIDE 19:
Ví dụ 2 
Trong FREE PASCAl
Cho tệp PTB2.INP chứa dữ liệu như sau:
Để đọc dữ liệu vào 3 biến a, b, c:
Giả sử ta khai báo:
Var f1: text;
 A,B,C: integer; 
- Khi đó ta viết lệnh đọc dữ liệu:
While not eof(f1) do
Readln(tep1,A,B,C);
Khi đó:
Lần 1: 
Biến A có giá trị 11, Biến B có giá trị 1 và Biến C có giá trị 1
Lần 2: 
Biến A có giá trị 1, Biến B có giá trị 5 và Biến C có giá trị 6
Các em vừa tìm hiểu xong câu lệnh đọc dữ liệu từ tệp văn bản và cấu trúc đọc lần luot tất cả các phần từ của tệp.
Vậy câu lệnh để ghi dữ liệu ra tệp văn bản như thế nào. Các em tìm hiểu ở phần tiếp theo.
SLIDE 20: Ghi dữ liệu ra tệp văn bản
* Ghi dữ liệu:
Cú pháp: write( , );
writeln( , );
writeln( );
Trong đó: gồm một hoặc nhiều phần tử là biến, hằng, biểu thức (số học, quan hệ hoặc logic) có kiểu đơn giản như kiểu nguyên, kiểu thực, kiểu kí tự, logic, kiểu xâu. Nếu có nhiều phần tử thì được phân cách bởi dấu phẩy.
Trong câu lệnh ghi dữ liệu ra tệp có Lưu ý:
+) Các phần tử trong không nhất thiết phải cùng kiểu.
+) Lệnh writeln( ); thực hiện đưa thêm dấu hiệu hết dòng vào tệp.
Ví dụ: 
Ở ví dụ trên ta thấy, có thể ghi hằng xâu, kết quả của biểu thức vào tệp
SLIDE 21: Một số lỗi khi đọc/ghi dữ liệu
 Một số lỗi khi đọc/ghi dữ liệu: 
Thứ nhất: Trong lệnh read có biến kiểu logic
Thứ 2: Trong lệnh read, kiểu của biến không cùng kiểu với phần tử tương ứng của tệp
Thứ 3: Trong lệnh read, Cách đọc dữ liệu không đúng với cấu trúc của tệp văn bản
Thứ 4: Trong lệnh write: biến, hằng, biểu thức không thuộc kiểu đơn giản như kiểu nguyên, kiểu thực, kiểu kí tự, logic, kiểu xâu
Lỗi thứ nhất, lỗi thứ 2 và thứ 4 dễ phát hiện vì khi biên dịch chương trình, Pascal đã thông báo để chúng ta có thể sửa lỗi (nếu có). Tuy nhiên, lỗi thứ 3 chương trình dịch của Pascal khó phát hiện được do vậy các em cần hết sức lưu ý khi đọc dữ liệu từ tệp. Để hiểu kỹ hơn về một số lỗi khi đọc/ghi dữ liệu, các em tìm hiểu qua các ví dụ sau đây.
SLIDE 22: Ví dụ 1 về lỗi đọc dữ liệu từ tệp văn bản
Ví dụ 1 về lỗi đọc dữ liệu từ tệp văn bản 
Cho tệp PTB2.INP chứa dữ liệu như sau
Để đọc dữ liệu vào 3 biến A, B, C:
* Giả sử ta khai báo
Var f1: text;
 A,b: integer; 
 C: boolean;
Nếu ta có lệnh:
Read(f1,A,B,C);
Khi biên dịch chương trình, Chương trình báo lỗi Không thể đọc hoặc ghi biến kiểu này (vì lệnh đọc dữ liệu có biến thứ 3 là biến C có kiểu boolean). Đây là lỗi thứ nhất Trong lệnh read có biến kiểu logic.
Ta xét thêm ví dụ 2 sau đây:
SLIDE 23: Ví dụ 2 về lỗi đọc dữ liệu từ tệp văn bản
Ví dụ 2 về lỗi đọc dữ liệu từ tệp văn bản 
Cho tệp PTB2.INP chứa dữ liệu như sau
Để đọc dữ liệu vào 3 biến A, B, C:
Var f1: text;
 A,b,c: integer;
Nếu ta có lệnh:
Read(f1,A,B,C);
Chương trình báo lỗi vì phần tử thứ 2 của tệp có kiểu real nhưng lệnh đọc dữ liệu thì biến thứ 2 là biến B có kiểu integer.
Như vậy: lỗi phát sinh Trong lệnh read, kiểu của biến không cùng kiểu với phần tử tương ứng của tệp, đây là lỗi thứ 2.
Các em quan sát thêm ví dụ 3 sau đây.
SLIDE 24: Ví dụ 3 về lỗi đọc dữ liệu từ tệp văn bản
Ví dụ 3 về lỗi đọc dữ liệu từ tệp văn bản 
Cho tệp PTB2.INP chứa dữ liệu như sau
Để đọc dữ liệu vào 3 biến A, B, C:
Giả sử ta khai báo:
Var f1: text;
 a, b,c: integer;
Nếu ta có lệnh:
Read(tep3,A,B,C);
Biến A có giá trị 1, biến B có giá trị 5 và biến C có giá trị 6
Nếu ta có các lệnh sau:
Readln(tep3,A); 
Readln(tep3,B); 
Readln(tep3,C);
Chương trình báo lỗi. Đây là lỗi thứ 3: Trong lệnh read, Cách đọc dữ liệu không đúng với cấu trúc của tệp văn bản. Lỗi này có thể dẫn đến kết quả chương trình không đúng với dữ liệu vào mà các em hết sức chú ý.
SLIDE 25: Ví dụ 4 về lỗi ghi dữ liệu ra tệp văn bản
Cho tệp PTB2.INP chứa dữ liệu như sau
Để đọc dữ liệu vào 3 biến A, B, C:
Giả sử ta khai báo:
Var f1: text;
 a, b,c: integer;
Nếu ta có lệnh:
While not eof(f1) do
Read(f1,a,b,c);
Lần 1:
Biến a có giá trị 1 , Biến b có giá trị 1 , Biến c có giá trị 1
Lần 2
Biến a có giá trị 1, Biến b có giá trị 5 , Biến c có giá trị 6
Nếu ta có các lệnh sau:
Readln(f1,A); 
Readln(f1,B); 
Readln(f1,C);
Chương trình chỉ đọc 1 lần và cho kết quả
Biến a có giá trị 1 , Biến b có giá trị 1 , Biến c có giá trị ‘’
Đây là Kết quả sai
Do đó, Trong lệnh read, chú ý cách đọc dữ liệu đúng với cấu trúc của tệp
SLIDE 26: Ví dụ 5 về lỗi ghi dữ liệu ra tệp văn bản
Ví dụ 5 về lỗi ghi dữ liệu ra tệp văn bản
Giả sử có khai báo sau:
Var tepB: text;
 MangA: array[1..10] of integer; 
Nếu ta có lệnh:
Write(tepB,MangA);
Chương trình sẽ báo lỗi không thể đọc hoặc ghi được biến kiểu này. Bởi Pascal không cho phép ghi dữ liệu kiểu mảng ra tệp.
Đây là lỗi thứ 4: Trong lệnh write: biến, hằng, biểu thức không thuộc kiểu đơn giản như kiểu nguyên, kiểu thực, kiểu kí tự, logic, kiểu xâu
Các em vừa tìm hiểu xong hai thao tác cơ bản đối với tệp văn bản của Pascal đó là đọc/ghi tệp văn bản. Sau khi đọc/ghi dữ liệu, chúng ta cần đóng tệp.
SLIDE 27: Đóng tệp
d. Đóng tệp
Thủ tục đóng tệp như sau:
close( );
Ví dụ:
Close(tep1);
Việc đóng tệp là đặc biệt quan trọng bởi sau khi ghi dữ liệu, khi đó hệ thống mới thực sự hoàn tất việc ghi dữ liệu ra tệp. Sau khi đóng tệp, một tệp vẫn có thể được mở lại. Khi mở lại tệp, nếu vẫn dùng biến tệp cũ thì không cần dùng thủ tục assign gắn lại tên tệp. Các thao tác với tệp được mô tả bằng sơ đồ sau:
SLIDE 28: Sơ đồ các thao tác với tệp
Sơ đồ cho ta thấy rõ quy trình đọc dữ liệu từ tệp hoặc ghi dữ liệu ra tệp và cú pháp các câu lệnh.
Ngoài ra, các em có thể tổng hợp một số lỗi thường gặp khi làm việc với tệp văn bản trong Pascal như sau:
SLIDE 29: video thưc hành
SLIDE 30 -40
SLIDE 41 Bảng KWLH
Các em vừa theo dõi bài giảng Bài 15: Thao tác với tệp. Để tổng hợp kiến thức đã tìm hiểu được từ bài giảng, các em hoàn thiện bàng KWLH sau đậy.
Nội dung Cột L: Những điều đã học được:
1. Khai báo đúng tệp văn bản: Var :text;
2. Các bước làm việc với tệp văn bản.
B1. Gắn tên tệp: assign( , );
B2. Mở tệp để đọc: reset( );
 hoặc Mở tệp để ghi: rewrite( );
B3. Đọc dữ liệu: read( , );
hoặc Ghi dữ liệu: write( , );
 B4. Đóng tệp: close( );
3. Nhân biết được hàm: eof, eoln
4. Nhận biết được một số lỗi thường gặp khi làm việc với tệp văn bản: 
 + Lỗi cú pháp
 + Lỗi ngữ nghĩa 
5. Cài đặt được chương trình Pascal đơn giản có sử dụng kiểu dữ liệu tệp văn bản.
6. Sử dụng cửa sổ Debug và chạy từng bước F7 để kiểm tra kết quả của biến tại mỗi bước của chương trình.
Cột H: Những điều vận dụng vào thực tiễn
Với kỹ thuật KWLH, bài giảng giúp các em rèn kỹ năng lập kế hoạch học tập. Việc thường xuyên rèn kỹ năng lập kế hoạch sẽ giúp phát triển năng lực tự học cho các em, điều đó sẽ giúp các em đạt được mục tiêu trong học tập cũng như cuộc sống. 
Bảng KWLH cũng đã giúp các em hệ thống hóa, khái quát hóa các kiến thức học được từ bài giảng, từ đó giúp các em rèn kỹ năng khái quát hóa thành tiến trình thực hiện khi giải quyết một vấn đề nhằm phát triển năng lực sáng tạo, đây là một năng lực quan trọng giúp các em dễ dàng đạt được mục tiêu trong học tập cũng như cuộc sống sau này. 
Chúc các em học tốt:

LUU
SLIDE 28: Ví dụ áp dụng
Quay lại bài toán Tính và đưa ra nghiệm thực của phương trình bậc 2: ax2 + bx+c=0 (a<>0)
với các hệ số a,b,c nhập từ bàn phím và các kết quả hiển thị trên màn hình.
Với yêu cầu Tính nghiệm thực của phương trình bậc 2 với các hệ số a,b,c được lấy từ tệp văn bản PTB2.INP và kết quả của chương trình ghi ra tệp văn bản PTB2.OUT, cả 2 thư mục này cùng thư mục với chuong trình. 
Sau đây, các em quan sát màn hình để khắc sâu kiến thức và kỹ năng về khai báo biến tệp, về các bước làm việc với tệp, về hàm chuẩn eof trong khi đọc/ghi tệp văn bản, từ đó là quen với việc cài đặt chương trình có sử dụng kiểu dữ liệu tệp và nhận biết được một số lỗi thường gặp khi làm việc với tệp văn bản.
Bước 1: khai báo biến tệp văn bản f1 để đại diện cho tệp PTB2.INP ( tệp chứa các hệ số a,b,c). Tệp văn bản f2 để đại diện cho tệp PTB2.OUT( là tệp chứa kết quả của chương trình.). 
Cụ thể như sau: thêm dòng f1,f2: text vào phần khai báo
Chú ý viết đúng tên chuẩn text, cú pháp câu lệnh khai báo biến tệp, tên biến tệp đặt đúng qui định về tên trong PASCAL, để không gây ra các lỗi này.
B2: Sau từ khóa BEGIN , gắn tên tệp PTB2.INP cho biến tệp f1 và mở tệp f1 ra để đọc dữ liệu bằng cặp lệnh 
Assign(f1,’PTB2.INP’);
Reset(f)
Và gắn tên tệp PTB2.OUT cho biến tệp f2 và mở tệp f2 ra để ghi kết quả băng cặp lệnh
Assign(f2,’PTB2.OUT’);
Rewrite(f2);
Chú ý viết đúng tên assign, reset, rewrite, đúng cú pháp câu lệnh, đúng tên biến tệp f1,f2 đã khai báo ở trên, đúng tên tệp PTB2.INP và PTB2.OUT trong các câu lệnh để không gây ra lỗi.
B3: Bây giờ thay vì nhập a,b,c từ bàn phím bằng lệnh readln(a,b,c), các em 
thay bằng cấu trúc đọc tất cả các phần tử của tệp, và đưa toàn bộ công việc tính toán nghiệm thực vào cấu trúc
While not eof(f1) do
Begin
End;
Như sau:
Giữa begin và end; ta thực hiện
B3.1. Thay lệnh write(‘a,b,c’) và readln(a,b,c) bằng lệnh Readln(f1,a,b,c ) bởi lệnh readln(f1,a,b,c) này sẽ đọc 3phần tử từ tệp f1 và gán lần lượt các giá trị đọc được vào biến a,b,c theo đúng cấu trúc tệp PTB2.INP.
B3.2. Tính deta =b*b-4*a*c vẫn giữ nguyên
B3.3. Thay vì đưa kết quả ra màn hình bằng lệnh writeln(), các em thay bằng lệnh Ghi kết quả ra tệp PTB2.OUT như sau:
TH delta<0 thay wirteln(‘Phuong trinh vo nghiem’) bằng lệnh wirteln(f2,‘Phuong trinh vo nghiem’)
TH delta>0 hoặc =0, Thay lệnh writeln(x1=,x1,x2=,x2) bằng lệnh
writeln(f2,x1=,x1; x2=,x2)
B4: Chúng ta Đóngtệp f1,f2 bằng lệnh Close(f1); close(f2)
Ở cả bước 3 và 4 đều chú ý viết đúng cú pháp câu lệnh, đúng các tên biến đã khai báo để không gây ra lỗi. đặc biệt là lệnh tính x1 và x2 phải chính xác (có dấu ngoặc) bởi nếu không sẽ gây ra lỗi ngữ nghĩa (kết quả của chuong trình không đúng). Đây là lỗi khó phát hiện. nên các em cần hết sức lưu ý việc viết câu lệnh đúng ngữ nghĩa theo yêu cầu bài toán.
Quá trình này dừng khi eof(f1) trả ra giá trị TRUE tức con trỏ ở cuối tệp. 
Chạy chương trình bằng Ctrl+F9. Chương chình không có lỗi.
Vậy với tệp PTB2.INP đã cho thì việc đọc và tính toán nghiệm được thực hiện 2 lần, lần 1 đọc từ tệp PTB2.INP được a=1,b=1,c=1 , lần 2 được a=1, b=5, c=6. va kết quả ở tệp PTB2.OUT lần 1 là thông báo Phuong trinh vo nghiem, lần 2 là x1= -3.00 x2=-2.00
Như vậy, các em vửa tìm hiểu các thao tác với tệp văn bản và các bước làm việc vói tệp văn bản. Để củng cố kiến thức vửa tìm hiểu qua video trên, các em hãy trả lời các câu hỏi sau đây:
SLIDE 29: Câu hỏi
SLIDE 30: Video thực hành
SLIDE 31: Câu hỏi
SLIDE 32: Bảng KWLH
Các em vừa theo dõi video hướng dẫn thực hành. Để tổng hợp kiến thức đã tìm hiểu được từ bài giảng, các em hoàn thiện bàng KWLH sau đậy.
Nội dung Cột L: Những điều đã học được:
1. Khai báo đúng tệp văn bản: Var :text;
2. Các bước làm việc với tệp văn bản.
B1. Gắn tên tệp: assign( , );
B2. Mở tệp để đọc: reset( );
 hoặc Mở tệp để ghi: rewrite( );
B3. Đọc dữ liệu: read( , );
hoặc Ghi dữ liệu: write( , );
 B4. Đóng tệp: close( );
3. Nhân biết được hàm: eof, eoln
4. Nhận biết được một số lỗi thường gặp khi làm việc với tệp văn bản: 
 + Lỗi cú pháp
 + Lỗi ngữ nghĩa 
5. Cài đặt được chương trình Pascal đơn giản có sử dụng kiểu dữ liệu tệp văn bản.
6. Sử dụng cửa sổ Debug và chạy từng bước F7 để kiểm tra kết quả của biến tại mỗi bước của chương trình.
Cột H: Những điều vận dụng vào thực tiễn
Với kỹ thuật KWLH, bài giảng giúp các em rèn kỹ năng lập kế hoạch học tập. Việc thường xuyên rèn kỹ năng lập kế hoạch sẽ giúp phát triển năng lực tự học cho các em, điều đó sẽ giúp các em đạt được mục tiêu trong học tập cũng như cuộc sống. 
Bảng KWLH cũng đã giúp các em hệ thống hóa, khái quát hóa các kiến thức học được từ bài giảng, từ đó giúp các em rèn kỹ năng khái quát hóa thành tiến trình thực hiện khi giải quyết một vấn đề nhằm phát triển năng lực sáng tạo, đây là một năng lực quan trọng giúp các em dễ dàng đạt được mục tiêu trong học tập cũng như cuộc sống sau này. 
Chúc các em học tốt:

SLIDE 33: tổng quan phân loại các kiểu dữ liệu của pascal

SLIDE 34: bài tập vận dụng

SLIDE 35: Bài học cuộc sống
SLIDE 36: Tổng kết
SLIDE 37: Vấn đề thực tiễn
SLIDE 38: Tài liệu tham khảo
SLIDE 39: Thông tin liên hệ


Tài liệu đính kèm:

  • docxbai_thuyet_trinh_toan_lop_11_bai_15_thao_tac_voi_tep.docx
  • docxVIDEO THUC HANH FREE PASCAL 2.docx
  • docxVIDEO THUC HANH FREE PASCAL 1.docx
  • docxTHUYẾT MINH BAI 15-5-1.docx
  • docxTHUYẾT MINH BAI 15-5.docx
  • docxCông nghệ.docx