1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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 56 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

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 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.1 Cơ sở lý luận sáng kiến kinh nghiệm 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 .3 2.3.2 Hướng dẫn tạo tệp văn .5 2.3.3 Các 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 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 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 dữ 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 dữ 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, 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 Vì nhiều thao tác so với kiểu dữ liệu khác mà em cảm thấy phức tạp, khó hiểu, khó vận dụng vào tập dẫn đến 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 dữ liệu tệp (file) rút số kinh nghiệm để giúp học sinh làm tập chương V “Tin học 11” có hiệu nên 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 dữ 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 những 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 tránh lỗi thường gặp làm tập tệp “chương V - Tin học 11” Từ em vận dụng u thích làm 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 dữ liệu tệp (file) từ phân tích tỉ mỉ những 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 q trình giáo dục sở tri giác trực tiếp hoạt động sư phạm cho ta những tài liệu sống thực tiễn giáo dục để khái quát nên những 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 dữ liệu thuộc kiểu dữ liệu xét lưu trữ nhớ (RAM) dữ liệu bị tắt máy Với số tố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)3 Xét theo cách tổ chức dữ 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 dữ 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ử dữ 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 dữ liệu từ tệp, ghi dữ 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 thường mắc lỗi làm tập với kiểu dữ liệu tệp Các em không hiểu chất, ý nghĩa 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 kiểu dữ liệu em học Bài tập tương đối phức tạp với mức học em Các em không hiểu vai trò, ý nghĩa 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] Thực tế giảng dạy đặt vấn đề: làm để học sinh hiểu tránh những sai lầm thường gặp đ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 dữ liệu vào, tệp lưu trữ chương trình, tệp dữ 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 dữ liệu Chứa biến điều khiển việc đọc/ghi dữ liệu tệp Mở tệp để ghi dữ liệu Tệp chương trình Ghi dữ liệu vào tệp Đọc dữ liệu từ tệp vào biến Đóng tệp Sau học sinh bước đầu hình dung việc tương tác giữa 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 dữ liệu kiểu tệp ta phải sử dụng biến tệp Việc đọc (ghi) dữ 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 hoặc 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 dữ 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 hoặc dữ liệu vào nên cách mở tệp khác Mở tệp để đọc dữ liệu ta dùng thủ tục: Reset (); VD: Để đọc dữ liệu từ tệp ‘songuyen.inp’ ta viết sau: Assign (f1,’songuyen.inp’); Reset(f1); Mở tệp để ghi dữ 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 dữ 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] Read (f1,x,y,z); Thủ tục dùng để ghi dữ 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 dữ liệu vào tệp, hệ thống thực hoàn tất việc ghi dữ liệu tệp 2.3.2 Hướng dẫn tạo tệp văn Tệp dữ liệu vào (tệp Input) tệp dữ 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 giữa 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 dữ 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 dữ liệu tệp, em chưa hiểu cách tạo tệp kiểm tra dữ liệu tệp, nên để thuận tiện cho việc xem kết thao tác ghi dữ liệu vào tệp đọc dữ liệu từ tệp có đúng hay khơng trước hết nên hướng dẫn em cách tạo tệp xem dữ liệu tệp Pascal với những 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, mỗi 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 mỗi số cách dấu cách trống Bước 4: Lưu tệp lại với tên ‘Songuyen.pas’ (có thể khơng gõ phần đ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 số ngun, mỡi 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 dữ liệu theo đúng cấu trúc đề yêu cầu; Bước 3: Lưu dữ liệu đúng 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: 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 dữ 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 số ngun, mỡi 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 dữ liệu đọc từ file Input đúng 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 2.3.3 Các 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 chương trình đọc dữ liệu từ tệp văn Songuyen.inp Tính tổng phần tử tệp đưa dữ liệu tệp Songuyen.out Tệp văn Songuyen.inp có cấu trúc: - Dòng đầu ghi số nguyên N số phần tử tệp; - Dòng thứ hai gồm đúng N số nguyên Mỗi số cách dấu cách trống Tệp văn Songuyen.out có cấu trúc: Một số 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; for i:=1 to N begin read(f1,x); S:=S+x; end; Write(f2,S:4); close(f1); End Câu hỏi 1: Em nhập chương trình chạy thử Kiểm tra tệp Songuyen.out cho kết nào? Hướng dẫn: Tệp Songuyen.out tệp trống khơng có dữ liệu Câu hỏi 2: Tìm lỡi chương trình dẫn đến tệp songuyen.out tệp khơng có dữ liệu? Ở câu hỏi phần lớn khơng tìm nguyên nhân quên đó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 hoặ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 dữ 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: Bài tập 2: Khắc phục lỗi đọc ghi dữ liệu khơng đúng chưa hiểu rõ lệnh: read readln; write writeln Cho tệp văn Dulieu.inp có cấu trúc: - Dịng đầu ghi số ngun N số phần tử tệp - Dòng thứ hai gồm đúng N số nguyên Mỗi số cách dấu cách trống a Viết chương trình đọc dữ liệu từ tệp Dulieu.inp ghi dữ liệu vào tệp Dulieua.out (tệp Dulieua.out có cấu trúc: dịng lần lượt số nguyên tệp Dulieu.inp, mỗi số cách dấu cách trống) b Viết chương trình đọc dữ liệu từ tệp Dulieu.inp 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 số nguyên tệp Dulieu.inp, mỗi số 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: 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); dữ 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 dịng lần lượt số nguyên tệp Dulieu.inp, mỗi số cách 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 số nguyên tệp Dulieu.inp, mỗi số 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: 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 dữ 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 số phần tử tệp - Dòng thứ hai gồm đúng N số nguyên Mỗi số cách 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 dữ 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 mỗi 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 Sothuc.inp có cấu trúc: Gồm số thực, mỡi dịng số Viết chương trình đọc dữ liệu từ tệp, tính đưa tổng số tệp Kết đư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 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 dữ 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 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 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 năm 2019 - 2020 vận dụng phương pháp giảng dạy kết khác nhiều, học sinh hiểu làm tập tốt Các lỗi thường gặp em sửa những em say mê với môn học, tham gia đội tuyển học sinh giỏi môn tin trường kỹ thao tác với tệp 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 giữa 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: 13/07/2020, 08:35

Xem thêm:

TỪ KHÓA LIÊN QUAN

Mục lục

    Người thực hiện: Nguyễn Thị Lập

    DANH MỤC CHỮ VIẾT TẮT

    1.1 Lý do chọn đề tài

    1.2 Phạm vi và đối tượng nghiên cứu

    1.3 Mục đích của đề tài

    1.4 Phương pháp nghiên cứu

    2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM

    2.1 Cơ sở lý luận của sáng kiến kinh nghiệm

    2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm

    2.3 Các giải pháp đã sử dụng để giải quyết vấn đề

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w