1. Trang chủ
  2. » Luận Văn - Báo Cáo

SKKN Một số biện pháp khắc phục lỗi cơ bản của học sinh khi làm các bài tập liên quan đến kiểu dữ li...

15 3 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

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 278,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

SKKN Một số biện pháp khắc phục lỗi cơ bản của học sinh khi làm các bài tập liên quan đến kiểu dữ liệu tệp trong chương trình Tin học 11 ở trường THCS và THPT Nghi Sơn – huyện Tĩnh Gia 1 A PHẦN MỞ ĐẦU I Lý do chọn đề tài Trong chương trình “Tin học 11” các kiểu dữ liệu ở phần đầu là các kiểu dữ liệu chuẩn và kiểu mảng Đó là các kiểu dữ liệu được lưu trữ ở bộ nhớ trong (RAM), đặc điểm của bộ nhớ này là 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, yêu cầu lưu trữ để[.]

Trang 1

A PHẦN MỞ ĐẦU

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

Trong chương trình “Tin học 11” các kiểu dữ liệu ở phần đầu là các kiểu dữ liệu chuẩn và kiểu mảng Đó là các kiểu dữ liệu được lưu trữ ở bộ nhớ trong (RAM), đặc điểm của bộ nhớ này là 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, yêu cầu lưu trữ để xử lý nhiều lần thì dữ liệu kiểu tệp (file) giải quyết tốt nhất các yêu cầu trên Tuy nhiên với thời lượng chương trình dành cho phần tệp không nhiều vì vậy học sinh rất mơ hồ và gặp nhiều lỗi khi viết chương trình với kiểu dữ liệu này Vì nhiều thao tác hơn 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 bài tập dẫn đến mất hứng thú học tập

Từ thực tiễn giảng dạy về kiểu dữ liệu tệp (file) tôi đã rút ra một số kinh nghiệm trong khi hướng dẫn các em làm bài tập ở chương V “Tin học 11” có

hiệu quả tôi viết sáng kiến kinh nghiệm: “Một số biện pháp khắc phục lỗi cơ bản của học sinh khi làm các bài tập liên quan đến kiểu dữ liệu tệp trong chương trình Tin học 11 ở trường THCS và THPT Nghi Sơn – huyện Tĩnh Gia”.

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

1 Phạm vi nghiên cứu: Trong đề tài này tôi chỉ xây dựng và đề xuất một số biên pháp khắc phục lỗi và hướng dẫn học sinh làm một số bài tập liên quan đến kiểu dữ liệu tệp trong chương trình Tin học 11

2 Đối tượng nghiên cứu:

Học sinh khối 11 trường THCS và THPT Nghi Sơn – Tĩnh Gia – Thanh Hóa

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

Giúp học sinh hiểu, nắm vững và tránh được các lỗi thường gặp khi làm bài tập về tệp trong “chương V - Tin học 11” Từ đó các em có thể vận dụng và yêu thích làm các bài tập có sử dụng kiểu dữ liệu tệp

Trang 2

B NỘI DUNG

I Cơ sở lý luận

Tất cả các dữ liệu thuộc các kiểu dữ liệu đã xét đều được lưu trữ ở 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)

Xét theo cách tổ chức dữ liệu, có thể phân tệp thành hai loại: Tệp văn bản và tệp có cấu trúc (trong chương trình Tin học 11 chỉ xét đến tệp văn bả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ự 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 [1]

Tệp là một kiểu dữ liệu có cấu trúc Định nghĩa của tệp có phần nào giống mảng ở chỗ chúng đều là tập hợp của các phần tử dữ liệu có cùng kiểu Song mảng được định nghĩa và khai báo trong chương trình với số phần tử đã xác định còn số phần tử của tệp không được xác định khi định nghĩa

Để có thể 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 bản bao gồm:

- Gắn tên tệp, mở tệp để đọc và mở tệp để ghi;

- Đọc dữ liệu từ tệp, ghi dữ liệu vào tệp;

- Đóng tệp

II Thực trạng của vấn đề

Khi dạy “Chương V-Tin học 11” tại trường THCS và THPT Nghi Sơn tôi nhận thấy các em rất lúng túng và thường mắc lỗi khi 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 khi thao tác với tệp nên khi viết chương trình thường mắc lỗi

Thực tế giảng dạy đặt ra vấn đề: làm thế nào để học sinh hiểu bài và tránh được những sai lầm thường gặp là điều quan trọng Tuy nhiên, để giải quyết vấn

đề này là không đơn giản Nên tôi đã áp dụng SKKN: “Một số biện pháp khắc phục lỗi cơ bản của học sinh khi làm các bài tập liên quan đến kiểu dữ liệu

Trang 3

tệp trong chương trình Tin học 11 ở trường THCS và THPT Nghi Sơn – huyện Tĩnh Gia” vào giảng dạy “Chương V-Tin học 11”.

III Nguyên nhân

Học sinh không nhớ kiến thức cũ để giải quyết các bà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

IV Các biện pháp tiến hành để giải quyết vấn đề

Các bài tập giúp học sinh rèn luyện kỹ năng thao tác với tệp và tránh những lỗi hay gặp.

1 Hướng dẫn học sinh cách tạo tệp văn bản

Cách 1: Tạo tệp có đuôi Pas

Khi vừa mới làm quen với kiểu dữ liệu tệp, các em chưa hiểu được cách tạo tệp và kiểm tra dữ liệu trong tệp, vậy nên để thuận tiện cho việc xem kết quả của thao tác ghi dữ liệu vào tệp và đọc dữ liệu ra từ tệp có đúng hay không trước hết nên hướng dẫn các em cách tạo tệp và xem dữ liệu trong tệp ngay trên Pascal với những tệp có phần đuôi là Pas

Bài tập: Hãy tạo tệp ‘Songuyen.pas’ để lưu trữ các số nguyên từ 1 đến 10, mỗi số cách nhau ít nhất một 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 các số nguyên từ 1 đến 10 mỗi số cách nhau một dấu cách trống

Bước 4: Lưu tệp lại với tên là ‘Songuyen.pas’ (có thể không gõ phần đuôi, Pascal tự mặc định đuôi là Pas)

Hướng dẫn học sinh thực hiện trên máy theo các bước nêu trên, sau

đó hướng dẫn học sinh mở tệp ra để xem kết quả:

Trang 4

Cách 2: Tạo tệp bằng Notepad:

Hướng dẫn học sinh tạo tệp bằng Notepad

Bài tập : Hãy tạo tệp ‘dulieu.inp’ có cấu trúc bằng Notepad có cấu trúc:

- Gồm một dòng lần lượt là các số nguyên, mỗi số cách nhau ít nhất một 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 đề bài yêu cầu;

Bước 3: Lưu dữ liệu đúng tên tệp cả phần đầu và phần mở rộng

Hướng dẫn học sinh thực hiện trên máy theo ba bước thực hiện tạo tệp theo yêu cầu bài tập:

Ví dụ một tệp tạo theo cấu trúc bài ra:

Cách 3: Tạo tệp bằng viết chương trình:

Có thể hướng dẫn học sinh viết một chương trình tạo một tệp văn bản bằng cách nhập dữ liệu từ bàn phím

Bài tập: Em hãy viết chương trình tạo tệp ‘dulieu.inp’ có cấu trúc:

Trang 5

Gồm một dòng lần lượt là các số nguyên, mỗi số cách nhau ít nhất một 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 do begin

read(x);

write(f,x,' ');

end;

close(f);

readln; End.

2 Khắc phục lỗi quên đóng tệ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ử trong tệp và đưa dữ liệu ra 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 nhau một dấu cách trống

Tệp văn bản Songuyen.out có cấu trúc: Một số duy nhất ghi tổng N phần tử

Ví dụ:

5

1 2 6 8 3

20

Trang 6

Đưa ra ví dụ một tệp Songuyen.inp để học sinh thấy rõ cấu trúc của 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 do

begin

read(f1,x);

S:=S+x;

end;

Write(f2,S:4);

close(f1);

End.

Trang 7

Câu hỏi 1: Em hãy nhập chương trình trên 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 là tệp trống không có dữ liệu

Câu hỏi 2: Tìm lỗi trong chương trình dẫn đến tệp songuyen.out là tệp không có dữ liệu?

Ở câu hỏi này phần lớn không tìm được nguyên nhân là do quên đóng tệp f2

Chú ý cho học sinh: Mỗi khi thao tác với tệp, khi làm việc với tệp ngoài gán

tên tệp và mở tệp (để đọc hoặc để ghi) thì sau khi làm việc xong phải đóng tệp Nếu quên đóng tệp thì khi chạy chương trình sẽ không báo lỗi, nhưng không thể ghi dữ liệu vào tệp Vì vậy chương trình trên cần thêm lệnh đóng tệp f2 như 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 do

Trang 8

read(f1,x);

S:=S+x;

end;

Write(f2,S:4);

close(f1);

close(f2);

End.

Sau khi sửa lỗi quên đóng tệp thì tệp Songuyen.out như sau:

3 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

Bài tập 2: 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 nhau 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 nhau 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)

Trang 9

Hướng dẫn:

Đưa ra một ví dụ tệp văn bản Dulieu.inp để học sinh thấy rõ cấu trúc của tệp:

Hướng dẫn:

Đưa ra hai chương trình cài đặt của câu a và câu b:

Program Baitap2a;

Var i, x, N:integer;

f1,f2:text;

Begin

assign(f1,'Dulieu.inp');

reset(f1);

assign(f2,'Dulieua.out');

rewrite(f2);

readln(f1,N);

for i:=1 to N do begin

read(f1,x);

write(f2,x:3);

end;

close(f1);

close(f2);

End.

Program Baitap2b;

Var i, x, N:integer;

f1,f2:text;

Begin

assign(f1,'Dulieu.inp'); reset(f1);

assign(f2,'Dulieub.out'); rewrite(f2);

readln(f1,N);

for i:=1 to N do begin

read(f1,x);

writeln(f2,x:3);

close(f1);

close(f2);

End.

Trang 10

Câu hỏi 1: Hãy quan sát hai chương trình cài đặt và giải thích vì sao khi ghi 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 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 nhau 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 ra hai tệp Dulieua.out và Dulieub.out sau khi thực hiện chương trình để giải thích rõ hơn để học sinh phân biệt được khi nào cần sử dụng câu lệnh write

và writeln:

Tệp văn bản Dulieua.out:

Tệp văn bản Dulieub.out:

Câu hỏi 2: Hãy quan sát trong chương trình cài đặt “Baitap2a” đoạn lệnh

đọc dữ liệu từ tệp giải thích vì sao khi đọc số phần tử của tệp N thì dùng câu

lệnh Readln (readln(f1,N);) và khi đọc các phần tử của tệp thì 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:

Trang 11

- 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 nhau một dấu cách trống

Nên sau khi đọc số phần tử của tệp N thì con trỏ chuột phải nằm ở đầu dòng

tiếp theo để đọc tiếp dữ liệu vì vậy dùng câu lệnh Readln (readln(f1,N);)

Các phần tử của tệp nằm trên một dòng nên sau khi đọc mỗi phần tử của tệp con trỏ chuột phải nằm trước phần tử tiếp theo cùng dòng để đọc tiếp cho tới hết

vì vậy 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 các 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 ra tổng các số trong tệp Kết quả đưa ra tệp Sothuc.out

Hướng dẫn:

Một số câu hỏi hướng dẫn học sinh trước khi viết chương trình:

Câu hỏi 1: Số lượng phần tử của tệp đã biết trước chưa?

Trả lời: Số lượng phần tử của tệp chưa biết trước

Câu hỏi 2: Khi chưa biết số lượng phần tử của tệp để thao tác đọc/ ghi với tệp

văn bản thường sử dụng hàm chuẩn nào

Trả lời: Hàm eof(<biến tệp>) trả về giá trị true nếu con trỏ tệp đang chỉ tới cuối tệp

Câu hỏi 3: Em hãy viết đoạn lệnh đọc dữ liệu từ tệp Sothuc.inp và tính tổng các

phần tử của tệp

Trả lời: Đoạn lệnh

s:=0;

while not eof(f1) do

readln(f1,x);

end;

Bài tập này giúp học sinh củng cố lại các thao tác khi làm việc với tệp

Trang 12

Đưa ra một ví dụ về tệp Sothuc.inp để học sinh thấy cấu trúc của tệp sẽ giúp các

em thực hiện yêu cầu của bài dễ hơn

Cài đặt:

Program Baitap3;

Var i:integer;

x,S:real;

f1,f2:text;

Begin

assign(f1,'Sothuc.inp');

assign(f2,'Sothuc.out');

rewrite(f2);

while not eof(f1) do

begin

readln(f1,x);

write(f2,S:6:2);

End.

Sau khi thực hiện chương trình đưa tệp Sothuc.out để các em quan sát:

Trang 13

Tệp Sothuc.out thu được sau khi thực hiện chương trình:

V Hiệu quả của SKKN

Trong năm học 2014 - 2015 tôi thấy học sinh khi làm bài tập “Chương V-Tin học 11” thường gặp phải những lỗi giống nhau

Để khắc phục, năm 2015 – 2016 và năm 2016 - 2017 tôi đã vận dụng các phương pháp giảng dạy trên thì kết quả đã khác hơn rất nhiều, học sinh đã hiểu bài và làm bài tập tốt hơn 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ỹ năng thao tác với tệp là rất quan trọng

Kết quả được thể hiện qua các bảng liệt kê tỷ lệ bài kiểm tra nội dung kiến thức chương V qua các năm:

1 Năm học chưa áp dụng SKKN

Năm học 2014 – 2015

2 Năm học đã áp dụng SKKN

Năm học 2016 - 2017

STT LỚP Sĩ số Số lượng TB trở lên Tỉ lệ % trên TB

STT LỚP Sĩ số Số lượng TB trở lên Tỉ lệ % trên TB

Trang 14

C KẾT LUẬN

1 Những mặt đạt được và chưa đạt được

Những mặt đạt được

- Phần lớn học sinh nắm được kiến thức của các bài học vận dụng vào làm các bài tập

- Các em đã khắc phục được những lỗi hay mắc phải khi viết chương trình sử dụng kiểu dữ liệu tệp

- Có thái độ tích cực trong học tập, yêu thích môn học hơn

- Các em có hứng thú hơn trong các giờ thực hành Những mặt chưa đạt được

- Một số em tiếp xúc ít với máy tính nên còn chậm trong các thao tác thực hành

- Một số học sinh còn chậm trong việc áp dụng lý thuyết vào bài tập

2 Nguyên nhân

Khách quan

- Môn tin là môn học khó và mới đối với học sinh

- Số em gia đình có máy tính còn ít

- Do môn tin là môn học không thi tốt nghiệp và thi đại học nên học sinh không đầu tư học

Chủ quan

- Học sinh chưa chịu khó và giành thời gian cho môn học;

- Điều kiện cơ sở vật chất, trang thiết bị, đồ dùng dạy học của nhà trường còn thiếu, chưa đáp ứng đủ nhu cầu cho học sinh

Tĩnh Gia, ngày 10 tháng 05 năm 2017

XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Tôi xin cam đoan đây là SKKN của

mình viết, không sao chép nội dung

của người khác

Nguyễn Thị Lập

Trang 15

TÀI LIỆU THAM KHẢO

1 Sách giáo khoa Tin học 11, NXBGD

2 Sách Bài tập tin học 11, NXBGD

3 Sách giáo viên tin học 11, NXBGD

4 Lí luận dạy học tin học ở trường phổ thông (Trương Trọng Cần, ĐHV)

Ngày đăng: 25/05/2022, 09:47

HÌNH ẢNH LIÊN QUAN

Kết quả được thể hiện qua các bảng liệt kê tỷ lệ bài kiểm tra nội dung - SKKN Một số biện pháp khắc phục lỗi cơ bản của học sinh khi làm các bài tập liên quan đến kiểu dữ li...
t quả được thể hiện qua các bảng liệt kê tỷ lệ bài kiểm tra nội dung (Trang 13)
V. Hiệu quả của SKKN - SKKN Một số biện pháp khắc phục lỗi cơ bản của học sinh khi làm các bài tập liên quan đến kiểu dữ li...
i ệu quả của SKKN (Trang 13)

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w