Một số bài tập thực hành về cách làm việc với tệp – tiết 39; 40

19 4.5K 0
Một số bài tập thực hành về cách làm việc với tệp – tiết 39; 40

Đ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

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ó lược bớt phần, mục có học sinh 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 bổ sung 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 học Tuy nhiên với tiết tập tập thực hành sách giáo khoa, sách giáo viên chưa có hướng dẫn cụ thể để đạt chuẩn chung 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 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, mang tính chất cá nhân đề xuất, mong 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ú 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 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)  nhập từ bàn phím Output: kết (dữ liệu ra)  in hình Đến này: Input: giá trị n (dữ liệu vào)  lấy (đọc) từ file liệu Output: kết (dữ liệu ra)  đưa (ghi) vào file kết Khi để giải toá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.I NP BT01.PAS var n,i:byte; BT01.OU T 120 gt:longint; f:text; 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' ); Giải thích: liệu (giá trị n) lấy từ file ‘BT01.INP’ cho chương rewrite(f); trình BT01.PAS, sau tính kết (n!) ta ghi kết vào file writeln(f,gt); close(f); ‘BT01.OUT’ Mô hình quan hệ chung File Input end File Chương trình File Output Giáo viên trình bày cách đọc ghi file Một toán mà liệu đọc ghi vào file thường có thao tác sau: Khai báo biến file Đọc liệu file Tính toá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 toà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 sau: đầu đọc đọc 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 thủ tục Read, đ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 việc in kết hình (chỉ khác thay ta thực in kết ghi thứ vào file 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 toán 1, 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 Bài giải tham khảo: var a:array[1 100] of integer; 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[...]... ra cách làm việc khoa học của tệp, các em tỏ ra hăng hái làm việc, chủ động viết chương trình thực hiện các bài toán làm việc với tệp mà giáo viên đưa ra Số liệu cụ thể khi thực hiện đề tài : Kết quả của lớp 11A8 ( sĩ số 42) Số HS làm đúng Số HS làm sai Số HS không có lời giải Bài 1 30 8 4 Bài 2 28 10 4 Bài 3 32 7 3 Bài 4 32 6 4 Số HS làm đúng Số HS làm sai Số HS không có lời giải Bài 5 35 7 3 Bài. .. end Bài toán 8: Cho dãy số nguyên Yêu cầu: Hãy cho biết dãy số đó có số nguyên tố nào hay không? Dữ liệu vào từ file ‘BT08.INP’ mỗi dòng là một dãy số (có tối đa 100 phần tử; mỗi phần tử có giá trị tuyệt đối không quá 109; hai phần tử cách nhau một khoảng trắng) Kết quả ghi vào file ‘BT08.OUT’ tương ứng một dãy số trong file input là một dòng ghi số 1 nếu dãy đó có số nguyên tố, ngược lại ghi 0 13 Bài. .. lập kết quả Kết quả là có rất nhiều em đã dễ dàng vận dụng các thao tác với tệp để làm việc với tệp để giải các bài toán tệp tiếp theo II ĐỀ XUẤT 1 VỚI SỞ Phổ biến rộng rãi các SKKN có giải để các giáo viên trong tỉnh tham khảo và học tập 2 VỚI TRƯỜNG Tổ chức các lớp ôn tập theo chuyên đề, ôn luyện, kiểm tra, đánh giá việc ôn tập của học sinh Sáng kiến kinh nghiệm của tôi chắc hẳn không thể tránh khỏi... Hiện nay, ngôn ngữ lập trình Pascal đã trở thành ngôn ngữ lập trình phổ biến nhất trên thế giới sử dụng trong lĩnh vực giảng dạy Đề tài này mang tính thực tiễn rất cao cụ thể là: trong tiết học bài tập các em học sinh đã chủ động để tìm, nắm vững cách làm việc với tệp qua đó tiếp tục giải quyết được các bài toán lập trình tiếp theo Các em đã khá rõ ràng về sự độc lập dữ liệu, độc lập chương trình (Code),... close(f); close(g); end 14 Bài toán 9: Cho hai số nguyên dương a và b Yêu cầu: Hãy tìm ước chung lớn nhất của hai số đó! Dữ liệu vào từ file ‘BT09.INP’ gồm nhiều dòng, mỗi dòng chứa một cặp giá trị của a và b (a, b≤109; hai số cách nhau một khoảng trắng) Kết quả ghi vào file ‘BT09.OUT’ tương ứng với mỗi dòng trong file input là một kết quả Ví dụ: BT09.INP BT09.OUT 26 2 7 10 1 Bài giải tham khảo: var a,b:longint;... nhất của 2 số nguyên dương a và b} repeat if (a>b) then a:=a-b; if (a

Ngày đăng: 06/06/2016, 11:44

Từ khóa liên quan

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

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

Tài liệu liên quan