SÁNG KIẾN KINH NGHIỆM SKKN xây DỰNG một số bài tập THỰC HÀNH với tệp

20 578 0
SÁNG KIẾN KINH NGHIỆM SKKN xây DỰNG một số bài tập THỰC HÀNH với tệp

Đ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ÁNG KIẾN KINH NGHIỆM ĐỀ TÀI: "XÂY DỰNG MỘT SỐ BÀI TẬP THỰC HÀNH VỚI TỆP" A PHẦN MỞ ĐẦU I LÝ DO CHỌN ĐỀ TÀI - Hiện phân phối chƣơng trình Tin học THPT có thay đổi giảm tải việc học môn Tin học Có đƣợc lƣợc bớt phần, mục có học sinh khơng phải học mà đọc tham khảo thêm Bên cạnh để đảm bảo đủ số tiết học nên có tiết đƣợc bổ sung nhƣ tiết tập tập thực hành, nhằm đảm bảo cho học sinh nắm rõ hơn, vững phần lý thuyết đƣợc học Tuy nhiên với tiết tập tập thực hành sách giáo khoa, nhƣ sách giáo viên chƣa có hƣớng dẫn cụ thể để đạt đƣợc chuẩn chung nhƣ lý thuyết Thông thƣờng giáo viên linh động dựa vào điều kiện sở vật chất nhà trƣờng, đặc biệt tuỳ vào đối tƣợng học sinh để cung cấp cho học sinh tập nhằm củng cố cho học sinh kiến thức phần lý thuyết học - Tin học 11 modul chƣơng trình tƣơng đối khó hệ thống modul kiến thức Tin học khối THPT Ở học sinh đƣợc làm việc với ngơn ngữ lập trình ngơn ngữ lập trình cụ thể, với thực tiễn sở vật chất trƣờng THPT Đông Sơn sử dụng ngơn ngữ lập trình Pascal để làm việc với học sinh học phần Theo phân phối chƣơng trình, chƣơng 5: Tệp thao tác với tệp Tin học 11 có tiết lý thuyết tiết tập thực hành Phần lý thuyết, sách giáo khoa cung cấp đầy đủ dễ hiểu học sinh Tuy nhiên phần tập thực hành chƣa có Với lý mạnh dạn đề xuất "Một số tập thực hành cách làm việc với tệp" cho tiết 39, 40 nhằm giúp học sinh nắm vững cách làm việc với tệp Tuy dạy dựa vào đối tƣợng học sinh, vào trọng tâm kiến thức chƣơng trình, nhƣng cịn mang tính chất cá nhân đề xuất, mong đƣợc góp ý bạn đọc đồng nghiệp để tiết học trở thành chuẩn chung phân phối chƣơng trình II MỤC ĐÍCH CỦA ĐỀ TÀI Sử dụng toán cụ thể trƣớc hết để học sinh nắm đƣợc cú pháp, ý nghĩa thao tác xử lý tệp Và thông qua ví dụ hƣớng dẩn học sinh sử dụng thục, linh động xử lý liệu tệp III NHIỆM VỤ CỦA ĐỀ TÀI Đƣa số tập tệp để học sinh thảo luận, làm việc qua nắm vững câu thao tác với tệp cách làm việc với tệp Hình thành học sinh kỹ phân tích, xử lý vấn đề liên quan đến kiểu liệu tệp trình lập trình IV ĐỐI TƢỢNG NGHIÊN CỨU Học sinh khối 11 trƣờng THPT ĐÔNG SƠN Sử dụng máy tính để chạy chƣơng trình thao tác với tệp V PHƢƠNG PHÁP NGHIÊN CỨU - Kết hợp thực tiễn giáo dục trƣờng THPT ĐƠNG SƠN - Có tham khảo tài liệu ngơn ngữ lập trình Pascal tài liệu sáng kiến kinh nghiệm B NỘI DUNG I CƠ SỞ LÝ LUẬN Khi học sinh học học Bài 14 - 15: Kiểu liệu tệp - Thao tác với tệp Học sinh có nhiều khó khăn, nhầm lẫn việc xác định thao tác xử lý tệp II NỘI DUNG VÀ GIẢI PHÁP THỰC HIỆN CÁC THAO TÁC VỚI TỆP * Khai báo tệp văn bản: Tệp văn đƣợc khai báo trực tiếp phần khai báo biến: Var :Text; * Mở tệp để ghi liệu: Để mở tệp chuẩn bị lƣu trữ liệu, ta sử dụng thủ tục chuẩn sau đây: ASSIGN(biến tệp, tên tệp); REWRITE(biến tệp); Trong đó: Biến tệp: tên biến tệp khai báo sau từ khóa VAR Tên tệp: Là tên ta chọn để ghi liệu vào đĩa Ví dụ : ASSIGN(f, ‘a:\baitap.txt’); REWRITE(f); {khởi tạo tệp rỗng} Sau thủ tục trên, để tiến hành ghi liệu vào tệp ta dùng thủ tục WRITE(…), WRITELN(… ): Cách viết: WRITE(biến tệp, giá trị cần ghi vào tệp); WRITELN(biến tệp, giá trị cần ghi vào tệp); * Mở tệp để đọc liệu: Để mở tệp chuẩn bị lƣu trữ liệu, ta sử dụng thủ tục chuẩn sau đây: ASSIGN(biến tệp, tên tệp); RESET(biến tệp); Trong đó: Biến tệp: tên biến tệp khai báo sau từ khóa VAR Tên tệp: Là tên ta chọn để ghi liệu vào đĩa Ví dụ : ASSIGN(f, ‘a:\baitap.txt’); RESET(f); Sau thủ tục trên, để tiến hành đọc liệu vào tệp ta dùng thủ tục READ(…), READLN(… ): Cách viết: READ(biến tệp, giá trị cần ghi vào tệp); READLN(biến tệp, giá trị cần ghi vào tệp); * Cuối cùng, ta phải đóng tệp thủ tục: CLOSE(biến tệp); BÀI TẬP Bài toán 1: Cho số nguyên dƣơng n (n≤12) Yêu cầu: tính n! Dữ liệu vào từ file ‘BT01.INP’ chứa giá trị số nguyên dƣơng n Kết ghi vào file ‘BT01.OUT’ kết n! Xác định toán: Input: giá trị n Output: kết n! Giáo viên liên tƣởng cho học sinh: Trƣớc học này: Input: giá trị n (dữ liệu vào)  đƣợc nhập từ bàn phím Output: kết (dữ liệu ra)  đƣợc in hình Đến này: Input: giá trị n (dữ liệu vào)  đƣợc lấy (đọc) từ file liệu Output: kết (dữ liệu ra)  đƣợc đƣa (ghi) vào file kết Khi để giải tốn, ngƣời viết chƣơng trình phải tƣơng tác với file: File chƣơng trình (nếu dùng Pascal có phần mở rộng PAS) File chứa liệu vào (thƣờng ngƣời ta để phần mở rộng INP) File chứa liệu – ghi kết (thƣờng ngƣời ta để phần mở rộng OUT) Quan hệ file toán BT01.PAS BT01.INP var BT01.OUT n,i:byte; gt:longint; f:text; 120 begin assign(f,'BT01.INP'); reset(f); read(f,n); close(f); gt:=1; for i:=2 to n gt:=gt*i; assign(f,'BT01.OUT'); rewrite(f); writeln(f,gt); close(f); end Giải thích: liệu (giá trị n) đƣợc lấy từ file ‘BT01.INP’ cho chƣơng trình BT01.PAS, sau tính đƣợc kết (n!) ta ghi kết vào file ‘BT01.OUT’ Mơ hình quan hệ chung File Chƣơng trình File Input File Output Giáo viên trình bày cách đọc ghi file Một toán mà liệu đƣợc đọc ghi vào file thƣờng có thao tác nhƣ sau: Khai báo biến file Đọc liệu file Tính tốn để có kết Lấy kết ghi vào file Khai báo biến file: Var :text; Var f:text; Ý nghĩa: khai báo biến f có kiểu file văn Đọc liệu file: Assign(,);reset(); Read(,); Hoặc Readln(,); Close(); {dòng 1} assign(f,'BT01.INP');reset(f); {dòng 2} read(f,n); {dòng 3} close(f); Ý nghĩa: Dòng 1: Mở file ‘BT01.INP’ để đọc nội dung Dòng 2: Đọc giá trị số nguyên file ‘BT01.INP’ gán cho biến n Dịng 3: Đóng file ‘BT01.INP’ để an toàn liệu Ghi kết vào file: Assign(,);rewrite(); write(,); Hoặc writeln(,); Close(); {dòng 1} assign(f,'BT01.OUT');rewrite(f); {dòng 2} writeln(f,gt); {dòng 3} close(f); Ý nghĩa: Dòng 1: Mở file ‘BT01.OUT’ để ghi nội dung Dòng 2: Ghi giá trị gt vào file ‘BT01.OUT’ Dịng 3: Đóng file ‘BT01.OUT’ để an tồn liệu  Một vài điều cần quan tâm: Cấu trúc file văn bản: Dữ liệu file văn ký tự (bảng mã ASCII) Có số hàm chuẩn thƣờng dùng đọc/ghi tệp văn là: * Hàm EoLn() : Trả giá trị True trỏ tệp tới cuối dòng * Hàm Eof(): Trả giá trị True trỏ tệp tới cuối tệp Ví dụ hình ảnh mơ tả cấu trúc file văn (chữ in đậm file hiện) File văn Eoln Eoln Eoln Eof Thủ tục đọc file: Read(,) Với thủ tục này, ta hiểu nhƣ sau: đầu đọc đọc lần lƣợt giá trị file gán cho biến có danh sách biến thủ tục, sau đầu đọc khơng thực việc xuống đầu dịng Thủ tục đọc file: Readln(,) Giống nhƣ thủ tục Read, nhƣng điểm khác biệt sau thực đọc gán giá trị cho biến xong đầu đọc xuống đấu dịng Thủ tục ghi file: write(,); writeln(,); Trong thao tác với file giống nhƣ việc in kết hình (chỉ khác thay ta thực in kết hình nhƣ ghi thứ vào file nhƣ vậy) Bài toán 2: Cho số số nguyên dƣơng n (n≤12) Yêu cầu: tính n! số Dữ liệu vào từ file ‘BT02.INP’ chứa giá trị số số nguyên dƣơng n Kết ghi vào file ‘BT02.OUT’ kết n! Mỗi dòng file liệu vào chứa giá trị n tƣơng ứng với giá trị n có kết file liệu Cũng giống nhƣ tốn 1, nhƣng dịng file liệu vào chứa giá trị n tƣơng ứng với giá trị n có kết file liệu Bài giải tham khảo: var n,i:byte; gt:longint; f,g:text; {dùng biến file f g} begin assign(f,'BT02.INP');reset(f); {biến file f để làm file đọc liệu} assign(g,'BT02.OUT');rewrite(g); {biến file g làm file ghi liệu} while( not Eof(f)) {đọc chưa kết thúc file} begin read(f,n); {hoặc readln(f,n) được} gt:=1; for i:=2 to n gt:=gt*i; writeln(g,gt); end; close(f); close(g); end Bài toán 3: Cho dãy số nguyên gồm n phần tử Yêu cầu: Tìm giá trị lớn Dữ liệu vào từ file ‘BT03.INP’ Dòng đầu giá trị n (n≤100) Dòng thứ hai ghi n phần tử dãy (mỗi phần tử có giá trị tuyệt đối không vƣợt 30000, hai phần tử kế cách khoảng trắng) Kết ghi vào file ‘BT03.OUT’ ghi giá trị tìm đƣợc Bài giải tham khảo: var a:array[1 100] of integer; 10 n,i:byte; max:integer; f:text; begin assign(f,'BT03.INP');reset(f); readln(f,n); {Đọc số lượng phần tử gán cho biến n đầu đọc xuống hàng} for i:=1 to n read(f,a[i]); close(f); max:=a[1]; for i:=2 to n if max

Ngày đăng: 23/12/2016, 08:37

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan