Sáng kiến kinh nghiệm Hướng dẫn thực hành kiểu tệp trên Pascal dành cho học sinh lớp 11

docx 44 trang sk11 19/07/2024 990
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Hướng dẫn thực hành kiểu tệp trên Pascal dành cho học sinh lớp 11", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Hướng dẫn thực hành kiểu tệp trên Pascal dành cho học sinh lớp 11

Sáng kiến kinh nghiệm Hướng dẫn thực hành kiểu tệp trên Pascal dành cho học sinh lớp 11
 SỞ GIÁO DỤC – ĐÀO TẠO SÓC TRĂNG 
 TRƯỜNG THPT NGÃ NĂM
 SÁNG KIẾN KINH NGHIỆM
 HƯỚNG DẪN THỰC HÀNH KIỂU TỆP 
TRÊN PASCAL DÀNH CHO HỌC SINH
 LỚP 11
 HUỲNH THỊ HẢO
 `
 Tháng 3 năm 2017 3
 Phần 1. MỞ ĐẦU
 1.1. Lí do chọn đề tài
 Pascal là một môn học không hề dễ đối với tất cả mọi người, không nhiều 
học sinh yêu thích môn học này. Tuy nhiên với học sinh, việc học ngôn ngữ lập 
trình Turbo Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao, qua đó 
giúp các em hình dung được sự ra đời, cấu tạo, hoạt đông cũng như ích lợi của các 
chương trình hoạt động trong máy tính, các máy tự động Qua đó các em có thêm 
một định hướng, một niềm đam mê về tin học, về nghề nghiệp mà các em chọn sau 
này.
 Trong quá trình giảng dạy môn tin học 11 tôi đã rút ra nhiều bài học kinh 
nghiệm cho bản thân qua từng tiết dạy và luôn mong muốn học sinh có thể vận 
dụng hiệu quả máy tính để phục vụ cho việc tiếp thu kiến thức cho bản thân. Vì vậy 
với điều kiện phòng máy nhà trường hiện có tôi đã luôn tạo điều kiện cho các em 
học tập trực quan trên máy tính không chỉ các tiết thực hành mà còn cả đa số các 
tiết lí thuyết. Tuy nhiên ở chương V. Tệp và thao tác với tệp, sẽ rất khó cho học 
sinh trong việc tự mình thực hành được một bài tập về kiểu tệp nếu không có sự 
hướng dẫn của giáo viên bởi sách giáo khoa chưa làm rõ nhiều vấn đề và cũng 
không hướng dẫn học sinh thực hành. Bởi việc chạy được một chương trình có sử 
dụng kiểu tệp phải đảm bảo nhiều yếu tố đi kèm. Không như các chương trình 
không sử dụng kiểu tệp mà học sinh đã học trước đó thì chỉ cần gõ đầy đủ nội dung 
một chương trình sách giáo khoa viết thì nó sẽ chạy được và thế là có thể xem kết 
quả còn với kiểu tệp thì không. Để cho học sinh có thể hiểu được sâu sắc một số 
vấn đề cơ bản khi làm việc với kiểu tệp và tạo hứng thú cho các em ở nội dung này 
tôi đã tìm hiểu, xây dựng và áp dụng sáng kiến kinh nghiệm “Hướng dẫn thực hành 
kiểu tệp trên Pascal dành cho học sinh lớp 11”. 5
dục do giáo viên tác động đến bằng một số câu hỏi và bài tập kiểm tra. Thực 
nghiệm sư phạm là so sánh kết quả tác động của giáo viên lên một nhóm lớp - gọi 
là nhóm thực nghiệm - với một nhóm lớp tương đương không được tác động 
(dạy, giáo dục theo cách bình thường vẫn được giáo viên phổ thông sử dụng) - gọi 
là nhóm đối chứng. Tuy nhiên vì trong năm học này tôi chỉ dạy Tin học 11 ở lớp 
11T nên đây là nhóm đối chứng (khi chưa tác động) và vừa là nhóm thực nghiệm 
(sau khi đã tác động).
 - Phương pháp thống kê: sau khi thực nghiệm kết quả cần được xử lí bằng 
toán học thống kê. Qua bảng thống kê sẽ phản ánh được một cách chi tiết kết quả 
đạt được qua quá trình thực nghiệm. Từ đó người nghiên cứu có thể đánh được vấn 
đề mình đang nghiên cứu và đưa ra phương pháp dạy học tốt hơn.
 - Phương pháp so sánh: dùng để đối chiếu giữa các vấn đề nghiên cứu nhằm 
làm bật lên tác dụng của cách thực hiện đối với từng vấn đề. Qua đó giúp người 
học hiểu rõ hơn nội dung được lĩnh hội. Khi nghiên cứu đề tài này tôi đã trình bày 
theo hình thức: chương trình trên Pascal, kết quả trên màn hình, nội dung trên tệp 
được ghi hoặc đọc (tất cả đều được chụp từ màn hình nhằm mục đích giúp người 
đọc dễ phân biệt và so sánh).
 - Phương pháp phân tích: ở mỗi vấn đề được nghiên cứu tôi đã sử dụng 
phương pháp phân tích để làm rõ nội dung. Phương pháp phân tích là đặc biệt quan 
trọng và đó chính là chìa khóa để mở ra những kiến thức mới nhưng dễ tiếp thu 
hơn.
 1.5. Tính mới của đề tài
 Đề tài nhằm hướng dẫn học sinh lớp thực hành các bài tập đơn giản về kiểu 
tệp văn bản trên Pascal, giúp các em giải quyết được 2 thao tác cơ bản đối với tệp 
là đọc và ghi tệp. Những điều này sách giáo khoa chỉ nói chung chung, chưa cụ thể 
rõ ràng và cũng không hướng dẫn học sinh thực hành bài tập về kiểu tệp (cách khởi 
tạo một tệp để đọc, ghi thêm dữ liệu vào tệp, ghi tất cả input và output của các lần 7
Phần 2: NỘI DUNG
 2.1. Cơ sở lí luận
 2.1.1. Pascal và kiểu tệp văn bản
 Pascal do Niklaus Wirth phát triển dựa trên Algol năm 1970. Pascal là tên 
nhà toán học và triết học người Pháp Blaise Pascal. Cho đến nay Pascal vẫn được 
dùng để giảng dạy về lập trình trong nhiều trường trung học và đại học trên thế 
giới. Đó là ngôn ngữ cho phép mô tả thuật toán thuận tiện.
 Trong chương trình tin học 11 học sinh được làm quen với Pascal. Trong đó 
kiểu tệp văn bản là một trong những nội dung được đề cập đến. Tệp văn bản là tệp 
mà dữ liệu được ghi dưới dạng các kí tự theo mã ASCII. Trong tệp văn bản, dãy kí 
tự được kết thúc bởi kí tự xuống dòng hay kí tự kết thúc tệp tạo thành một dòng. 
Tất cả các dữ liệu thuộc các kiểu dữ liệu mà học sinh đã được học đều được lưu trữ 
trên 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). Với lợi ích của kiểu tệp được đề cập ở trên thì việc sử dụng được 
kiểu tệp một cách thành thạo trong quá trình lập trình là một điểu thật sự quan trọng 
và cần thiết.
 2.1.2. Thao tác với tệp
 Qua quá trình tìm hiểu từ sách giáo khoa tin học 11, sách giáo viên tin học 
11, quyển “Phương pháp giải các bài toán trong tin học” của thạc sĩ Trần Đức 
Huyên tôi xin trình bày những kiến thức cơ bản về kiểu tệp văn bản để hỗ trợ cho 
học sinh trong quá trình giải (thực hành) các bài toán đơn giản về kiểu dữ liệu này.
 2.1.2.1. Khai báo kiểu tệp văn bản
 Khai báo biến tệp để sau đó có thể thực hiện các thao tác với tệp thông qua 
biến tệp.
 Cú pháp khai báo: var : text; 
 Ví dụ: var f: text; 9
 Ví dụ: assign(f,‟e:\tong2so.doc‟); 
 rewrite(f);
 2.1.2.4. Ghi dữ liệu vào tệp
 Việc ghi dữ liệu vào tệp giống như ghi dữ liệu ra màn hình. Câu lệnh dùng 
thủ tục ghi có dạng:
 Write(,);
hoặc
 Writeln(,);
 Trong đó, danh sách kết quả gồm một hoặc nhiều phần tử. Phần tử 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. Trường hợp có 
nhiều phần tử thì các phần tử được ngăn cách bởi dấu phẩy. Khi hai kết quả liền 
nhau cùng là kiểu số thì thì cần xen vào giữa hai kết quả này một kết quả trung gian 
là hằng kí tự dấu cách. Ví dụ, write(f, x,„ „,y). Trong đó f là biến tệp, x và y là hai 
biểu thức số. Trước khi gọi thủ tục này, tệp tương ứng với biến tệp phải là đang 
mở. Thủ tục write sẽ ghi lần lượt các kết quả theo danh sách kết quả vào tệp kể từ 
vị trí hiện thời của con trỏ tệp.
 2.1.2.5. Ghi thêm dữ liệu vào tệp đã có nội dung
 Đây là một nội dung mới không được đề cập trong chương trình sách giáo 
khoa nhưng tôi nghĩ nó thật sự cần thiết trong nhiều tình huống cụ thể.
 Để ghi thêm dữ liệu vào tệp đã có nội dung ta dùng thủ tục append có cú
pháp:
 append(); 
 Ví dụ: append(f);
 Sau khi gọi thủ tục append thì tệp sẽ sẵn sàng để ghi dữ liệu mới vào.
 Lưu ý: Trong cùng một chương trình nếu muốn ghi thêm dữ liệu thì không
thể đồng thời sử dụng thủ tục rewrite và append vì khi dùng rewite nội dung tệp sẽ 
bị xóa (nếu tệp đã có nội dung). Vì vậy mục đích ghi thêm dữ liệu mới vào sẽ 
không được thực hiện như ý muốn. 11
 read(f, s, x); 
 writeln(s); 
 writeln(x); 
 readln
 end.
 Chương trình mắc lỗi “Invalid numberic format” vì sau khi đọc được s = „tin 
ho‟ , tiếp theo đọc dữ liệu cho x thì mắc lỗi thì mắc lỗi vì „c‟ không là dạng số. Nếu 
thay lại khai báo s:string[7] hoặc string[8] thì chương trình không mắc lỗi khi thực 
hiện đọc tệp, kết quả trên màn hình là
 Với biến kiểu xâu, thủ tục read sẽ đọc các kí tự trên một dòng vào biến (loại 
trừ các kí tự đánh dấu hết dòng hoặc hết tệp). Số kí tự đọc vào biến xâu bằng độ dài 
đã khai báo của xâu.
 Với biến kiểu nguyên hoặc thực, thủ tục read sẽ không đọc dấu cách, dấu tab 
hoặc dấu xuống dòng đứng trước xâu chữ số. Nếu xâu chữ số không phù hợp với 
kiểu của biến tương ứng thì xuất hiện lỗi vào/ra (I/O). Trong trường hợp ngược lại, 
giá trị kiểu số tương ứng của xâu chữ số sẽ được gán cho biến. Lệnh read tiếp theo 
sẽ sẽ được bắt đầu bằng dấu cách, dấu tab, hoặc kí tự hết dòng và chúng cũng lại 
được bỏ qua. Những dấu này vạch định cho các xâu chữ số.
 2.1.2.8. Đóng tệp
 Cú pháp: close();
 Trong cú pháp, biến tệp đã được gắn với một tệp đang mở bằng reset, rewrite 
hoặc append ở thời điểm trước đó để mở tệp. Sau lệnh close, tệp gắn với biến tệp 
được hoàn thành cập nhật và sau đó được đóng lại. Chương trình trả lại quyền quản 
lí tệp cho hệ điều hành. Nếu thực hiện ghi dữ liệu vào tệp mà không đóng tệp thì 
không có dữ liệu nào được ghi hoặc chỉ ghi được một phần vào tệp, nguyên nhân 13
 - Nội dung sách giáo khoa không có bài tập thực hành cho nội dung này 
đồng thời cũng không nêu ra các yếu tố để một chương trình có sử dụng kiểu tệp 
chạy được trên máy;
 - Phần mở rộng của các tệp ghi trong sách giáo khoa xa lạ với học sinh. Do 
đó, nếu chạy được chương trình thì không biết cách để kiểm tra kết quả;
 - Thiếu kiến thức căn bản để viết một chương trình đơn giản;
 - Không có niềm đam mê dành cho môn học.
 2.3. Biện pháp tiến hành
 Giáo viên giới thiệu các kiến thức cơ bản về kiểu tệp văn bản trong Pascal 
(đã được trình bày ở phần cơ sở lí luận). Vì đây là bài học có nhiều nội dung mới 
nên khó tránh khỏi việc học sinh không theo kịp bài do đó giáo viên phô tô cho mỗi 
học sinh một bản.
 Sau khi trình bày xong phần lý thuyết, giáo viên phát cho mỗi học sinh một 
phiếu bài tập thực hành kiểu tệp văn bản (phụ lục 1). Vì học sinh chưa từng thực 
hành một bài tập nào về kiểu dữ liệu này nên với từng ví dụ giáo viên nhắc lại kiến 
thức và yêu cầu học sinh xem lại lý thuyết đồng thời đặt các câu hỏi gợi mở, các 
câu hỏi yêu cầu học sinh so sánh các vấn đề mà dễ gây nhầm lẫn cho các em. Trong 
quá trình thực hành giáo viên yêu cầu học sinh ghi vào phiếu bài tập mỗi khi hoàn 
thành xong một bài. Cụ thể biện pháp tiến hành hướng dẫn thực hành các bài tập 
như sau:
 2.3.1. Ghi dữ liệu vào tệp
 2.3.1.1. So sánh thủ tục ghi dữ liệu ra màn hình và thủ tục ghi tệp
 Học sinh có thể dễ dàng trả lời thông qua việc so sánh cú pháp giữa 2 thủ 
tục này. Giống nhau: đều dùng tên thủ tục là write hoặc writeln, các phần tử của 
danh sách kết quả; khác nhau: thủ tục ghi tệp có thêm biến tệp.
 Tuy nhiên giáo viên cần nhấn mạnh cho học sinh nội dung sau: nếu muốn 
ghi dữ liệu vào tệp trên nhiều hàng thì cần dùng thủ tục writeln (ghi xong xuống 15
 close(f); 
 readln
 end.
 Kết quả sau khi thực hiện chương trình
 Nội dung được ghi vào tệp „e:\tong2so.doc‟
 Như vậy, nếu muốn ghi nhiều dòng dữ liệu vào tệp thì cứ thêm thủ tục 
Writeln(,);
 2.3.1.2. Ghi vào tệp tất cả dữ liệu của các lần thực hiện chương trình
 GV đặt ra cho các em các vấn đề sau:
 - Nội dung cần ghi của các lần thực hiện chương trình có lần lượt được ghi 
vào tệp không? Tại sao?
 - Làm thế nào để có thể ghi được tất cả các dữ liệu (kết quả thực hiện 
chương trình) của các lần thực hiện chương trình?
 Điều này trong sách giáo khoa hoàn toàn không đề cập tới nhưng nếu không 
tìm ra lời giải đáp cho HS thì không thể làm cho học sinh hiểu rõ về ghi tệp được. 
Do đó tôi nhận thấy giải quyết vấn đề này là thực sự cần thiết.
 Câu hỏi thứ nhất học sinh có thể trả lời được như sau: tệp chỉ ghi kết quả 
của lần thực hiện chương trình sau cùng. Vì sau mỗi lần thực hiện chương trình thủ 
tục rewrite(f) lại được gọi, điều đó có nghĩa là nội dung đã ghi trên tệp sẽ được xóa 
để sẵn sàng cho việc ghi dữ liệu mới.

File đính kèm:

  • docxsang_kien_kinh_nghiem_huong_dan_thuc_hanh_kieu_tep_tren_pasc.docx
  • pdfSáng kiến kinh nghiệm Hướng dẫn thực hành kiểu tệp trên Pascal dành cho học sinh lớp 11.pdf