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

Một số kinh nghiệm khi dạy chương v tệp và thao tác với tệp SGK tin học 11

13 8 0
Tài liệu đã được kiểm tra trùng lặ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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 113 KB

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

Nội dung

Trong chương trình Tin học 11, Chương “Tệp và thao tác với tệp” là một chương có lượng kiến thức khá phức tạp, để học sinh đại trà hiểu và vận dụng không phải là dễ.. Đa số học sinh chưa

Trang 1

1 MỞ ĐẦU 1.1 Lý do chọn đề tài

Công nghệ thông tin là một ngành khoa học đang phát triển rất mạnh

mẽ Sự bùng nổ của công nghệ thông tin trong thời đại ngày đem lại cho thế giới nhân loại một cuộc sống văn minh, hiện đại Một cuộc sống mới “ Công nghiệp hóa, hiện đại hóa”

Ngày nay, công nghệ thông tin ảnh hưởng đến hầu hết các lĩnh vực trong đời sống xã hội

Lĩnh vực về công nghệ thông tin là vô cùng, nhưng trong chương trình học của học sinh THPT đã đưa đến cho học sinh khá nhiều kiến thức về tin học, nhất là SGK Tin học 10 do Bộ phát hành

Ngoài ra, trong cuốn SGK Tin học 11 Học sinh được tìm hiểu về Ngôn ngữ lập trình Pascal Đây là một ngôn ngữ được xem là ngôn ngữ học đường

Là ngôn ngữ đầu đời cho các em, để các em hướng tới những ngôn ngữ cao hơn, phức tạp hơn

Do đó người dạy cần phải làm rõ cho học sinh Thế nào là lập trình? mục đích lập trình để làm gì?

Trong thực tế các em mới hiểu đơn giản là giải quyết các bài toán cơ bản dựa trên ngôn ngữ lập trình và máy tính Còn các chương trình ứng dụng trong thực tế trên máy tính thì các em chưa biết đó từ đâu ra

Trong chương trình Tin học 11, Chương “Tệp và thao tác với tệp” là một chương có lượng kiến thức khá phức tạp, để học sinh đại trà hiểu và vận dụng không phải là dễ Tôi mạnh dạn đưa ra một số kinh nghiệm khi dạy chương học này

Chúng ta biết Tin học là một môn học mới mẻ đối với học sinh nói chung và học sinh THPT nói riêng Đa số học sinh chưa có khái niệm về công nghệ thông tin, khái niệm thuật toán trong các ngôn ngữ lập trình, vì vậy rất khó cho việc dạy và học

Trang 2

Làm sao để học sinh hiểu về tệp? Tệp là gì? tác dụng của việc sử dụng tệp

1.2 Mục đích yêu cầu

Đối với những bài toán đơn giản học sinh đã học ở chương trước thì bài toán về tệp hoàn toàn khác

Những bài toán ở các chương trước học sinh phải đi nhập dữ liệu vào(Input) sau đó mới giải quyết để tìm kết quả (Output)

Nhưng ở bài toán về tệp hoàn toàn khác Đó là học sinh đi chỉ việc đọc

dữ liệu đã cho và xử lý để tìm kết quả

Vì vậy mục đích cơ bản để làm việc với tệp là: Hiểu các thao tác cơ bản làm việc với tệp gồm gắn tên tệp, mở và đóng tệp, đọc/ghi dữ liệu tệp

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

Là học sinh khối 11, cụ thể là các lớp A1, A2, A3, A4, A5 trường THPT Nông Cống 1

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

Trong phạm vi nghiên cứu của chương này ta cần làm rõ các vấn đề sau:

- Hiểu thế nào là kiểu dữ liệu tệp

- Cách khai báo biến tệp

- Gắn tên tệp để làm gì

- Đọc/ ghi dữ liệu tệp

- Đóng tệp có chức năng như thế nào

Trang 3

2 NỘI DUNG 2.1 Cơ sở lý luận

Trong lập trình Pascal cơ bản, có nhiều bài toán phức tạp, nếu chúng ta chỉ giải quyết đơn thuần cũng có thể làm được, nhưng bài toán rườn rà, khó chỉnh sửa, khó nâng cấp

Ngôn ngữ lập trình cung cấp chức năng khá hay đó là cho phép người lập trình giải quyết bài toán dưới dạng tệp để lưu trử lâu dài trên bộ nhớ ngoài và có thể nâng cấp và sử dụng nhiều lần

Dung lượng lưu trữ dưới dạng tệp có thể rất lớn, chỉ phụ thuộc vào dung lượng bộ nhớ

Ta có thể phân tích cho học sinh hiểu rõ hơn: Những bài toán được giải quyết ở các chương trước đều được lưu trữ trên bộ nhớ trong RAM ( Bộ nhớ truy cập ngẩu nhiêu) dữ liệu sẽ bị mất khi tắt máy Nhưng khi làm việc dưới dạng tệp dữ liệu sẽ được lưu trữ trên bộ nhớ ngoài như: HDD,

CD, DVD, USB… Dữ liệu sẽ không bị mất khi tắt máy

Trong thực tế có rất nhiều bài toán lớn, phần mền…được ứng dụng trong nhiều lĩnh vực như trường học, công ty, nhà hàng, bệnh viện… cần phải lưu trữ lâu dài trên bộ nhớ ngoài để quản lý, học tập… và chỉ có dữ liệu kiểu tệp mới đáp ứng được

2.2 Cơ sở thực tiễn

2.2.1 Khi làm việc với tệp cần qua các thao tác sau.

- Khai báo biến tệp

- Mở tệp

- Đọc/ ghi dữ liệu tệp

- Đóng tệp

2.2.2 Mục tiêu, kiến thức, kĩ năng, thái độ của chương “ Tệp và thao tác với tệp”.

Trang 4

a Mục tiêu: Giới thiệu vai trò và đặc điểm kiểu dữ liệu tệp, thao tác với tệp

văn bản

b Về kiến thức: Học sinh cần đạt được

- Biết dữ liệu kiểu tệp dung để lưu trữ dữ liệu lâu dài trên bộ nhớ ngoài Biết được hai loại tệp thường dùng là tệp văn bản và tệp có cấu trúc Biết được hai cách truy cập là tuần tự và trực tiếp

- Biết hai thao tác cơ bản với tệp là: Đọc dữ liệu từ tệp và ghi dữ liệu vào tệp

c Về kĩ năng:

Có thể tạo chương trình đọc dữ liệu từ một tệp hoặc lưu trữ dữ liệu dưới dạng tệp văn bản

d Về thái độ:

- Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp

- Có ý thức lưu trữ dữ liệu một cách khoa học, phòng chống mất mát và khi muốn tìm dữ liệu nào đó một cách dễ dàng

2.2.3 Những điểm cần lưu ý khi tổ chức dạy chương này

Về phân bố giảng dạy có thể như sau:

- Bài 14, Bài 15: 1 tiết

- Bài 16: Ví dụ làm việc với tệp: 1 tiết

- Bài tập: 1 tiết

Với mục đích giảm tải, ở chương này chú trọng cơ bản về tệp văn bản, còn tệp có cấu trúc chỉ giới thiệu sơ lược Ngay cả với tệp văn bản yêu cầu cũng nhẹ nhàng( trừ ôn thi học sinh giỏi)

Giáo viên có thể gợi ý cho học sinh so sánh đọc/ghi tệp với đọc/ghi dữ liệu từ bàn phím Cần nhấn mạnh vai trò của kiểu dữ liệu tệp, so sánh với các kiểu dữ liệu trước đó

Có thể mô phỏng kiểu quản lý tệp trên máy tính bằng cây thư mục như sau:

Trang 5

Từ cây thư mục này giáo viên có thể phân tích cho học sinh hiểu cách quản lý tệp như thế nào là khoa học Chỉ rõ đâu là thưc mục gốc, đâu là thư mục con cấp 1,2… và đâu là tệp

Ví dụ đường dẫn: D/Bài tập/Pascal/Tong1.pas

Vậy: Ổ D chính là thư mục gốc, Bài tập là thư mục con cấp 1, Pascal

là thư mục con cấp 2 Còn Tong1.pas chính là tệp

Có thể nhắc lại kiến thức về tệp đã học ở lớp 10 Chẳng hạn

.DOC; XLS; PAS; MP3… là phần mở rộng của những loại tệp gì?

Từ đó giáo viên có thể cho học sinh lấy những ví dụ thực tế về quản lý tệp

Gợi ý: Như cái giá sách của em: Cả cái giá sách gọi là thư mục mẹ, mỗi ô gọi

là thư mục con, trong mỗi thư mục con sẽ chứa sách, vỡ, tài liệu thâm khảo… vậy sách, vỡ, tài liệu thâm khảo… đóng vai trò là tệp.

2.2.4 Kiến thức cần đạt

Học sinh cần hiểu rõ được: Cách khai báo biến tệp, gắn tên tệp, mở tệp, đọc/ghi dữ liệu tệp, đóng tệp

Lưu ý cho học sinh phần mở tệp có 2 chức năng là đọc dữ liệu từ tệp và ghi dữ liệu vào tệp Giống như chúng ta mở cuốn vỡ ra cũng có hai chức năng đó là đọc kiến thức từ cuốn vở và ghi thông tin vào cuốn vở

Phân tích cho học sinh;

- Muốn chuẩn bị đọc trước hết phải gắn tên tệp cho biến tệp và dùng thủ

tục Reset(<biến tệp>).

Bài tập

Games

Toán

Pascal

Tong1.pas Tong2.pas

….

My Computer

C

D

Trang 6

- Muốn chuẩn bị ghi trước hết phải gắn tên tệp cho biến tệp và dùng thủ

tục Rewrite(<biến tệp>).

- Cần giới thiệu và làm rõ về 2 hàm rất cơ bản và thường sử dụng khi làm việc với tệp đó là:

+ Hàm eof(<biến tệp>): Trả về giá trị TRUE nếu con trỏ đang

chỉ tới cuối tệp

+ Hàm eoln(<biến tệp>): Trả về giá trị TRUE nếu con trỏ đang

chỉ về cuối dòng

Tóm lại kết thúc phần này học sinh phải hiểu được sơ đồ thao tác với tệp Như sau:

Từ sơ đồ giáo viên có thể tổng quan lại bài học 14 và bài học 15 SGK tin học 11

2.2.5 Phần ví dụ về tệp

Theo kinh nghiệm của bản thân Trước hết chúng ta nên cho học sinh giải một số bái toán cơ bản, dễ làm, dễ hiểu trước rồi hãy đi vào hai ví dụ trang 87,88_ SGK tin học 11

Ví dụ 1: Mức độ dễ

Assign(<biến tệp>), <tên tệp>)

Rewrite(<biến tệp>) Reset(<biến tệp>)

Write(<biến têp>, <DS kết quả>); Read(<biến tệp>,<danh sách biến>);

Close(<biến tệp>)

Trang 7

Cho tệp văn bản có tên lá vidu1.inp chứa duy nhất một số nguyên N, lập chương đình đọc và kiểm tra xem N là số chẳn hay số lẽ kết quả ghi ra tệp vidu1.out như sau: nếu N chẳn ghi số 0, nếu N lẽ ghi số 1

Ví dụ:

Ở bài này giáo viên hướng dẫn lại cho học sinh cách sử dụng hàm mod để lấy

phần dư, nếu N mod 2=0 chứng tỏa N là số chẳn, còn N mod 2<>0 chứng tỏa

N là số lẽ

Chương trình như sau:

Program chanle1;

Var fi, fo: text;

N: integer;

Begin

Assign(fi, ‘vidu1.inp’);

Reset(fi);

{ Hai câu lệnh này dùng để gắn tên tệp và mở tệp để chuẩn bị đọc}

Assign(fo, ‘vidu1.out’);

Rewrite(fo);

{ Hai câu lệnh này dùng để gắn tên tệp và mở tệp để chuẩn bị ghi}

Read(fi, N); {Đọc số nguyên N}

If N mod 2 =0 then

Write(fo, 0) { N là chẳn nên ghi số 0 vào tệp fo}

Else

Write(fo,1); { ngược lại N lẽ nên ghi số 1 vào tệp fo}

vidu1.inp vidu1.out

Trang 8

Close(fi); Close(fo);

End

Ví dụ 2: Mức độ thông hiểu, đây là ví dụ phát triển của ví dụ 1

Cho tệp văn bản có tên vidu2.inp chứa nhiều dòng, mỗi dòng chứa một

số nguyên N, lập chương trình đọc và kiểm tra tính chẳn lẽ của các số nguyên Kết quả lưu ra tệp vidu2.out như sau:

- Nếu N chẳn ghi số 0, N lẽ ghi số 1 theo thứ tự tương ứng

Ví dụ:

Với ví dụ này giáo viên nhắc lại hàm oef(<biến tệp>) Trả về giá trị đúng khi con trỏ đang chỉ về cuối tệp

Ví dụ: Câu lệnh while eof(fi) do ta tạm dịch là trong khi con trỏ chỉ về cuối

tệp thì ta thực hiện một công việc nào đó Nếu sử dụng câu lệnh này thì máy

nó chỉ đọc một giá trị cuối cùng

Vì vậy phải sử dụng câu lệnh while not eof(fi) do ( phủ định của câu lệnh trên) ta dịch là: Trong khi con trỏ chưa về cuối tệp thì thực hiện một

công việc nào đó

Chương trình như sau:

Program chanle2;

Var fi, fo: text;

N: integer;

Begin

Assign(fi, ‘vidu2.inp’);

Reset(fi);

Trang 9

Assign(fo, ‘vidu2.out’);

Rewrite(fo);

while not eof(fi) do {trong khi con trỏ chưa về cuối tệp thực hiện đọc lần lượt các số nguyên N}

begin

readln(fi, N);

If N mod 2 =0 then

Else

end;

Close(fi); Close(fo);

End

Với 2 ví dụ này giáo viên có thể đặt ra nhiều câu hỏi để so sánh Chẳng hạn ở

ví dụ 1 ta dùng câu lệnh read(fi, N); tại sao ở ví dụ 2 ta dùng câu lệnh

readln(fi, N)?

Xong hai ví dụ này ta đi vào giải quyết 2 ví dụ trong SGK tin học_trang 87

2.2.6 Phần bài tập

Bài tập 1: Cho tệp văn bản có tên bai1.inp dòng 1 chứa số nguyên dương N,

dòng 2 chứ N số nguyên, mỗi số cách nhau một ký tự trắng Lập chương trình đọc và đếm xem trong dãy có bao nhiêu số chẳn, bao nhiêu số lẽ Kết quả ghi

ra tệp bai1.out gồm 2 dòng như sau

Dòng 1: Ghi số lượng số chẳn Dòng 2 ghi số lượng số lẽ

Ví dụ:

Trang 10

10 13 14 17 23 28 11 123

3 5

Giáo viên hướng dẫn học sinh: Với bài này cách đọc dữ liệu khác so với hai

ví dụ đã làm ở trên một chút đó là:

Đầu tiên đọc số nguyên dương N ( readln(fi, N));

Lúc này sẽ có hai cách để đọc dãy số nguyên

Cách 1: Dùng vòng lặp For…To…Do

Tức là cho biến đếm chạy từ 1 tới N và thực hiện đọc lần lượt các số nguyên Cách2: Sử dụng hàm oeln(<biến tệp>) cụ thể câu lệnh:

while not eoln(fi) do { trong khi con trỏ chưa về cuối dòng}

Nói chung với bài toán cơ bản này sử dụng một trong 2 cách đọc trên đều không ảnh hưởng tới thời gian chạy

Bài tập 2: Cho tệp văn bản bai2.inp chứa duy nhất một xâu ký tự liên tiếp là

các chữ cái in hoa và chữ số Lập chương trình đọc và kiểm tra xem xâu trên

có phải là xâu đối xứng không Kết quả lưu ra tệp bai2.out như sau:

- Nếu xâu đối xứng ghi: “YES”

- Nếu xâu không đối xứng ghi: “NO”

Ví dụ:

Giáo viên nhắc lại cho học sinh tính chất đối xứng của một xâu, và cách giải quyết bài toán này

- Tính chất đối xứng: Xâu được gọi là đối xứng nếu ta viết theo thứ tự ngược lại sẽ được một xâu như ban đầu

- Cách giải quyết bài toán này:

+ Đọc xâu S

Trang 11

+ Khởi tạo một xâu rỗng P=’’;

+ Cho vòng For chạy từ cuối xâu S về đầu xâu S, chạy đến đâu

lấy ký tự đó cho vào xâu rỗng P( For i:=length(S) downto 1 do)

+ Nếu S=P chứng tỏa S là xâu đối xứng, nếu không bằng thì S không phải xâu đối xứng,

2.2.7 Hiệu quả của sáng kiến kinh nghiệm

Tuy dạy 5 lớp 11 nhưng thực nghiệm cho 2 lớp

11A4 là lớp theo ban khoa học tự nhiên( lớp khối A)

11A5 là lớp theo ban khoa học xã hội( lớp khối D)

Tôi thấy kết quả có khả quan hơn nhiều so với lớp 11A2( lớp đại trà)

Sĩ số lớp 11A4 có 41 học sinh; lớp 11A5 có 43 học sinh trong đó:

11A4: 37 HS đạt yêu cầu chiếm 90,2 % 11A5: 23 HS đạt yêu cầu chiếm 53,4%

3 KẾT LUẬN VÀ ĐỀ XUẤT

Sau khi thực hiện nghiên cứu và thử nghiệm trong năm học 2020- 2021 tôi thấy cần có thời gian nhiều hơn để thử nghiệm, vì vẫn còn có một số học sinh chưa đạt yêu cầu

Trang 12

Tin học là một môn học mới mẻ của học sinh THPT và không thuộc môn khối của học sinh, do đó đa số học sinh trong trường không chú tâm học,

vì vậy rất khó cho việc dạy và học

Cần phải có thời gian nhiều hơn cho lý thuyết và thực hành, vì theo phân phối chương trình như hiện thời gian giảng dạy còn ít, học sinh chưa nắm bắt được lý thuyết cũng như thực hành

Để học sinh có thể học lập trình tốt, phải chăng chương trình Tin học

11 tăng thêm 1 tiết/tuần so với PPCT cũ, có thể giảm bớt 1 tiết ở chương trình lớp 10

Trên đây là một số kinh nghiệm riêng của bản thân, mong đồng nghiệp đóng góp ý kiến

Xin chân thành cám ơn!

XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh Hóa, ngày 10 tháng 05 năm 2021

Tôi xin cam đoan đây là SKKN của mình, không sao chép nội dung của người khác

ĐỖ CẢNH TOÀN

TÀI LIỆU THAM KHẢO

- Sách giáo khoa Tin học 10, 11 của Bộ GD&ĐT phát hành

- Sách bài tập tin học 11 của Bộ GD&ĐT phát hành

- Bài tập lập trình Pascal cơ bản của Nguyễn Xuân Huy- Bùi Thế Tâm

Trang 13

- Lý thuyết và bài tập Pascal từ cơ bản đến nâng cao của Hồ Xuyên

Ngày đăng: 18/05/2021, 12:12

TỪ KHÓA LIÊN QUAN

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