1. Trang chủ
  2. » Tất cả

Skkn biện pháp giúp học sinh thực hành với kiểu dữ liệu tệp trong chương trình tin học 11 ở trường thcs và thpt nghi sơn

23 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

MẪU A SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THCS VÀ THPT NGHI SƠN SÁNG KIẾN KINH NGHIỆM “BIỆN PHÁP GIÚP HỌC SINH THỰC HÀNH VỚI KIỂU DỮ LIỆU TỆP TRONG CHƯƠNG TRÌNH TIN HỌC 11 Ở TRƯỜNG THCS VÀ THPT NG[.]

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THCS VÀ THPT NGHI SƠN SÁNG KIẾN KINH NGHIỆM “BIỆN PHÁP GIÚP HỌC SINH THỰC HÀNH VỚI KIỂU DỮ LIỆU TỆP TRONG CHƯƠNG TRÌNH TIN HỌC 11 Ở TRƯỜNG THCS VÀ THPT NGHI SƠN” Người thực hiện: Nguyễn Thị Lập Chức vụ: Giáo viên SKKN thuộc lĩnh vực (môn): Tin học THANH HOÁ NĂM 2020 skkn skkn MỤC LỤC 1.MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Phạm vi đối tượng nghiên cứu 1.3 Mục đích đề tài 1.4 Phương pháp nghiên cứu NỘI DUNG SÁNG KIẾN KINH NGHIỆM .2 2.1 Cơ sở lý luận sáng kiến kinh nghiệm .2 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm 2.3 Các giải pháp sử dụng để giải vấn đề 2.3.1 Thao tác với tệp 2.3.2 Hướng dẫn tạo tệp văn 2.3.3 Các bài tập giúp học sinh rèn luyện kỹ thao tác với tệp tránh những lỗi hay gặp 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, thân, đồng nghiệp nhà trường .14 KẾT LUẬN, KIẾN NGHỊ 15 3.1 Kết luận 15 3.2 Kiến nghị đề xuất .15 skkn DANH MỤC CHỮ VIẾT TẮT THUẬT NGỮ Ngôn ngữ lập trình Tài liệu tham khảo Sách giáo khoa Sách giáo viên Ví dụ Chương trình VIẾT TẮT NNLT TLTK SGK SGV VD CT skkn 1.MỞ ĐẦU 1.1 Lý chọn đề tài Theo chương trình SGK Tin học 11 hướng dẫn điều chỉnh nội dung dạy học học kỳ II năm học 2019 -2020 Bộ giáo dục đào tạo, kiểu liệu tệp thao tác với tệp nội dung quan trọng Tuy nhiên, thời lượng chương trình dành cho phần tệp không nhiều, đó: Mục Phân loại tệp thao tác với tệp §14 Kiểu liệu tệp Ví dụ §16 Ví dụ làm việc với tệp Hai nội dung khơng dạy, khuyến khích học sinh đọc thêm, vậy nên học sinh mơ hồ gặp nhiều lỗi viết chương trình với kiểu dữ liệu này Vì nhiều thao tác so với các kiểu dữ liệu khác mà các em cảm thấy phức tạp, khó hiểu, khó vận dụng vào tập dẫn đến mất hứng thú học tập Trước thực trạng tơi nghĩ nên chọn cách dạy đầy đủ dễ hiểu cho học sinh Từ giúp học sinh ngày hứng thú với ngôn ngữ lập trình Từ thực tiễn giảng dạy lớp kết hợp hướng dẫn học sinh học nhà phương pháp trực tuyến kiểu liệu tệp (file) đã rút một số kinh nghiệm để giúp học sinh làm bài tập ở chương V “Tin học 11” có hiệu quả nên tơi viết sáng kiến kinh nghiệm: “Biện pháp giúp học sinh thực hành với kiểu liệu tệp chương trình Tin học 11 trường THCS THPT Nghi Sơn” 1.2 Phạm vi đối tượng nghiên cứu Phạm vi nghiên cứu: Trong đề tài xây dựng đề xuất số biện pháp hướng dẫn học sinh làm số tập đơn giản liên quan đến kiểu liệu tệp chương trình Tin học 11 để học sinh nắm bắt thao tác tránh gặp phải lỗi làm việc với tệp (file) Đối tượng nghiên cứu: Học sinh khối 11 trường THCS THPT Nghi Sơn – Thanh Hóa 1.3 Mục đích đề tài Giúp học sinh hiểu rõ, nắm vững và tránh được các lỗi thường gặp làm bài tập tệp “chương V - Tin học 11” Từ đó các em có thể vận dụng yêu thích làm các bài tập có sử dụng kiểu dữ liệu tệp 1.4 Phương pháp nghiên cứu - Lựa chọn ví dụ tập cụ thể từ đơn giản đến phức tạp để hướng dẫn học sinh tiếp cận với kiểu liệu tệp (file) từ phân tích tỉ mỉ sai lầm học sinh, vận dụng hoạt động lực tư kỹ vận dụng kiến thức học sinh để từ học sinh viết chương trình hồn chỉnh - Phương pháp quan sát: phương pháp thu thập thông tin trình giáo dục sở tri giác trực tiếp hoạt động sư phạm cho ta tài liệu sống skkn thực tiễn giáo dục để khái quát nên quy luật nhằm đạo tổ chức trình giáo dục tốt hơn1 - Phương pháp thực nghiệm sư phạm: phương pháp thu nhận thông tin thay đổi số lượng, chất lượng nhận thức hành vi đối tượng giáo dục giáo viên tác động đến số câu hỏi tập kiểm tra2 NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lý luận sáng kiến kinh nghiệm Tất liệu thuộc kiểu liệu xét lưu trữ nhớ (RAM) liệu bị tắt máy Với số tốn có khối lượng liệu lớn, có u cầu lưu trữ để xử lý nhiều lần, cần có kiểu liệu tệp (file)3 Xét theo cách tổ chức liệu, phân tệp thành hai loại: Tệp văn tệp có cấu trúc (trong chương trình Tin học 11 xét đến tệp văn bản) “Tệp văn tệp mà liệu ghi dạng kí tự theo mã ASCII Trong tệp văn bản, dãy kí tự kết thúc kí tự xuống dịng hay kí tự kết thúc tệp tạo thành dịng”.4 Tệp kiểu liệu có cấu trúc Định nghĩa tệp có phần giống mảng chỗ chúng tập hợp phần tử liệu có kiểu Song mảng định nghĩa khai báo chương trình với số phần tử xác định cịn số phần tử tệp khơng xác định định nghĩa Để làm việc với tệp cần phải khai báo biến têp Các thao tác với tệp văn bao gồm: - Gắn tên tệp, mở tệp để đọc mở tệp để ghi; - Đọc liệu từ tệp, ghi liệu vào tệp; - Đóng tệp 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Khi dạy “Chương V-Tin học 11” trường THCS THPT Nghi Sơn nhận thấy em lúng túng và thường mắc lỗi làm bài tập với kiểu dữ liệu tệp Các em không hiểu được bản chất, ý nghĩa của từng câu lệnh thao tác với tệp nên viết chương trình thường mắc lỗi Học sinh không nhớ kiến thức cũ để giải tập Dữ liệu kiểu tệp khác hoàn toàn với các kiểu dữ liệu các em đã được học Bài tập cũng tương đối phức tạp với mức học của các em Các em không hiểu vai trò, ý nghĩa của từng câu lệnh Được trích dẫn từ TLTK số [1] Được trích dẫn từ TLTK số [1] Được trích dẫn từ TLTK số [2] Được trích dẫn từ TLTK số [2] skkn Thực tế giảng dạy đặt vấn đề: làm để học sinh hiểu tránh được những sai lầm thường gặp là điều quan trọng Tuy nhiên, để giải vấn đề không đơn giản Nên áp dụng SKKN: “Biện pháp giúp học sinh thực hành với kiểu liệu tệp chương trình Tin học 11 trường THCS THPT Nghi Sơn” vào giảng dạy “Chương V-Tin học 11” 2.3 Các giải pháp sử dụng để giải vấn đề 2.3.1 Thao tác với tệp Để học sinh tiếp thu kiến thức tệp cách dễ dàng, trước hết giáo viên cần làm rõ cho học sinh hiểu vai trò kiểu tệp (chỉ xét đến tệp văn bản) phân biệt được: tệp liệu vào, tệp lưu trữ chương trình, tệp liệu Đối với NNLT Pascal giáo viên nên trình chiếu hướng dẫn sơ thao tác làm việc với tệp sau: Gắn tên tệp cho biến điều khiển Tệp Output Tệp Input Mở tệp để đọc liệu Chứa biến điều khiển việc đọc/ghi liệu tệp Mở tệp để ghi liệu Tệp chương trình Ghi liệu vào tệp Đọc liệu từ tệp vào biến Đóng tệp skkn Sau học sinh bước đầu hình dung việc tương tác chương trình tệp, giáo viên bắt đầu vào giới thiệu thao tác cụ thể ngôn ngữ lập trình a Khai báo Trong NNLT để làm việc với liệu kiểu tệp ta phải sử dụng biến tệp Việc đọc (ghi) liệu tệp thực thông qua biến tệp Khai báo biến tệp văn NNLT Pascal có dạng: Var : text;5 Trong đó: tên người lập trình đặt theo quy tắc đặt tên NNLT Pascal Ví dụ: Var f1, f2: text; b Gắn tên tệp Để gắn tên tệp với biến tệp ta sử dụng thủ tục sau: Assign(,); Trong đó: biến xâu xâu; khai báo phần khai báo chương trình Ví dụ1: Assign (f1,’songuyen.inp’); Ví dụ 2: Để đọc liệu từ tệp INP.DAT thư mục gốc ổ đĩa C, ta cần gắn tệp với biến tệp, ví dụ tep2 thủ tục: Assign (tep2,’C:\INP.DAT’);6 c Mở tệp Trước mở tệp ta phải gắn tên tệp cho biến tệp thủ tục assign, tệp dùng để chứa kết liệu vào nên cách mở tệp khác Mở tệp để đọc liệu ta dùng thủ tục: Reset (); VD: Để đọc liệu từ tệp ‘songuyen.inp’ ta viết sau: Assign (f1,’songuyen.inp’); Reset(f1); Mở tệp để ghi liệu vào ta dùng thủ tục: Rewrite(); VD: Assign (f2,’bai2.out); Rewrite(f2); d Đọc/ghi tệp văn Thủ tục dùng để đọc liệu từ tệp có dạng: Read (,); hoặc: Readln (,); VD: Giả sử có khai báo đầy đủ biến tệp ‘SONGUYEN.INP’ lưu trữ số nguyên Ta đọc tệp sau: Được trích dẫn từ TLTK số [2] Được trích dẫn từ TLTK số [2] skkn Read (f1,x,y,z); Thủ tục dùng để ghi liệu vào tệp có dạng: Write (,); hoặc: Writeln (,); VD: Ghi giá trị kq vào tệp ta viết: Write(f2,kq); Hoặc writeln(f2,kq); Giáo viên cần giải thích thực hành thủ tục NNLT để học sinh biết đ Đóng tệp Thủ tục đóng tệp có dạng: Close (); VD: close (f1); Sau làm việc xong với tệp cần phải đóng tệp, việc đóng tệp quan trọng Và đặc biệt quan trọng ghi liệu vào tệp, hệ thống thực hồn tất việc ghi liệu tệp 2.3.2 Hướng dẫn tạo tệp văn Tệp liệu vào (tệp Input) tệp liệu (tệp Output) tạo nhiều cách khác không nằm tệp chương trình Nhiều học sinh nhầm lẫn ba tệp dẫn đến thao tác tệp lệnh bị sai, cịn tệp chương trình tệp soạn thảo NNLT Pascal, C, C++,…Khi học kiểu tệp lớp em học thao tác khai báo, gắn tên tệp, mở tệp, đọc/ghi liệu tệp đóng tệp Lúc em chưa hình dung tệp Input tệp Output đâu nằm chỗ nào, nên giáo viên nên giúp học sinh trả lời câu hỏi Vì tơi dùng biện pháp hướng dẫn học sinh tạo tệp Input cách sau: Cách 1: Tạo tệp Input có pas Khi vừa làm quen với kiểu liệu tệp, em chưa hiểu cách tạo tệp kiểm tra liệu tệp, nên để thuận tiện cho việc xem kết thao tác ghi liệu vào tệp đọc liệu từ tệp có hay không trước hết nên hướng dẫn em cách tạo tệp xem liệu tệp Pascal với tệp có phần pas Bài tập: Hãy tạo tệp ‘Songuyen.pas’ để lưu trữ số nguyên từ đến 10, số cách dấu cách trống Hướng dẫn Bước 1: Khởi động Turbo Pascal (Free Pascal) Bước 2: Chọn File -> New Bước 3: Nhập số nguyên từ đến 10 số cách dấu cách trống skkn Bước 4: Lưu tệp lại với tên ‘Songuyen.pas’ (có thể không gõ phần đuôi, Pascal tự mặc định đuôi Pas) Hướng dẫn học sinh thực máy theo bước nêu trên, sau hướng dẫn học sinh mở tệp để xem kết quả: Cách 2: Tạo tệp Notepad: Hướng dẫn học sinh tạo tệp Notepad Bài tập : Hãy tạo tệp ‘dulieu.inp’ Notepad có cấu trúc: Gồm dòng lần lượt là các sớ ngun, số cách dấu cách trống Hướng dẫn: Bước 1: Mở Notepad Start -> Program -> Accessorie -> Notepad Bước 2: Nhập liệu theo cấu trúc đề yêu cầu; Bước 3: Lưu liệu tên tệp phần đầu phần mở rộng Hướng dẫn học sinh thực máy theo ba bước thực tạo tệp theo yêu cầu tập: Ví dụ tệp tạo theo cấu trúc ra: skkn Cách 3: Tạo tệp viết chương trình Có thể hướng dẫn học sinh viết chương trình tạo tệp văn cách nhập liệu từ bàn phím Bài tập: Em viết chương trình tạo tệp ‘dulieu.inp’ có cấu trúc: Gồm dòng lần lượt là các số nguyên, số cách dấu cách trống Chương trình cài đặt ví dụ: Program taotep; Var i,x,N: integer; f: text; Begin assign(f,'dulieu.inp'); rewrite(f); write('nhap so phan tu cua tep N:'); read(N); for i:=1 to N begin read(x); write(f,x, ' '); end; close(f); readln; End Như học sinh tự tạo, xem sửa nội dung file Input theo yêu cầu đề bài, từ giáo viên hướng đến thao tác đọc kiểm tra liệu đọc từ file Input hay sai File Output tạo từ việc thực chương trình, giáo viên nên hướng dẫn học sinh cách kiểm tra kết input đơn giản để học sinh nắm kiến thức tệp skkn 2.3.3 Các bài tập giúp học sinh rèn luyện kỹ thao tác với tệp tránh những lỗi hay gặp Bài tập 1: Chương trình sau là chương trình đọc dữ liệu từ tệp văn bản Songuyen.inp Tính tổng các phần tử tệp và đưa dữ liệu tệp Songuyen.out Tệp văn bản Songuyen.inp có cấu trúc: - Dòng đầu ghi số nguyên N là số phần tử của tệp; - Dòng thứ hai gồm đúng N số nguyên Mỗi số cách một dấu cách trống Tệp văn bản Songuyen.out có cấu trúc: Một số nhất ghi tổng N phần tử Ví dụ: Songuyen.inp 12683 Songuyen.out 20 Đưa ví dụ tệp Songuyen.inp để học sinh thấy rõ cấu trúc tệp: Chương trình cài đặt: Program Baitap1; Var i, N, x, S: integer; f1, f2: text; Begin assign(f1,'Songuyen.inp'); reset(f1); assign(f2,'Songuyen.out'); rewrite(f2); readln(f1,N); S:=0; skkn for i:=1 to N begin read(f1,x); S:=S+x; end; Write(f2,S:4); close(f1); End skkn Câu hỏi 1: Em hãy nhập chương trình và chạy thử Kiểm tra tệp Songuyen.out cho kết quả thế nào? Hướng dẫn: Tệp Songuyen.out tệp trống khơng có liệu Câu hỏi 2: Tìm lỗi chương trình dẫn đến tệp songuyen.out là tệp không có dữ liệu? Ở câu hỏi phần lớn khơng tìm ngun nhân qn đóng tệp f2 Chú ý cho học sinh: Mỗi thao tác với tệp, làm việc với tệp gán tên tệp mở tệp (để đọc để ghi) sau làm việc xong phải đóng tệp Nếu quên đóng tệp chạy chương trình khơng báo lỗi, khơng thể ghi liệu vào tệp Vì chương trình cần thêm lệnh đóng tệp f2 sau: Program Baitap1; Var i, N, x, S: integer; f1, f2:text; Begin assign(f1,'Songuyen.inp'); reset(f1); assign(f2,'Songuyen.out'); rewrite(f2); readln(f1,N); S:=0; for i:=1 to N begin read(f1,x); S:=S+x; end; Write(f2,S:4); close(f1); close(f2); End Sau sửa lỗi qn đóng tệp tệp Songuyen.out sau: skkn Bài tập 2: Khắc phục lỗi đọc ghi dữ liệu không đúng vì chưa hiểu rõ các lệnh: read và readln; write và writeln Cho tệp văn bản Dulieu.inp có cấu trúc: - Dòng đầu ghi số nguyên N là số phần tử của tệp - Dòng thứ hai gồm đúng N số nguyên Mỗi số cách một dấu cách trống a Viết chương trình đọc dữ liệu từ tệp Dulieu.inp và ghi dữ liệu vào tệp Dulieua.out (tệp Dulieua.out có cấu trúc: một dòng lần lượt là các số nguyên của tệp Dulieu.inp, mỗi số cách một dấu cách trống) b Viết chương trình đọc dữ liệu từ tệp Dulieu.inp và ghi dữ liệu vào tệp Dulieub.out (tệp Dulieub.out có cấu trúc: Gồm N dòng lần lượt là các số nguyên của tệp Dulieu.inp, mỗi số một dòng) Hướng dẫn: Đưa ví dụ tệp văn Dulieu.inp để học sinh thấy rõ cấu trúc tệp: skkn Hướng dẫn: Đưa hai chương trình cài đặt câu a câu b: Program Baitap2a; Var i, x, N:integer; f1,f2:text; Begin Program Baitap2b; Var i, x, N:integer; f1,f2:text; Begin assign(f1,'Dulieu.inp'); reset(f1); assign(f1,'Dulieu.inp'); reset(f1); assign(f2,'Dulieua.out'); rewrite(f2); readln(f1,N); for i:=1 to N begin read(f1,x); assign(f2,'Dulieub.out'); rewrite(f2); readln(f1,N); for i:=1 to N begin read(f1,x); write(f2,x:3); writeln(f2,x:3); end; Câu hỏi 1: Hãy quan sát hai chương trình cài đặt vàend; giải thích ghi close(f1); close(f1); liệu vào tệp chương trình “Baitap2a” sử dụng câu lệnh “write(f2,x:3);” cịn chương trình “Baitap2b” sử dụng câu lệnh “writeln(f2,x:3);”? Trả lời: Vì chương trình “Baitap2a” tệp Dulieua.out có cấu trúc gồm một dòng lần lượt là các số nguyên của tệp Dulieu.inp, mỗi số cách một dấu cách trống Cịn chương trình “Baitap2b” tệp Dulieub.out có cấu trúc gồm N dòng lần lượt là các số nguyên của tệp Dulieu.inp, mỗi số một dòng Đưa hai tệp Dulieua.out Dulieub.out sau thực chương trình để giải thích rõ để học sinh phân biệt cần sử dụng câu lệnh write writeln: Tệp văn Dulieua.out: skkn Tệp văn Dulieub.out: Câu hỏi 2: Hãy quan sát chương trình cài đặt “Baitap2a” đoạn lệnh đọc liệu từ tệp giải thích đọc số phần tử tệp N dùng câu lệnh Readln (readln(f1,N);) đọc phần tử tệp dùng lệnh Read (read(f1,x);)? Trả lời: Vì cấu trúc tệp Dulieu.inp gồm hai dịng: - Dòng đầu ghi số nguyên N là số phần tử của tệp - Dòng thứ hai gồm đúng N số nguyên Mỗi số cách một dấu cách trống Nên sau đọc số phần tử tệp N trỏ chuột phải nằm đầu dòng để đọc tiếp liệu dùng câu lệnh Readln (readln(f1,N);) Các phần tử tệp nằm dòng nên sau đọc phần tử tệp trỏ chuột phải nằm trước phần tử dịng để đọc tiếp hết dùng câu lệnh Read (read(f1,x);) Bài tập 3: Cho tệp văn bản Sothuc.inp có cấu trúc: Gồm số thực, mỗi dòng một số Viết chương trình đọc dữ liệu từ tệp, tính và đưa tổng các số tệp Kết quả đưa tệp Sothuc.out Hướng dẫn: Một số câu hỏi hướng dẫn học sinh trước viết chương trình: Câu hỏi 1: Số lượng phần tử tệp biết trước chưa? Trả lời: Số lượng phần tử tệp chưa biết trước skkn Câu hỏi 2: Khi chưa biết số lượng phần tử tệp để thao tác đọc/ ghi với tệp văn thường sử dụng hàm chuẩn Trả lời: Hàm eof() trả giá trị true trỏ tệp tới cuối tệp Câu hỏi 3: Em viết đoạn lệnh đọc liệu từ tệp Sothuc.inp tính tổng phần tử tệp Trả lời: Đoạn lệnh s:=0; while not eof(f1) Begin readln(f1,x); S:=S+x; end; Bài tập giúp học sinh củng cố lại thao tác làm việc với tệp Đưa ví dụ tệp Sothuc.inp để học sinh thấy cấu trúc tệp giúp em thực yêu cầu dễ Cài đặt: Program Baitap3; Var i:integer; x,S:real; f1,f2:text; Begin assign(f1,'Sothuc.inp'); reset(f1); assign(f2,'Sothuc.out'); rewrite(f2); s:=0; while not eof(f1) begin skkn readln(f1,x); S:=S+x; end; write(f2,S:6:2); close(f1); close(f2); End Sau thực chương trình đưa tệp Sothuc.out để em quan sát: Tệp Sothuc.out thu sau thực chương trình: 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, thân, đồng nghiệp nhà trường Qua nhiều năm giảng dạy Tin học 11 thấy làm bài tập Chương V Tệp thao tác với tệp học sinh thường gặp phải những lỗi giống Để khắc phục, năm 2018 – 2019 và năm 2019 - 2020 đã vận dụng các phương pháp giảng dạy thì kết quả đã khác rất nhiều, học sinh đã hiểu bài và làm bài tập tốt Các lỗi thường gặp các em đã sửa được nhất là những em say mê với môn học, tham gia đội tuyển học sinh giỏi môn tin của trường các kỹ thao tác với tệp là rất quan trọng Các em vận dụng kiến thức thực hành với ngơn ngữ lập trình khác C, C++ Kết thể qua bảng liệt kê tỷ lệ kiểm tra nội dung kiến thức chương V Tệp thao tác với tệp hai lớp có chất lượng tương đương học sinh lớp11A1 11A2 trường THCS THPT Nghi Sơn, lớp 11A1 áp dụng biện pháp đề tài lớp 11A2 không áp dụng: Lớp Sĩ số Điểm < 11A1 43 Số lượng 11A2 42 Điểm

Ngày đăng: 18/02/2023, 16:29

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w