Để HS hiểu sâu hơn về bản chất làm việc của Kiểu dữ liệu tệp trong máy tính và gây hứng thú cho HS khi học về phần này cũng như là bước đầu cho việc lập trình các bài toán liên quan đến
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
TRƯỜNG THPT THPT HẬU LỘC IV
SÁNG KIẾN KINH NGHIỆM
TÊN ĐỀ TÀI
Người thực hiện: Lê Thị Hoa Chức vụ: Giáo viên
SKKN thuộc lĩnh vực : Tin học
THANH HOÁ NĂM 2020
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
TRƯỜNG THPT THPT HẬU LỘC IV
SÁNG KIẾN KINH NGHIỆM
ĐỔI MỚI PHƯƠNG PHÁP DẠY HỌC BÀI “VÍ DỤ LÀM VIỆC VỚI TỆP” – TIN HỌC LỚP 11 NHẰM NÂNG CAO
HIỆU QUẢ TIẾT DẠY
Người thực hiện: Lê Thị Hoa Chức vụ: Giáo viên
SKKN thuộc lĩnh vực : Tin học
Trang 2
MỤC LỤC
1 Mở đầu 2
1.1 Lí do chọn đề tài 2
1.2 Mục đích nghiên cứu 2
1.3 Đối tượng nghiên cứu 2
1.4 Phương pháp nghiên cứu 2
1.5 Những điểm mới của SKKN 2
2 Nội dung sáng kiến kinh nghiệm 4
2.1 Cơ sở lí luận của sáng kiến kinh nghiệm 4
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm 4
2.3 Các sáng kiến kinh nghiệm đã sử dụng để giải quyết vấn đề 4
2.4 Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản thân, đồng nghiệp và nhà trường 13
3 Kết luận, kiến nghị 14
3.1 Kết luận 14
3.2 Kiến nghị 14
TÀI LIỆU THAM KHẢO 16
Trang 31 MỞ ĐẦU
1.1 Lý do chọn đề tài
Thực tế chúng ta thấy rằng kiểu dữ liệu của ngôn ngữ lập trình nói chung và ngôn ngữ Pascal nói riêng là không thể thiếu trong các đề thi học sinh giỏi các cấp Vì vậy, quá trình tham gia giảng dạy Tin học khối 11 tôi rất ấn tượng với “Kiểu dữ liệu tệp”
Để HS hiểu sâu hơn về bản chất làm việc của Kiểu dữ liệu tệp trong máy tính và gây hứng thú cho HS khi học về phần này cũng như là bước đầu cho việc lập trình các bài toán liên quan đến kiểu dữ liệu này; đặc biệt là đối tượng ôn thi HSG cấp tỉnh môn Tin học lớp 11 Tôi nhận thấy việc cho HS khối 11 thực hành về kiểu dữ liệu tệp trong nhà trường là rất cần thiết, tuy nhiên Phân phối chương trình cũ của Bộ GD –
ĐT không hề có tiết thực hành cho phần này Việc học sinh tìm hiểu về tất cả các thao tác với tệp chỉ vẻn vẹn trong 1 tiết và 1 tiết bài tập, sau đó chuyển sang chương mới không hề gặp lại kiểu dữ liệu tệp Chính vì vậy, HS còn khá nhiều lúng túng bởi thời gian học phần này của lớp 11 quá ít mà còn nhiều vấn đề khi thực hành nên các
em nắm kiến thức chưa vững và chưa sâu Đặc biệt là 100% các đề thi HSG cấp tỉnh môn Tin học liên quan đến kiểu dữ liệu này và sử dụng kiểu dữ liệu này một cách thuần thục nên GV dạy đội tuyển phải mất một khoảng thời gian nhất định ôn tập lại cho HS về phần này
1.2 Mục đích nghiên cứu
Với mong muốn phần nào giúp học sinh trong việc làm tốt các bài tập cũng như thực hành thành thạo các bài toán liên quan tới kiểu dữ liệu tệp; nhất là giúp cho các
em học sinh có thể yêu thích nhiều hơn nữa môn Tin học và các em tham gia vào đội tuyển thi HSG tỉnh môn Tin học có thêm một chút kiến thức về phần này Tôi xin
giới thiệu chuyên đề “Đổi mới phương pháp dạy học bài Ví dụ làm việc với tệp
-Tin học lớp 11 nhằm nâng cao hiệu quả tiết dạy ” mà tôi đã áp dụng có hiệu quả
trong quá trình giảng dạy Chuyên đề được trình bày dựa trên kinh nghiệm giảng dạy của bản thân và tham khảo một số tài liệu liên quan
1.3 Đối tượng nghiên cứu
- Đối tượng khảo sát: Học sinh khối 11 của lớp: 11A4, 11A5, 11A6 và học sinh đội tuyển tỉnh
1.4 Phương pháp nghiên cứu
- Hình thành được kỹ năng vận dụng lí thuyết chính xác, linh hoạt về Kiểu dữ liệu tệp trong Tin học lớp 11 để giải các bài tập cho học sinh và kết hợp thực hành luôn ngay sau khi làm bài tập
- Phạm vi thực hiện trên các bài toán về kiểu dữ liệu tệp của Tin học lớp 11
1.5 Những điểm mới của đề tài
- HS sau khi được giới thiệu một cách hệ thống lí thuyết cũng như các dạng bài tập về Kiểu dữ liệu tệp và quy trình giải quyết từng dạng đã có thể nhận biết yêu cầu của bài toán, cách thức giải quyết chúng và thực hành một cách thành thục, hiệu quả
Trang 4- Hình thành ở HS kỹ năng phân tích, xử lý các vấn đề liên quan đến bài tập về
Kiểu dữ liệu tệp, bước đầu làm quen với 1 số chương trình thuận lợi cho việc tiếp thu kiến thức về cách viết chương trình và bồi dưỡng HS giỏi tỉnh
Trang 52 NỘI DUNG
2.1 Cơ sở lí luận :
Ngày nay, trên thế giới đang diễn ra quá trình tin học hoá trên nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả to lớn Việc sử dụng máy tính không còn chỉ bó hẹp trong viện nghiên cứu, các trường đại học, các trung tâm máy tính mà còn mở rộng ra mọi cơ quan, tổ chức kinh tế và trong các gia đình Song song với quá trình trên, việc giảng dạy Tin học trong các trường THPT cũng được đẩy mạnh đi đôi với việc tăng cường trang bị máy vi tính Đảng và Nhà nước ta
đã nhận thấy được tầm quan trọng của ngành Tin học và đã đưa môn học này vào trường phổ thông như những môn học khác bắt đầu từ năm học 2006-2007
Trong bối cảnh toàn ngành GD - ĐT đang nỗ lực đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt động học tập Điều 24.2 của Luật giáo dục đã nêu rõ: “Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh ” Như vậy, chúng ta có thể thấy định hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đề tranh luận Cốt lõi của việc đổi mới phương pháp dạy học ở trường phổ thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động.Với một số nội dung trong đề tài này, HS có thể tự học, tự rèn luyện thông qua một số bài tập, dạng bài tập cụ thể
2.2 Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm
- Qua thực tế giảng dạy ở trường THPT Hậu Lộc 4 nhiều năm, tôi nhận thấy
khi học đến chương trình Tin học lớp 11 đa số học sinh đều cho rằng đây là môn học khó nhất trong các môn học Nhiều em học tốt các môn tự nhiên nhưng vẫn sợ môn học này và còn khá nhiều bỡ ngỡ khi tiếp cận với kiểu dữ liệu mới như Kiểu dữ liệu tệp trong Tin học lớp 11 Chính vì vậy, học sinh thường gặp nhiều khó khăn khi thực hiện viết chương trình và đặc biệt là thực hành ở phần này Từ đó dẫn đến các em không biết xử lí thế nào và bắt đầu từ đâu khi gặp các bài toán phức tạp liên quan đến Kiểu dữ liệu tệp Đặc biệt hơn nữa là những lớp 11 học ban cơ bản và ban xã hội của trường THPT Hậu Lộc 4 chúng tôi – một trường thuộc khu vực bãi ngang ven biển học sinh không được chịu khó lắm khi gặp các bộ môn khó và cần tư duy logic nhiều như môn Tin học lớp 11 của Bộ GD – ĐT
2.3 Các sáng kiến kinh nghiệm đã sử dụng để giải quyết vấn đề
- Với Kiểu dữ liệu tệp ở pascal lớp 11 giáo viên có thể tạo sự hứng thú cho học
sinh bằng các bài tập cụ thể, kèm theo là chương trình có sẵn trên máy tính của GV chiếu cho các em xem cách thực hiện 1 chương trình Qua đó các em có thể giải các bài toán trong thực tế, bước đầu viết được một số chương trình và biết cách tự thực hành về Kiểu dữ liệu tệp này
- Do đặc trưng của bộ môn nên học sinh muốn học được tốt môn Tin học cần có
được tư duy khái quát xác định được hết các khả năng của một vấn đề
Trang 6- Phát triển nhân cách học sinh khi tham gia làm các bài tập về Kiểu dữ liệu tệp có
thể rèn luyện tính tích cực, chủ động, sáng tạo trong việc chọn hướng giải quyết một vấn đề cụ thể thông qua việc liệt kê các khả năng của nó
Cụ thể tôi xin đưa ra một số vấn đề mà giáo viên cần truyền đạt kỹ cho học sinh lớp 11 trong tiết dạy “Bài 16 Ví dụ làm việc với tệp” để các em xâu chuỗi vấn
đề một cách tốt nhất, hỗ trợ cho việc viết chương trình được hoàn thiện hơn như sau:
I Kiểm tra bài cũ:
Câu hỏi: Em hãy nêu trình tự các thao tác làm việc với tệp?
HS trả lời:
- Gắn tên tệp: Assign(<biến tệp>,<tên tệp>);
- Mở tệp:
+ Mở tệp để đọc: Reset(<biến tệp>);
+ Mở tệp để ghi: Rewrite(<biến tệp>);
- Đọc/ghi dữ liệu:
+ Đọc dữ liệu: 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: write(<biến tệp>,<danh sách kết quả>);
Hoặc writeln(<biến tệp>,<danh sách kết quả>);
- Đóng tệp: Close(<biến tệp>);
GV nhận xét và cho điểm.
II Giáo viên nhắc lại một số vấn đề về Kiểu dữ liệu tệp :
(Nói ngắn gọn để HS nhớ lại toàn bộ lí thuyết tiết trước)
1 Khái niệm Kiểu dữ liệu tệp
- Khái niệm: Kiểu dữ liệu tệp là một tập hợp các dữ liệu có liên quan với nhau
và có cùng kiểu được nhóm lại tạo thành một dãy dùng để trao đổi dữ liệu với bộ nhớ ngoài
2 Vai trò của Kiểu dữ liệu tệp:
Tất cả các 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 Với một số bài toán có khối lượng dữ liệu lớn, có yêu cầu lưu trữ để xử lý nhiều lần, cần có kiểu dữ liệu tệp (file)
Kiểu dữ liệu tệp có những đặc điểm sau:
- 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 của đĩa
3 Phân loại tệp:
- Xét theo cách tổ chức dữ liệu, có thể phân tệp thành 2 loại:
+ Tệp văn bản: là tệp mà dữ liệu được ghi dưới dang các kí tự theo mã ASCCI Trong tệp văn bản, dãy kí tự kết thúc bởi kí tự xuống dòng hay kí tự kết thúc tệp tạo
Trang 7thành một dòng Các dữ liệu dạng văn bản như sách, tài liệu, bài học, giáo án, các chương trình nguồn viết bằng ngôn ngữ bậc cao,… thường được lưu trữ dưới dạng tệp văn bản
+ 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 một cấu trúc nhất định Tệp nhị phân là một trường hợp riêng của tệp có cấu trúc Dữ liệu ảnh, âm thanh,… thường được lưu trữ dưới dạng tệp có cấu trúc
- Xét theo cách truy cập, có thể phân tệp thành 2 loại:
+ Tệp truy cập tuần tự: cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó
+ Tệp truy cập trực tiếp: cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí (thường là số hiệu) của dữ liệu đó
Hiện nay chương trình Tin học lớp 11 chỉ nghiên cứu về loại tệp văn bản
* Các thao tác với tệp
1 Khai báo biến tệp:
Để làm việc với dữ liệu kiểu tệp ta phải sử dụng biến tệp Khai báo biến tệp văn bản có dạng:
Var <Tên biến tệp>: text;
Ví dụ:
Var f1,f2: 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ó một tên tệp để tham chiếu tên tệp là biến xâu hoặc hằng xâu, ví dụ ‘DULIEU.DAT’
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, tức là biến tệp đại diện cho tên tệp Vì vậy phải gắn tên tệp với đại diện của nó là biến tệp bằng thủ tục:
Assign(<biến tệp>,<tên tệp>);
Trong đó, tên tệp là biến xâu hoặc hằng xâu
Ví dụ: Assign(f1,’BAITAP.INT’);
Assign(f2,’D:\\BAITAP.OUT’);
b, Mở tệp:
Tệp có thể dùng để chứa kết quả ra hoặc dữ liệu vào
Câu lệnh dùng thủ tục mở tệp để ghi dữ liệu có dạng:
Rewrite(<biến tệp>);
Ví dụ: rewrite(f2);
Khi thực hiện thủ tục rewrite(f2), nếu trên thư mục gốc của đĩa D chưa có tệp BAITAP.OUT thì tệp sẽ được tạo với nội dung rỗng Nếu đã có, thì nội dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới
Trang 8Trước khi đọc dữ liệu từ tệp đã gắn với một biến tệp, ta mở tệp bằng thủ tục:
Reset(<biến tệp>);
Ví dụ: Reset(f1);
c Đọc/ghi tệp văn bản:
Việc đọc tệp văn bản được thực hiện giống như nhập từ bàn phím Việc ghi dữ liệu ra tệp giống như ghi ra màn hình
Câu lệnh dùng thủ tục đọc có dạng:
Read(<biến tệp>,<danh sách biến>);
Hoặc Readln(<biến tệp>,<danh sách biến>);
Trong đó, danh sách biến là một hoặc nhiều tên biến đơn Nếu trường hợp nhiều biến thì các biến phân cách nhau bởi dấu phẩy
Ví dụ: Read(tep1,x,y);
Hoặc Readln(tep1,x,y);
Câu lệnh dùng thủ tục ghi có dạng:
Write(<biến tệp>,<danh sách kết quả>);
Hoặc Writeln(<biến tệp>,<danh sách kết quả>);
Trong đó, 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 (số học, quan hệ hoặc lôgic) hoặc hằng xâu Nếu trường hợp có nhiều phần tử thì các phần tử được phân cách bởi dấu phẩy
Ví dụ: write(tep2,x*x+y*y);
Writeln(tep2,x,y);
d, Đóng tệp:
Sau khi làm việc xong với tệp cần phải đóng tệp Câu lệnh dùng thủ tục đóng tệp có dạng:
Close(<biến tệp>) ;
Ví dụ: Close(tep1);
Close(tep2);
Chú ý: Sau khi đóng, 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 phải dùng thủ tục Assign gắn lại tên tệp
3 Các hàm thường dùng trong khi đọc/ghi tệp văn bản:
- Hàm eof(biến tệp) trả về giá trị True nếu con trỏ đang chỉ tới cuối tệp
- Hàm eoln(biến tệp) trả về giá trị True nếu con trỏ đang chỉ tới cuối dòng
III NỘI DUNG BÀI TẬP :
1 Một số bài tập củng cố kiến thức, tạo hứng thú cho HS:
Bài 1:
Một trường THPT tổ chức cho GV và HS của trường đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương Để lên lịch đến thăm khu trại các lớp, thầy hiệu trưởng cần biết khoảng cách từ trại của mình(ở vị trí có tọa độ (0,0) đến trại của các
Trang 9GVCN có tọa độ nguyên (x,y) được ghi trong tệp văn bản TRAI.TXT (như vậy, tệp TRAI.TXT chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cách và không kết thúc bằng kí tự xuống dòng ))
Viết chương trình đọc các cặp tọa độ 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 bốn chữ số sau dấu chấm thập phân) giữa trại của mỗi GVCN và trại của thầy hiệu trưởng
Yêu cầu với bài này:
- HS: Đọc và nghiên cứu bài trong SGK (HS có thể đọc trước ở nhà)
- GV chuẩn bị sẵn chương trình và chạy trên máy chiếu cho HS xem quá trình thực hành với kiểu dữ liệu tệp mới này
Cụ thể GV hướng dẫn kỹ: bài này có 2 tệp:
+ Một tệp chương trình:
program vd1;
uses crt;
var d:real; f:text; x,y:integer;
BEGIN
Clrscr;
assign(f,'TRAI.TXT');
reset(f);
while not(eof(f))do Begin
read(f,x,y);
d:=sqrt(x*x+y*y);
writeLN('k/c d=',d:10:4);
End;
Readln;
close(f);
END.
+ Một tệp TRAI.TXT lưu các cặp số nguyên là tọa độ trại của các GVCN các lớp, ví dụ:
2 4
-7 5
-10 -4
Còn kết quả sẽ ghi ra màn hình như những bài lập trình của các chương trước:
k/c d= 4.4721
k/c d= 8.6023
k/c d= 10.7703
Như vậy, sau khi tắt nguồn điện hoặc thoát ra khỏi Pascal rồi khởi động lại máy tính thì dữ liệu trong 2 tệp trên vẫn còn và đương nhiên kết quả lại được hiện trên màn hình mà không bị mất đi như các kiểu dữ liệu trước đây.
Trang 10GV nhấn mạnh đây chính là vai trò và ưu điểm của “Kiểu dữ liệu tệp”
Bài 2: Tính điện trở tương đương
Cho 3 điện trở R1, R2, R3 Sử dụng cả 3 điện trở để tạo ra 5 mạch điện
có điện trở tương đương khác nhau bằng cách mắc theo các sơ đồ sau:
Mỗi cách mắc sẽ cho một điện trở tương đương khác nhau
Cho tệp văn bản RESIST.DAT gồm nhiều dòng, mỗi dòng chứa 3 số thực R1, R2, R3, các số cách nhau một dấu cách, 0<R1,R2,R3 105
Viết chương trình đọc dữ liệu từ tệp RESIST.DAT, tính điện trở tương đương và ghi kết quả ra tệp văn bản RESIST.EQU , mỗi dòng ghi năm điện trở tương đương của ba điện trở ở dòng dữ liệu vào tương ứng
Yêu cầu với bài này:
- HS: đọc và nghiên cứu nội dung bài trong SGK.
- GV: chuẩn bị sẵn chương trình và chạy trên máy chiếu cho HS xem quá trình thực hành với kiểu dữ liệu tệp mới này
Cụ thể GV hướng dẫn kỹ: bài này có điểm khác bài 1 đó là gồm 3 tệp:
+ Một tệp chương trình:
program dientro;
var a:array[1 5]of real; i:byte;
R1
R2
R3
Sơ đồ I
R1
R2
R3
Sơ đồ II
R1
R3
R2
R2
R3
R1
Sơ đồ V