Sáng kiến kinh nghiệm Tin học
2016 - 2017
MỤC LỤC
Trang
I. Mở đầu ……………………………………………………………………. 2
1.1. Lí do chọn đề tài ……………….………………………………….. 2
1.2. Mục đích nghiên cứu …………………………….………………... 2
1.3. Đối tượng nghiên cứu ……………………………………………… 3
1.4. Phương pháp nghiên cứu ………………………………….……….. 3
II. Nội dung sáng kiến kinh nghiệm ………………………………….…….. 3
2.1. Cơ sở lí luận ……………………………...………………….…….. 3
2.2. Thực trạng vấn đề trước khi áp dụng SKKN …………………...…. 3
2.3. Giải quyết vấn đề và tổ chức thực hiện ………………………........ 4
2.4. Hiệu quả bước đầu của SKKN …………………………..……..… 18
III. Kết luận, kiến nghị ……………………………………………..…..…… 19
3.1. Kết luận …………………………………………………………… 19
3.2. Kiến nghị ………………………………………………………….. 20
Giáo viên: Nguyễn Văn Đông
1
Sáng kiến kinh nghiệm Tin học
2016 - 2017
DẠY HỌC KIỂU DỮ LIỆU XÂU
THEO ĐỊNH HƯỚNG PHÁT TRIỂN NĂNG LỰC HỌC SINH
dụng các thao tác xử lí xâu để viết chương trình. Đồng thời thông qua các bài
Giáo viên: Nguyễn Văn Đông
2
Sáng kiến kinh nghiệm Tin học
2016 - 2017
tập này để phát triển năng lực tư duy phát hiện và giải quyết vấn đề, tư duy sáng
tạo cho học sinh.
1.3. Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là kiểu dữ liệu xâu trong chương trình tin
học 11. Sử dụng hình thức dạy học theo định hướng phát triển năng lực để học
sinh nắm vững và vận dụng thành thạo các thao tác xử lí xâu.
1.4. Phương pháp nghiên cứu
Nghiên cứu lí luận: Nghiên cứu các tài liệu về kiểu dữ liệu có cấu trúc nói
chung, kiểu dữ liệu xâu nói riêng trong chương trình tin học 11.
Nghiên cứu thực tiễn: Khảo sát năng lực học sinh khi xử dụng kiểu dữ
liệu xâu để viết chương trình.
Thực nghiệm sư phạm: Tiến hành thực nghiệm trên những đối tượng học
sinh cụ thể nhằm đánh giá hiệu quả của đề tài.
II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1. Cơ sở lí luận:
Môn Tin học không phải là môn khoa học lý thuyết thuần túy vì vậy học
sinh không thể nhớ nếu như không hiểu bài. Việc giáo viên bắt học sinh ghi nhớ
thụ động từng nội dung trong sách giáo khoa là một điều rất khó, cho dù học
sinh có cố gắng ghi nhớ thì vẫn bị lẫn lộn. Do đó, giáo viên phải không ngừng
đổi mới phương pháp dạy học, lấy “chuẩn kiến thức, kỹ năng” làm kim chỉ nam
Chủ đề: Kiểu dữ liệu xâu.
Bước 2: Xác định yêu cầu kiến thức, kĩ năng, thái độ
Kiến thức:
- Biết định nghĩa kiểu dữ liệu xâu;
- Biết cú pháp khai báo xâu, truy cập phần tử của xâu;
- Biết một số hàm và thủ tục xử lí xâu;
- Hiểu một số chương trình đơn giản có sử dụng kiểu dữ liệu xâu;
Kỹ năng:
- Biết khai báo biến kiểu xâu;
- Biết sử dụng một số hàm và thủ tục xử lí xâu;
Thái độ:
- Thấy được sự cần thiết của kiểu dữ liệu xâu khi xử lí dữ liệu là kí
tự;
- Học sinhh làm quen dần với các chương trình xử lí dữ liệu dạng
văn bản;
- Tiếp tục rèn luyện tư duy lập trình.
Bước 3: Lập bảng mô tả yêu cầu cần đạt
Loại câu
Nội dung
hỏi/bài
Nhận biết
tập
1. Khai Câu
HS chỉ ra
báo.
hỏi/bài tập được dữ liệu
định tính
trong các bài
toán không
chỉ thuộc kiểu
HS chỉ ra
được ưu điểm
và sự cần thiết
của kiểu dữ
liệu xâu.
4
Sáng kiến kinh nghiệm Tin học
2016 - 2017
Bài
tập Hs biết cú HS biết các
định
pháp khai báo cách khai báo
lượng
xâu
xâu.
Tham
chiếu đến các
phần tử trong
xâu.
Bài
tập
HS thực hiện
thực hành
khai báo các
biến kiểu xâu.
thường dùng
khi làm việc
với xâu.
HS hiểu được
ý nghĩa các
hàm thường
dùng khi làm
việc vời xâu.
HS biết được
các thủ tục
thường dùng
khi làm việc
với xâu
HS hiểu được
ý nghĩa các
thủ
tục
thường dùng
khi làm việc
vời xâu.
Bài
tập HS biết
định
tác
lượng
nhiều
HS lấy được ví
dụ trường hợp
sử dụng các
hàm khi làm
việc với kiểu
dữ liệu kí tự
(xâu).
HS lấy được ví
dụ trường hợp
sử dụng các
thủ tục khi làm
việc với kiểu
dữ liệu kí tự
(xâu).
HS viết được
chương trình
có sử dụng
phép ghép xâu,
phép so sánh
hai xâu.
5
Sáng kiến kinh nghiệm Tin học
các hàm và các hàm và trình có sử
thủ tục xử lí thủ tục xử lí dụng kiểu dữ
xâu.
quen
thuộc.
2016 - 2017
trình kết hợp
các thao tác
xử lí xâu thực
hiện một tình
huống
mới
trong bài toán
lập trình.
HS vận dụng
kiểu dữ liệu
xâu, các phép
ghép
xâu,
phép so sánh,
các hàm và
thủ tục hàm
xử lí xâu kết
hợp với các
kiêu dữ liệu
khác đã học
để viết được
chương trình
hoàn
chỉnh
giải quyết vấn
Chương trình bài tập 1 (chương trình 3- hoạt động 13).
Chương trình bài tập 2 (chương trình 4 - hoạt động 13).
Chương trình sử dụng kết hợp các thao tac xử lí xâu bài tập 3 (chương
trình 5- hoạt động 14)
Chương trình sử dụng kết hợp các thao tac xử lí xâu bài tập 4 (chương
trình 6 - hoạt động 14)
Chương trình sử dụng kết hợp các thao tac xử lí xâu bài tập 5 (chương
trình 7 - hoạt động 14)
Hoạt động 1. Lựa chọn tình huống công việc (gợi động cơ).
GV đặt vấn đề yêu cầu HS hãy cho biết các kiểu dữ liệu từ trước đến nay
ta sử dụng chủ yếu thuộc loại số hay phi số?
GV nhận xét câu trả lời và nhấn mạnh các kiểu dữ liệu đã học chủ yếu là
các kiểu dữ liệu loại số.
Hoạt động 2: Phát hiện tình huống có vấn đề.
GV đặt vấn đề vậy với những bài toán có sử dụng kiểu dữ liệu kí tự (văn
bản) thì thực hiện như thế nào?
GV nhận xét và trình bày cho học sinh thấy nếu chỉ sử dụng kiểu dữ liệu
chuẩn Char (kiểu kí tự) đã học thì có thể sẽ không hoàn thành được các bài toán.
GV nêu vấn đề yêu cầu học sinh chỉ ra cách khắc phục hạn chế của kiểu
dữ liệu Char (kiểu kí tự chuẩn đã học). Giới thiệu kiểu dữ liệu xâu có thể khắc
phục các nhược điểm trên.
Hoạt động 3: HS đọc skg.
Hoạt động 4: Tìm hiểu về định nghĩa xâu, cách tham chiếu đến các phần tử
trong xâu.
GV yêu cầu học sinh cho biết định nghĩa xâu.
GV trình bày để học sinh biết được xâu trong ngôn ngữ lập trình pascal
được viết trong cặp dấu nháy đơn.
GV trình bày cho HS thấy rằng có thể xem xâu là mảng một chiều mà mỗi
phần tử là một kí tự.
GV yêu cầu học sinh dựa vào cách thức truy cập phần tử trong mảng một
{độ dài ngầm định là 255}
GV lưu ý học sinh trong lập trình khi đặt tên các biến ngoài việc đặt tên gần
với ý nghĩa bài toán, ta thường đặt các biến xâu là st, st1,st2,st3... để tạo thành
thói quen tránh nhầm lẫn sau này.
GV yêu cầu học sinh chỉ ra các khai báo đúng trong phần khai báo sau:
Ví dụ 3:
VAR
St1, St2: string[50];
St3: string(30);
St3: string[300];
GV nhận xét phần trình bày của học sinh. Đồng thời nhắc lại cú pháp khai
báo xâu.
Hoạt động 6: HS đọc skg.
Hoạt động 7: Tìm hiểu về thao tác ghép xâu.
GV yêu cầu HS đọc thông tin SGK và cho biết thao tác ghép xâu là gì?
Giáo viên: Nguyễn Văn Đông
8
Sáng kiến kinh nghiệm Tin học
2016 - 2017
GV nhấn mạnh thao tác ghép xâu cho phép ghép nhiều xâu thành một xâu
GV trình bày (ghi bảng) cú pháp ghép xâu.
Ví dụ 4:
‘Viet’ + ’ Nam’ ta được xâu ‘Viet Nam’
‘Hoc’ + ‘-‘ +’mon’ + ‘-‘ + ‘tin’ ta được xâu ‘Hoc-mon-tin’
GV trình chiếu mô phỏng các thao tác ghép xâu bằng chương trình đã được
9
Sáng kiến kinh nghiệm Tin học
2016 - 2017
GV giới thiệu các thành phần trong thủ tục st là xâu, vt và n là các giá trị
nguyên (lưu ý các đại lượng st, vt, n sẽ được sử dụng tiếp ở các thủ tục và hàm
xử lí xâu tiếp theo).
GV giới thiệu ý nghĩa của thủ tục là xóa n kí tự trong xâu st bắt đầu từ vị
trí vt (lưu ý xâu st bị thay đổi sau khi xóa n kí tự)
GV trình bày ví dụ
Ví dụ 6:
st := ‘Thanh_hoa’
Delete(st,6,4);
Sau khi thực hiện thủ tục xâu st còn lại là: ‘Thanh’
GV đặt vấn đề. Hãy theo dõi ví dụ sau (GV có thể trình chiếu ví dụ lên
bảng)
Ví dụ 7:
St := ‘Vinh_hung’;
Delete(st,1,5);
GV đặt vấn đề sau khi thục hiện thủ tục xâu st còn lại là gì.
GV nhận xét kết quả và cho biết xâu st còn lại là ‘hung’ (nếu học sinh trả
lời sai giáo viên có thể giải thích để học sinh rõ)
•
Thủ tục insert(st1, st2, vt); Chèn xâu st1 vào xâu st2 bắt đầu từ vị
trí vt.
GV trình bày ví dụ.
Ví dụ 8:
st2 := ‘Hung’;
delete(st1,6,3);
Writeln(‘ket qua 1’, st1);
insert(st2, st1, 6);
Writeln(‘ket qua2’, st1);
Writeln(‘ket qua3’, st2);
readln;
End.
GV nhận xét câu trả lời của học sinh (lưu ý đây là chương trình đầu tiên có
sử dụng kết hợp thủ tuc delete và insert có thể học sinh trả lời chưa chính xác
kết quar1, kết quar2 và kết quả 3). GV chạy chương trình và giải thích các kết
quả cho học sinh. Như vậy học sinh sẽ nhớ và hiêu ý nghĩa các thủ tục vừa học.
Hoạt động 11: Giới thiệu các hàm xử lí xâu
GV giới thiệu về các hàm xử lí xâu:
•
Hàm copy(st,vt,n) tạo xâu gồm n kí tự liên tiếp bắt đầu tự vị trí vt
của xâu st.
GV Giới thiệu các thành phần và ý nghĩa của hàm copy.
GV trình bày ví dụ
Ví dụ 10:
st:= ‘Tin_hoc’;
st1:= copy(st,4,3);
Sau khi thực hiện xong hàm trên xâu st1 là ‘học’
GV cần nhấn mạnh hàm copy() tạo ra một xâu mới từ những kí tự trong xâu
đã có.
Giáo viên: Nguyễn Văn Đông
11
Ví dụ 13:
st1:= ‘a’;
st2:= ‘cdbae’;
X:=pos(st1,st2);
X sẽ có giá trị là 4.
Gv đặt vấn đề hãy theo dõi ví dụ sau và cho biết giá trị của hàm pos?
Ví dụ 14:
st1:=’a’;
st2:= ‘cabdaeah’;
x:=pos(st1,st2);
Giáo viên: Nguyễn Văn Đông
12
Sáng kiến kinh nghiệm Tin học
2016 - 2017
GV nhấn mạnh giá trị của x là 2. Trong xâu st2 có nhiều xâu st1 nhưng hàm
trả về kết quả là vị trí đầu tiên.
•
Hàm upcase(ch): cho kết quả là chữ cái viết hoa của ch (ch là kí
tự).
GV lưu ý học sinh xâu là dãy các kí tự. Muốn viết hoa xâu ta phải viết hoa
lần lươt tất các kí tự trong xâu.
GV trình bày ví dụ.
Ví dụ 14:
ch:=’b’;
Sáng kiến kinh nghiệm Tin học
2016 - 2017
st:=’ab’;
st1:= ‘abc’;
st2:=’abdceab’;
N:=pos(st,st2);
M:=pos(st1,st2);
Writeln(‘Vi tri xau’, st, ‘trong xau’, st2, ‘ la: ’, N);
Writeln(‘Vi tri xau’, st1, ‘trong xau’, st2 ,‘ la: ’, M);
Readln;
End.
GV chạy chương trình, cho HS xem kết quả.
GV chỉ vào chương trình và giải thích các câu lênh chứa các hàm xử lí xâu.
GV trình chiếu chương trình kết hợp một số hàm xử lí xâu.
Program Viet_hoa; {chương trinh 6}
Var
st: string;
N, i: byte;
Begin
Write(‘Nhap xau’)
Readln(‘st);
N:= lenhth(st);
Writeln(‘Xau vua nhap la’, st);
For i:=1 to N do
st[i]:= upcase(st[i]);
Writeln(‘Xau viet hoa la: ’, st) ;
Readln;
End.
Readln(st1);
Writeln(‘Nhap xau thu hai’);
Readln(st2);
If length(st1) > length(st2) then Writeln(‘ Ket qua la’, st1)
Else Writeln(‘ket qua la’, st2);
Readln;
End.
GV nhận xét cho điểm bài làm của học sinh. Yêu cầu HS lên thực hiện phần
bài làm trên máy tính và chạy chương trình trong TP (trình chiếu trước lớp). HS
có thể hoàn thành nhanh được yêu cầu do đã làm bài trên bảng.
Bai tập 2: Viết chương trình nhập vào từ bàn phím hai xâu st1 và st2.
Kiểm tra và cho biết xâu st1 có trong st2 hay không, nếu có cho biết vị trí xâu
st1 trong st2.
GV có thể gợi ý cho HS vân dụng các câu lênh như trong chương trình 5
vừa trình chiếu (chương trình kiểm tra vị trí hai xâu).
GV yêu cầu một HS lên bảng trình bày. HS có thể làm một trong các
chương trình tương đương như sau.
Program bai_tap2;
Var
st1, st2: string;
Giáo viên: Nguyễn Văn Đông
15
Sáng kiến kinh nghiệm Tin học
2016 - 2017
N:byte;
st2:=’’; {khoi tao xau st2, la xau rong}
n :=length(st1);
For i: = n downto 1 do
Giáo viên: Nguyễn Văn Đông
16
Sáng kiến kinh nghiệm Tin học
2016 - 2017
st2:= st2 + st1[i];
Writeln(‘ ket qua la:’, st2);
Readln;
End.
GV nhận xét cho điểm bài làm của học sinh.
GV lưu ý nhấn mạnh học sinh yêu cầu của bài toán là tạo xâu mới đảo
ngược lại so với xâu đã có. Tránh trường hợp học sinh không tạo xâu mới mà chỉ
hiển thị (ra màn hình) xâu đảo ngược.
Bài tập 4: Viết chương trình nhập vào từ bàn phím xâu st1, tạo xâu st2
gốm tất cả các chữ số có trong st1 (giữ nguyên thứ tự xuất hiện). Đưa kết quả ra
màn hình.
GV gợi ý cho HS xâu st2 được tạo bới các kí tự là chữ số trong xâu st1. Vì
vậy cần phải truy cập vào từng phần tử trong xâu st1 để kiểm tra xem có phải
phần tử này là số hay không. Các phần tử trong xâu st1 nếu là số được ghép lại
(theo thứ tự) tạo thành xâu st2. HS có thể làm một trong các chương trình tương
đương như sau.
Program bai_tap4;
Var
Var
st: string;
i, n: byte;
Begin
Write(‘Nhap xau’);
Readln(st);
While st[1]= ‘ ‘ do delete(st,1,1); {Xoa cac dau cach o dau}
While st[length(st)] = ‘ ‘ do delele(st,length(st), 1);{Xoa dau cach cuoi}
While pos(‘ ‘, st) 0 do delete(st, pos(‘ ‘,st),1); {Xoa cach lien nhau}
Writeln(‘Xau ket qua’);
Readln;
End.
GV nhận xét cho điểm bài làm của học sinh. Nhấn mạnh trong chương
trình có sử dụng câu lệnh lặp while - do để xóa các kí tự cách (trắng) ở đầu,
cuối, và kí tự cách liên tiếp. Lưu ý trong thực tế người ta còn gọi viêc xóa kí tự
cách (trắng) thừa là thao tác chuấn hóa xâu (xâu chuẩn hóa không có các dấu
cách thừa...)
GV yêu cầu HS lên thực hiện phần bài làm trên máy tính chạy chương trình
trong TP (trình chiếu trước lớp).
2.4. Hiệu quả bước đầu của SKKN
Thực tế sau khi áp dụng sáng kiến kinh nghiệm này vào giảng dạy môn
Tin học lớp 11 ở trường, tôi nhận thấy chất lượng bộ môn được nâng cao đáng
kể:
- Khả năng tiếp thu tốt hơn vì các em học và tự kiểm chứng nội dung bằng
chương trình.
- Kỹ năng tư duy, sáng tạo, biết phân tích và giải quyết tình huống của các
em học sinh ngày càng tốt hơn.
Giáo viên: Nguyễn Văn Đông
18
học, ham học hỏi và sáng tạo.
Đề tài này mang tính thực tiễn rất cao cụ thể là: Các em có thể sử dụng
kiến thức lập trình để gải các bài toán thực tế thường gặp. Kết quả là có rất nhiều
em đã dễ dàng vận dụng được kiến thức để giải các bài toán lặp do giáo viên đặt
ra.
Qua thực tế giảng dạy và học tập, được sự giúp dỡ của các thầy cô, các
bạn đồng nghiệp, bản thân tôi đã tiếp thu được nhiều điều bổ ích, thiết thực cho
quá trình giảng dạy và công tác. Tôi mạnh dạn chọn đề tài này với mong muốn
được tạo được hừng thú khi học sinh học ngôn ngữ lập trình Pascal nói riêng và
Giáo viên: Nguyễn Văn Đông
19
Sáng kiến kinh nghiệm Tin học
2016 - 2017
lập trình nói chung. Qua thực nghiệm tôi thấy đề tài này đã có tác dụng tốt trong
việc giảng dạy và học tập của thầy và trò. Tôi sẽ cùng các đồng nghiệp áp dụng
sáng kiến kinh nghiệm này vào công tác giảng dạy Tin học khối 11 môn lập trình
pascal cho những năm tiếp theo nhằm nâng cao hiệu quả và chất lượng dạy học.
3.2 Kiến nghị.
Xuất phát từ tâm nguyện của một giáo viên trẻ đang từng ngày giảng dạy
cho học sinh, tôi mong muốn nếu đề tài của tôi được đánh giá tốt thì cần được
phổ biến một cách rộng rãi để tài liệu đến tay những giáo viên và học sinh yêu
thích ngôn ngữ lập trình Pascal nói riêng môn tin học nói chung.
XÁC NHẬN CỦA THỦ TRƯỞNG
ĐƠN VỊ
3. Sách bài tập tin học 11
Hồ Sĩ Đàm
chủ biên
4. Dạy học theo chuẩn kiến thức, kĩ năng môn Tin học lớp 11 – Hồ Cẩm Hà
5. Lý thuyết và Bài tập lập trình Pascal 5.5-6.0 - Nguyễn Thị Kiều Duyên.
6. Lý thuyết và Bài tập lập trình Pascal – Quách Tuấn Ngọc.
7. Một số sáng kiến kinh nghiệm và ý kiến của đồng nghiệp .
DANH MỤC
Giáo viên: Nguyễn Văn Đông
21
Sáng kiến kinh nghiệm Tin học
2016 - 2017
CÁC ĐỀ TÀI SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG
ĐÁNH GIÁ XẾP LOẠI CẤP PHÒNG GD&ĐT, CẤP SỞ GD&ĐT VÀ CÁC
CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN
Họ và tên tác giả: Nguyễn Văn Đông
Chức vụ và đơn vị công tác: Giáo viên trường THPT Tống Duy Tân
TT
1
Thanh Hóa
C
2014
năng lực học sinh
Giáo viên: Nguyễn Văn Đông
22