SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
TRƯỜNG THPT NGA SƠN
SÁNG KIẾN KINH NGHIỆM
SỬ DỤNG MỘT SỐ KHÁI NIỆM VỀ CHƯƠNG TRÌNH CON
VÀ CÁC VÍ DỤ ĐỂ CỦNG CỐ CÁC KIẾN THỨC
VỀ KIỂU DỮ LIỆU XÂU
Người thực hiện: Nguyễn Văn Hải
Chức vụ:
Giáo viên
SKKN thuộc lĩnh vực môn: Tin Học
THANH HOÁ NĂM 2017
MỤC LỤC
NỘI DUNG
I. Mở đầu.............................................................................................
1.1 Lí do chọn đề tài......................................................................
1.2 Mục đích nghiên cứu...............................................................
1.3 Đối tượng nghiên cứu.............................................................
1.4 Phương pháp nghiên cứu........................................................
II. Nội dung của sáng kiến kinh nghiệm..........................................
2.1 Cơ sở lý luận của sáng kiến kinh nghiệm.................................
a. Hàm (Function)....................................................................
b. Thủ tục (Procedure).............................................................
c. Tham số hình thức................................................................
d. Tham số thực sự..................................................................
4
4
5
6
7
9
9
11
11
11
12
I.MỞ ĐẦU
1.1. Lí do chọn đề tài.
Sự phát triển như vũ bão của khoa học công nghệ - kỹ thuật hiện đại đã đặt giáo
dục vào thử thách mới, đó là nhằm đào tạo ra thế hệ tương lai vừa có phẩm chất,
vừa phải có năng lực tiếp cận khoa học hiện đại để hội nhập với xu thế chung của
xã hội. Hiện nay trong các trường phổ thông đã chú trọng tới vấn đề này.
Nếu như trước đây môn Tin học chủ yếu chỉ truyền đạt cho các em kiến thức lý
thuyết, hàn lâm thì nay đã chú trọng tới thực hành và giải các bài tập, giúp các em
làm quen với lập trình trên máy tính, do đó các trường phổ thông đã được trang bị
cơ sở vật chất phục vụ dạy và học: phòng máy, phòng nghe nhìn đã được chuẩn
hóa, học sinh ý thức được môn học nên tập trung hơn,...Tuy nhiên, nhưng thay đổi
đó chưa thực sự mang lại hiệu quả cao trong việc tiếp thu và nhận thức bài học của
học sinh và phần lớn học sinh chưa có điều kiện để tiếp cận với nhiều tài liệu, cũng
như thời gian để làm việc với máy tính đang còn ít. Môn Tin học đối với học sinh là
môn khó, đặc biệt là chương trình lớp 11 vì kiến thức lập trình đa số với nhiều học
sinh là khó tiếp cận.
Trong quá trình giảng dạy chương trình lớp 11 học sinh gặp rất nhiều khó khăn
mãn điều kiện nào đó.... Cách sử dụng các hàm và thủ tục của xâu, khi nào sử dụng
hàm, khi nào sử dụng thủ tục sẽ được trình bày cụ thể qua các phần tiếp theo của
sáng kiến kinh nghiệm này.
2.1 .Cơ sở lí luận
Việc sử dụng các khái niệm về chương trình con để giải thích cho các thủ tục, hàm
của xâu được thể hiện qua các khái niệm về chương trình con như sau:
a. Hàm (Function) : Là chương trình con thực hiện một số thao tác nào đó và
trả về một giá trị qua tên của nó[1].
Ví dụ : Hàm sqrt(x), sqr(x), abs(x)....
Trong mục 2.1 Khái niệm về hàm được tham khảo từ tài liệu tham khảo số 1
2
b. Thủ tục (Procedure) : Là chương trình con thực hiện các thao tác nhất định
nhưng không trả về giá trị nào qua tên của nó[1].
Ví dụ: Thủ tục Writeln, Readln, Delete....
c. Tham số hình thức:
Các biến được khai báo cho dữ liệu vào/ra của chương trình con được gọi là
tham số hình thức[1]
d. Tham số thực sự :
Trong lời gọi chương trình con, các biến và hằng thay thế tương ứng bởi tham số
hình thức được gọi là tham số thực sự [1].
e. Tham biến:
Trong lời gọi chương trình con các tham số hình thức được thay thế tương ứng là
tên các biến chứa dữ liệu ra được gọi là tham biến [1].
g. Tham trị:
Trong lời gọi chương trình con các tham số hình thức được thay thế tương ứng là
các giá trị cụ thể được gọi là tham trị [1].
Để phân biệt giữa tham trị và tham biến, ngôn ngữ lập trình pascal sử dụng từ
khóa var để khai báo những tham số biến.
Thực hiện thủ tục
Delete(St,2,2)
Kết quả xâu St
'ad'
Đúng như tên gọi thủ tục này thực hiện công việc là xóa xâu, không trả về giá trị
nào qua tên của thủ tục. Khi thực hiện thủ tục nhiều học sinh viết
Delete('abcd',2,2) ='ad' khi đó giáo viên sẽ giải thích cho học sinh là trường hợp
này em viết như thế không đúng. Việc giải thích như thế đối với nhiều học sinh khá
giỏi là chung chung, nhiều học sinh sẽ không phục. Bản chất của thủ tục xóa xâu có
cấu trúc như sau
Delete(Var St:String; vt, n: Byte).Khi học xong về phần
chương trình con học sinh sẽ nhận ra xâu St ở đây được khai báo là tham biến, Vt
và n là tham trị. Để hiểu rõ hơn về thủ tục delete ta cùng tìm hiểu qua ví dụ sau :
Cấu trúc thủ tục Delete(Var St:String; vt, n: Byte) được tham khảo từ TLTK số 2
Ví dụ 14:
4
Lập trình nhập vào một xâu st. Yêu cầu xóa các dấu cách ở vị trí đầu xâu và cuối
xâu.
Program xoa_xau;
Var s: string;
Procedure xoa_xau_cach(Var st:string);
Begin
Thao tác
Insert(s1,s2,2)
Kết quả xâu s2
'gabcdha'
Trường hợp 2: Chèn vào vị trí lớn hơn độ dài xâu s2
Giá trị xâu S1
'abcd'
Giá trị xâu S2
'gha'
Thao tác
Insert(s1,s2,4)
Kết quả xâu s2
'ghaabcd'
Thao tác
Insert(s1,s2,0)
Kết quả xâu s2
'abcd'
Trường hợp 3: Chèn vào xâu rỗng
Giá trị xâu S1
'abcd'
While St[1]=#32 Do Delete(St,1,1);
{Xóa các ký tự trắng ở cuối xâu}
While St[Length(St)]=#32 Do Delete(St,Length(St),1);
{Xóa các ký tự trắng ở giữa xâu}
While POS(#32#32,St)0 Do Delete(St,POS(#32#32,St),1);
End;
Begin
Write('Nhap xau St:'); Readln(St);
XoaTrangThua(St);
St:=St+#32;
Writeln('Liet ke cac tu trong xau: ');
While POS(#32,St)0 Do
Begin
Writeln(Copy(St,1,POS(#32,St)));
Delete(St,1,POS(#32,St));
End;
Readln;
End.
d. Hàm length(s:string) cho giá trị là độ dài xâu s [2].
Giá trị xâu S
'abcd'
Biểu thức
Length(s)
Kết quả
4
Begin
Dxx:=true;
Ví dụ 1 được tham khảo từ TLTK số 3, Ví dụ 2 được tham khảo từ TLTK số 3
For i:=1 to length(s) div 2 Do
If s[i] s[ length(s)-i+1] then exit(false);
End;
BEGIN
8
Write('Nhap xau St:'); Readln(St);
IF dxx(st)=true then writeln('Xau doi xung') else
then writeln('Xau khong doi xung') ;
Readln;
END.
e. Hàm upcase(ch :char) cho chữ cái in hoa ứng với ch
Giá trị xâu ch
'a'
'ab'
Biểu thức
Upcase(ch)
Upcase(ch)
Kết quả
'A'
Không có giá trị đối với chương trình
dịch Turbo Pascal. Đối với Free Pascal
Biểu thức
Kết quả
Pos(s1,s2)
2
Pos(s1,s2)
0
nhận thấy s1 và s2 là được khai báo là
tham trị của hàm Pos. Hàm Pos được sử dụng nhiều trong các bài toán về xâu do đó
để hiểu thêm về hàm Pos ta xét một số ví dụ sau đây:
Ví dụ 13:
Lập trình nhập vào một xâu đưa ra màn hình xâu thu được khi loại bỏ hết dấu
cách trong xâu.
Program xoa_cach_xau;
Var st: string;
BEGIN
Write('Nhap xau St:'); Readln(St);
While Pos(#32,St) 0 Do delete(st,Pos(#32,st),1);
Writeln(st);
Readln;
END.
Ví dụ 23:
Lập trình nhập vào một xâu. Đếm số từ trong xâu
Ví dụ 1, ví dụ 2 được tham khảo từ TLTK số 3; Cấu trúc Hàm Pos(s1,s2:string) được tham khảo
từ TLTK số 2
Program dem_so_tu_trong_xau;
Var s:string;
Function dem_tu(st:string):integer;
Giỏi
Khá
Trung bình
11A
11E
11C
11D
(lớp dạy)
25
45
30
(lớp đối chứng)
14
40
33
(lớp dạy)
15
42
35
(lớp đối chứng)
8
36
- Đối với đồng nghiệp, cần tăng cường hướng dẫn học sinh làm nhiều bài tập để
việc kiểm tra đánh giá học sinh bằng việc sử dụng bài tập, ngôn ngữ lập trình được
đồng bộ.
- Đối với nhà trường, quan tâm; xây dựng cơ sở vật chất đạt chuẩn để việc giảng
dạy tin học, đặc biệt là các giờ thực hành được thuận lợi.
- Đối với Sở Giáo dục, cần mở thêm các lớp tập huấn, tài liệu để nâng cao phương
pháp giảng dạy của giaó viên.
12
XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ
Thanh Hóa, ngày 25 tháng 5 năm 2017
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 Văn Hải
13
TÀI LIỆU THAM KHẢO
[1]. Sách giáo khoa tin học 11
Hồ Sĩ Đàm
chủ biên