Giúp học sinh tìm hiểu thêm về cách sử dụng kiểu dữ liệu tệp trong ngôn ngữ lập trình pascal chương trình tin học 11 - Pdf 57

MỤC LỤC
I. MỞ ĐẦU……………………………………………………………………...1
1.1. Lý do chọn đề tài…………………………………………………………...1
2.2. Mục đích nghiên cứu…………………………………………………….....1
2.3. Dối tượng nghiên cứu………………………………………………………1
2.4. Phương pháp nghiên cứu…………………………………………………...1
II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM………………………………....1
2.1. Cơ sở lý luận………………………………………………………………..1
2.2. Thực trạng…………………………………………………………………..2
2.3. Các sáng kiến kinh nghiệm…………………………………………………2
2.4. Hiệu quả của sáng kiến kinh nghiệm……………………………………...14
III. KẾT LUẬN, KIẾN NGHỊ…………………………………………………14
3.1. Kết luận…………………………………………………………………...14
3.2. Kiến nghị………………………………………………………………….15

1


I. MỞ ĐẦU
1.1. Lý do chọn đề tài
Tệp là một kiểu đọc ghi dữ liệu liệu của ngôn ngữ lập trình Pascal, nó trái
ngược nhiều so với cách nhập/xuất dữ liệu truyền thống, tức là chúng ta sẽ nhập
dữ liệu vào một file và Pascal sẽ đọc xử lí rồi ghi kết quả ra một tệp khác - cách
này giúp bạn xem được input và output khi chương trình kết thúc. Kiểu tệp thì
cũng không khó lắm, nhưng còn rất nhiều học sinh lúng túng khi gặp kiểu tệp và
trong sách giáo khoa thì cũng chưa nói cho rõ ràng, chi tiết. Chính vì vậy, tôi
chọn đề tài “Giúp học sinh tìm hiểu thêm về cách sử dụng kiểu dữ liệu tệp
trong ngôn ngữ lập trình Pascal - chương trình tin học 11”.
1.2. Mục đích nghiên cứu
Tôi chọn nghiên cứu đề tài này nhằm mục đích hướng dẫn một cách chi tiết giúp
học sinh hiểu hơn về tệp, xử lý nhanh và hiệu quả kiểu dữ liệu tệp,và bổ trợ

không trình bày trong phần nội dung của đề tài).
1. Nguyên lí hoạt động
Khi sử dụng kiểu tệp thì cần có hai tệp, một tệp để nhập dữ liệu vào
(input), sau khi nhập thì save lại. Còn tệp kia là để Pascal ghi kết quả ra (output).
Bạn có thể xem được input và output bất kì lúc nào, bạn thể xem trong Pascal
hoặc cũng có thể xem bằng cách mở tệp đó ra với Notepad.
2. Tạo tệp
Chúng ta cần tạo ra hai tệp cho mỗi bài toán và có thể tạo trực tiếp trong
Pascal theo các bước bên dưới:
1. Khởi động Turbo Pascal
2. Mở một cửa sổ mới
3. Save As
4. Nhập tên và đuôi của tệp (vd: Input.txt, Output.txt, Songuyento.inp,
Songuyento.out ...)
5. Ok
Như vậy là chúng ta đã tạo được một tệp, hãy tiếp tục tạo thêm một tệp
nữa. Có một lưu ý với cách tạo tệp này là tệp sẽ được lưu ở thư mục BIN của

3


Turbo Pascal, khi khai báo đường dẫn của tệp trong chương trình thì bạn cũng
chỉ việc viết tên tệp (có cả phần đuôi) ra thôi.
Nếu muốn tạo tệp và cất dữ ở một thư mục khác thuộc ổ đĩa khác, thư
mục baitappas thuộc ổ D chẳng hạn. Thì bạn hãy mở Notepad ra, tạo một file,
Save as nhưng nhớ chọn vị trí lưu tệp là D:\baitappas\. Còn về phần tên thì như
trên.
3. Tạo hằng chứa đường dẫn của tệp
Chúng ta nên có hai hằng để lưu vị trí của tệp, ví dụ:
const fi ='input.dat';

trên cũng không cho biết có bao nhiêu hàng và bao nhiêu cột nên ta phải sử dụng
hàm eof(tên biến tệp) - cho giá trị true khi đọc tới cuối file và eoln(tên biến tệp)
cho giá trị true nếu đọc tới cuối dòng hiện tại.
while not eof(f) do {điều kiện chưa kết thúc file}
begin
inc(i); {tăng chỉ số dòng}
j:=0; {đưa chỉ số cột về 0}
while not eoln(f) do {điều kiện chưa kết thúc dòng}
begin
inc(j); {Tăng chỉ số cột}
read(f,a[i,j]); {đọc phần tử a[i,j]}
end;
readln(f); {xuống hàng tiếp theo}
end;
Thêm một ví dụ khác nữa, lần này sẽ cho số hàng và số cột:
55
14257
14566
95373
26794
26892
5


Bây giờ bạn phải đọc hai chỉ số hàng và cột đầu tiên sau đó chúng ta dùng vòng
lặp for - do để đọc:
readln(f,m,n); {đọc chỉ số hàng và cột}
for i:= 1 to m do {đọc theo từng dòng}
begin
for j:= 1 to n do read(f,a[i,j]); {đọc từng phần tử của dòng}

Dưới đây là một số ví dụ về định nghĩa một số kiểu tệp và biến tệp trong Pascal:
type
rfile = file of real;
ifile = file of integer;
bfile = file of boolean;
datafile = file of record;
arrfile = file of array[1..4] of integer;
var
marks: arrfile;
studendata: datafile;
rainfalldata: rfile;
tempdata: integer;
choices: bfile;
2. Cách tạo và ghi tệp
Ví dụ dưới đây viết một chương trình có thể tạo tệp dữ liệu cho kiểu bản
ghi student. Nó sẽ tạo 1 tệp có tên là students.dat và ghi dữ liệu của student vào
đó:
program DataFiles;
type
StudentRecord = Record
s_name: String;
7


s_addr: String;
s_batchcode: String;
end;
var
Student: StudentRecord;
f: file of StudentRecord;

reset(f);
while not eof(f) do
begin
read(f,Student);
writeln('Name: ',Student.s_name);
writeln('Address: ',Student.s_addr);
writeln('Batch Code: ',Student.s_batchcode);
end;
close(f);
readln
end.
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ trả về kết quả dưới đây:
Name: Nguyen van an
Address: Viet nam
Batch Code: Computer science
4. Tệp dưới dạng thông số các chương trình con
Pascal cho phép các biến tệp được sử dụng như các tham số trong các
chương trình con chuẩn và chương trình con do người dùng định nghĩa. Ví dụ
dưới đây sẽ minh họa rõ hơn về khái niệm này.
Trong ví dụ dưới đây chương trình tạo một tệp có tên là rainfall.txt và tệp
này lưu trữ dữ liệu về lượng mưa. Tiếp theo mở tệp, đọc dữ liệu và tính lượng
mưa trung bình.
9


Lưu ý nếu sử dụng tham số của tệp với các chương trình con, nó phải
được khai báo như một tham số var.
Program addFiledata;
const max = 4;
type

begin
read(x,d);
sum := sum+d;
end;
avg := sum/max;
close(x);
writeln('Average Rainfall: ',avg:7:2);
end;
Begin
writeln('Enter the file name: ');
readln(filename);
assign(rainfile,filename);
writedata(rainfile);
Average(rainfile);
End.
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ trả về kết quả dưới đây:
Enter the file name:
rainfall.txt
Enter the file name:
34
Enter the file name:
45
Enter the file name:
11


56
Enter the file name:
78
Average Rainfall: 53.25

6. Nối tệp trong Pascal
Nối tệp trong Pascal tức là ghi thêm một số dữ liệu vào tệp hiện có mà
không ghi đè lên tệp. Dưới đây là ví dụ chương trình có nối tệp:
Program Appendfile;
var
myfile: text;
info: string;
begin
assign(myfile, 'contact.txt');
append(myfile);
writeln('Ten khoa: TIN HOC');
writeln('Nganh: khoa hoc may tinh');
close(myfile);
assign(myfile,'contact.txt');
reset(myfile);
while not eof(myfile) do
begin
readln(myfile,info);
writeln(info);
end;
13


close(myfile);
end.
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ trả về kết quả dưới đây:
Ten khoa: TIN HOC
Nganh: khoa hoc may tinh
Thong tin ve sinh vien:
Name: Nguyen van an

Đọc dữ liệu từ tệp và chuyển qua dòng
danh sách biến vào);
Thủ tục Write(biến tệp, danh
sách kết quả);
Thủ tục Writeln(biến tệp,
danh sách kết quả);
Hàm EOF(biến tệp);
Hàm EOLn(biến tệp);
Thủ tục Erase(biến tệp);
Hàm FilePos(biến tệp);
Hàm Filesize(biến tệp);
Thủ tục Flush(biến tệp);
Hàm IOResult: word;

tiếp theo
Ghi dữ liệu ra tệp
Ghi dữ liệu ra tệp và nối dòng mới
Kiểm tra cuối tệp
Kiểm tra cuối dòng
Xóa tệp từ ổ đĩa
Cho biết vị trí hiện thời của con trỏ tệp
Cho biết số phần tử có trong tệp
Ghi tệp vào bộ đệm ổ đĩa
Trả về mã lỗi khi thực hiện các thao tác
14


14
15
16

Như vậy, tôi thấy rằng một khi giáo viên tập trung đầu tư công sức và kiến
thức vào bài dạy, học sinh sẽ tiếp thu bài một cách tích cực và không thụ động.
Các em hứng thú trong học tập hơn. Chính sự đam mê, tích cực của học sinh là
động lực thúc đẩy giáo viên đổi mới tư duy, phương pháp giảng dạy phù hợp với
yêu cầu cầu mới. Mỗi giờ học, mỗi đơn vị kiến thức mà các em đạt kết quả cao
đã thể hiện được phần nào tâm huyết của người dạy.
Từ những kết quả tích cực thu được, đề tài đã và đang được các giáo viên
trong nhóm chuyên môn áp dụng để giảng dạy cho học sinh trong nhà trường,
đặc biệt là đối với các em học sinh giỏi.
Với đề tài này, không chỉ dừng ở một số kiến thức tôi đã giới thiệu trong
phần nội dung. Các giáo viên, các em học sinh, những người quan tâm đến lĩnh
vực này có thể dùng để tham khảo và mở rông đề tài hơn nữa.
3.2. Kiến nghị
15


Tôi có đề xuất thêm một kiến nghị như sau:
- Đề nghị các ban ngành tổ chức thêm các đợt hội thảo trao đổi kinh
nghiệm giảng dạy để các anh em trong ngành thảo luận và trao đổi kinh nghiệm
với nhau.
- Hàng năm sau khi duyệt các đề tài sáng kiến kinh nghiệm nên phổ biến
đến các đơn vị như một tài liệu lưu hành nội bộ để mọi người cùng học tập và
phát triển.
- Đầu tư thêm các trang thiết bị cần thiết phục vụ cho công tác giảng dạy
và học tập của học sinh đối với những trường chưa đáp ứng được điều kiện này.
Trên đây là một số tìm tòi và suy nghĩ của tôi về những kinh nghiệm để
xây dựng đề tài. Trong khi trình bày không tránh khỏi nhiều thiếu sót, rất mong
được các đồng chí đồng nghiệp góp ý!
Tôi xin chân thành cảm ơn!
Thanh Hóa, ngày 24 tháng 05 năm 2019

SKKN thuộc lĩnh vực (môn): Tin học

THANH HOÁ NĂM 2019

17




Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status