Tải bản đầy đủ (.doc) (22 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (123.28 KB, 22 trang )

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


I. MỞ ĐẦU
1.1. Lí do chọn đề tài.
Qua nghiên cứu thực tế dạy học cho thấy việc rèn luyện phương pháp
học tập cho học sinh không chỉ là một biện pháp nâng cao hiệu quả dạy học mà
còn là mục tiêu dạy học. Hiện nay một số học sinh học rất chăm chỉ nhưng vẫn
học chưa tốt, nhất là ở các môn tự nhiên, những em này thường học bài nào biết
bài đấy, học phần sau đã quên phần trước và không biết liên kết các kiến thức
với nhau, không biết vận dụng kiến thức đã học trước đó vào những phần sau.
Phần lớn số học sinh này khi đọc sách hoặc nghe giảng trên lớp không biết cách
tự ghi chép để lưu thông tin, lưu kiến thức trọng tâm vào trí nhớ của mình. Dạy
học theo định hướng phát triển năng lực học sinh sẽ học được phương pháp học,
tăng tính độc lập, chủ động, sáng tạo và phát triển tư duy. Cách học này còn phát
triển được năng lực riêng của từng học sinh không chỉ về trí tuệ, hệ thống hóa
kiến thức (huy động những điều đã học trước đó để chọn lọc các ý để ghi) mà
còn là sự vận dụng kiến thức được học qua sách vở vào cuộc sống. Kể từ năm
học 2014 - 2015, hình thức dạy học theo định hướng phát triển năng lực đã tập
huấn đến từng giáo viên. Phương pháp có ưu điểm là phát huy tối đa tính sáng
tạo của học sinh, phát triển năng khiếu. Tất cả những điều đó làm học sinh giảm
áp lực trong học tập.
Phương pháp Dạy học theo định hướng phát triển năng lực trong dạy học Tin
học sẽ dần dần hình thành cho học sinh tư duy mạch lạc, hiểu biết vấn đề một
cách sâu sắc, có cách nhìn vấn đề một cách hệ thống, khoa học. Chính vì vậy, tôi
mạnh dạn viết sáng kiến “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”. Hy vọng rằng những
kinh nghiệm này của tôi có thể góp phần giúp các em học sinh hiểu bài hơn và
có hứng thú hơn với môn Tin học.
1.2. Mục đích nghiên cứu
Mục tiêu nghiên cứu của đề tài là giúp các em học sinh lớp 11 khi học
kiểu dữ liệu xâu thay vì cách tiếp cận theo nội dung sẽ là cách tiếp cận theo định
hướng phát triển năng lực. Thông qua các ví dụ và bài tập học sinh sẽ biêt vận

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

trong quá trình dạy học, đồng thời phải biết chọn nội dung “lồng ghép” phù
hợp với kiến thức trong từng bài giảng, nhằm hình thành cho học sinh thói quen
tích cực, độc lập, sáng tạo và giải quyết tình huống có vấn đề. Một trong những
phương pháp dạy học mới và hiện đại nhất được đưa vào là phương pháp dạy
học theo định hướng phát triển năng lực. Đây một phương pháp dạy học mới
đang được rất nhiều nước trên thế giới áp dụng. Qua việc tìm hiểu và vận dụng
phương pháp dạy học theo định hướng phát triển năng lực, tôi nhận thấy
phương pháp dạy học này rất có hiệu quả trong quá trình dạy học của giáo viên
và học tập của học sinh
2.2. Thực trạng của vấn đề trước khi áp dụng SKKN
Từ thực tiễn giảng dạy phần “kiêu xâu” trong chương trình tin học lớp 11
tại trường THPT Tống Duy Tân tôi nhận thấy rằng: Sau khi học xong, giáo
Giáo viên: Nguyễn Văn Đông

3


Sáng kiến kinh nghiệm Tin học

2016 - 2017

viên kiểm tra lại khả năng nhớ bài và khả năng trình bày lại phần nội dung
chính trong bài thì học sinh thể hiện rất máy móc, gò bó. Học sinh chỉ nhớ qua
loa và học bài theo hình thức thuộc lòng, những kỹ năng vận dụng rất hạn chế.
Do không nhớ được trình tự cú pháp các câu lệnh, các thao tác xử lí xâu nên
học sinh không viết ra được những gì mình nhớ, không thực hiện được các thao
tác cơ bản với kiểu xâu. Cũng chính vì vậy mà học sinh không hoàn thành được
mục tiêu kiến thức kỷ năng mà giáo viên đã đặt ra.
2.3. Giải quyết vấn đề và tổ chức thực hiện
Bước 1: Lựa chọn chủ đề, nội dung dạy học

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

số mà cả kiểu
phi số - dạng
kí tự.
Giáo viên: Nguyễn Văn Đông

Thông hiểu
HS chỉ ra và
giải
thích
được các kiểu
dữ liệu đã
được học chủ
yếu
được
thực hiện đối
với kiểu số.

Vận dụng
thấp

Vận dụng
cao

HS tìm hiểu và
đề xuất các
thao tác có thể
khi làm việc
với kiểu dữ
liệu kí tự.


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.


HS lấy được ví
dụ khai báo
xâu.

HS chỉ ra các
khai báo kiểu
xâu đúng (sai)
trong các ví dụ
khai báo xâu.
2.
Các Câu
HS biết được HS hiểu được HS lấy được ví
thao tác hỏi/bài tập cú pháp ghép các
thành dụ ghép xâu.
xử lí xâu. định tính
xâu
phần
trong
câu lênh ghép
nhiều
xâu
thành một..
HS biết được HS hiểu được HS lấy được ví
cú pháp so quy ước so dụ so sánh hai
sánh hai xâu. sánh hai xâu xâu
kí tự.
HS biết được
các
hàm

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

thành
xâu.

HS viết được
chương trình
sử dụng kết
hợp các thao
tác ghép xâu,
so sánh hai
xâu thực hiện
một
tình
huống mới.
Học sinh biết Học sinh hiểu HS viết được HS viết được
được ý nghĩa được ý nghĩa các
chương các chương

Giáo viên: Nguyễn Văn Đông

thao
ghép
xâu
một

HS hiểu được
ý nghĩa của
phép
ghép
xâu, phép so
sánh hai xâ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.

xâu.
liệu xâu. Trong
chương trình
có các hàm và
thủ tục xử lí
xâu.
Bài
tập
HS vận dụng
thực hành
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 đề
trong
tình
huống

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

đề trong tình
huống mới.

Bước 4: Đề xuất năng lực có thể hướng tới
Qua dạy học chủ đề “kiểu dữ liệu xâu” có thể hướng tới hình thành và
phát triển năng lực:
- Năng lực sử dụng ngôn ngữ, thao tác với kiểu dữ liệu xâu bước đầu làm
quen với khái niệm hàm và thủ tục.
- Năng lực thực hành thao tác với xâu.
- Năng lực thực hành, vận dụng kiến thức tin học vào cuộc sống..
Bước 5: Tiến trình dạy học.
Chuẩn bị của giáo viên và học sinh:
- Chuẩn bị của học sinh: Sách GK tin 11, vở ghi.
- Chuẩn bị của giáo viên:
+ Giáo án, Sách GK Tin 11, Sách GV Tin 11, chuẩn kiến thức kĩ năng Tin
học 11, máy tính, máy chiếu;
+ Giáo viên chuẩn bị các chương trình có sử dụng kiểu dữ liệu xâu, các
thao tác cơ bản với xâu (sử dụng để chạy minh họa các chương trình trong
Pascal và trình chiếu)
Giáo viên: Nguyễn Văn Đông

6


Sáng kiến kinh nghiệm Tin học

2016 - 2017

Chương trình ghép xâu (chương trinh 1- hoạt động 7)
Chương trình có sử dụng kết hợp thủ tục delete và insert (chương trinh 2hoạt động 10)

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

chiều trình bày cách tham chiếu phần tử trong xâu.
Giáo viên: Nguyễn Văn Đông

7


Sáng kiến kinh nghiệm Tin học

2016 - 2017

Ví dụ 1:
Xâu st là ‘Hoc_sinh’
st[1] là ‘H’
st[5] là ‘s’
Hoạt động 5: Tìm hiểu về cú pháp khai báo xâu.
GV yêu cầu học sinh đọc tìm hiểu SGK và cho biết cú pháp khai báo xâu.
GV trình bày cú pháp khai báo xâu. Chú ý nhấn mạnh xâu trong Turbo
pascal có độ dài tối đa 255 kí tự.
GV trình bày (ghi bảng) cú pháp khai báo xâu.
VAR <tên biến> : string[<độ dài lớn nhất của xâu>];
Hoặc VAR <tên biến> : string;
GV giải thích các thành phần trong cú pháp khai báo xâu. Lưu ý HS không
cần phải ghi phần giải thích.
GV đưa ra các ví dụ về khai báo biến xâu. Yêu cầu học sinh lấy ví dụ tương
tự về việc khai báo biến xâu.
Ví dụ 2:
VAR
St: string[10];
Hoten: string[20];
Diachi: string;

{độ 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

chuẩn bị sẵn.
Program ghep_xau; {chương trình 1}
Var
st, st1, st2: string;
Begin
st1:= ‘Thanh’;
st2:= ‘_Hoa’;
st:= st1 + st2;
writeln(‘ Ket qua la’, st);
readln;
End.
GV chạy chương trình, cho HS xem kết quả.
Hoạt động 8: Tìm hiểu về các phép so sánh hai xâu.
GV yêu cầu HS đọc thông tin SGK và cho biết các phép so sánh hai xâu.
GV (ghi bảng) các phép so sánh hai xâu bao gồm =, <>, <=. >=.
GV yêu cầu học sinh cho biết qui tắc so sánh hai xâu.
GV giải thích cho học sinh biết trong bài lập trình nếu có phép so sánh
ngôn ngữ lập trình pascal sẽ sử dụng qui tắc này để so sánh.
GV đặt vấn đề hãy sử dụng qui tắc so sánh để so sánh hai xâu trong ví dụ
sau.
Ví dụ 5:
‘Hoc’ và ‘Hoc’
‘Hoc’ và ‘Hoc sinh’
‘Hoc_bai’ và ‘Lam_bai’
GV nhận xét phần trả lời của học sinh.
Hoạt động 9: Giới thiệu các thủ tục xử lí xâu.
GV giới thiệu về các thủ tục xử lí xâu:
• Thủ tục delete(st,vt,n)
Giáo viên: Nguyễn Văn Đông


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:

st1:=’mon’;
st2:= ‘hoc--sinh’;
Insert(st1, st2, 5);
Sau khi thưc hiện thủ tục xâu st2 là: ‘hoc-mon-sinh’
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ụ 9:
St11 := ‘va’;
St2:=’hoa--hong’;
Insert(st1,st2, 5);
GV đặt vấn đề sau khi thục hiện thủ tục xâu st2 là gì?

Giáo viên: Nguyễn Văn Đông

10


Sáng kiến kinh nghiệm Tin học

2016 - 2017

GV nhận xét kết quả và cho biết xâu st2 là ‘hoa-và-hong’’ (nếu học sinh
trả lời sai giáo viên có thể giải thích để học sinh rõ)
Hoạt động 10: GV chiếu chương trình đã được chuẩn bị sẵn có sử dụng thủ tục
delete và insert yêu cầu học sinh cho biết kết quả.
Program tong_hop; {chương trình 2}
Var
st, st1, st2: string;
Begin
st1 := ‘Vinh_Loc’;

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



Sáng kiến kinh nghiệm Tin học

2016 - 2017

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ụ 11:
st := ‘Vinh_loc’;
st1:=copy(st,1,4);
GV đặt vấn đề sau khi thực hiện hàm ta được xâu st1là gì?
GV nhận xét kết quả và cho biết xâu st1 là ‘Vinh’ (nếu học sinh trả lời sai
giáo viên có thể giải thích để học sinh rõ)
GV giới thiệu tiếp các hàm xử lí xâu:

Hàm Length(st): Cho kết quả là độ dài xâu st.
GV đặt vấn đề tập giá trị của hàm length() là gì?
GV nhấn mạnh kết quả hàm trả về là độ dài xâu vì vậy giá trị của hàm
trong khoảng từ 0 đến 255.
Ví dụ 12:
St:= ‘Tin_hoc’
X:= length(st);
X có giá trị là 7.

Hàm Pos(st1, st2): Cho vị trí xuất hiện đầu tiên của xâu st1 trong
st2.
GV giải thích ý nghĩa của hàm. Cần nhấn mạnh vị trí đầu tiên là gì. Trường
hợp có nhiều xâu st1 trong st2 (tức là có nhiều vị trí) thì hàm sẽ trả về kết quả là
vị trí đầu tiên.
GV trình bày ví dụ.

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’;

ch1:=upcase(ch);
Ta được kí tự ch1 là ‘B’.
Hoạt động 12: Giới thiệu chương trình.
GV chiếu chương trình có sử dụng các hàm và thủ tục. Thực hiện chạy các
chương trình trong TP hoặc Freepascal. GV nhắc các em quan sát chương trình
không ghi chép.
Program do_dai_xau; {chương trinh 3}
Var
st: string;
N: byte;
Begin
Write(‘nhap xau’);
Readln(st);
N:= length(st);
Writeln(‘ xau vua nhap la’, st);
Writeln(‘Xau có do dai’, N);
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.
Program Vi_tri; {chương trinh 5}
Var
st, st1, st2: string;
N, M:byte
Begin
Giáo viên: Nguyễn Văn Đông

13



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.

GV giải thích chương trình, chạy chương trình cho học sinh xem kết quả.
Đồng thời giải thích cho học sinh ở đây ta đã truy cập từng phần tử trong xâu
(tương tự như mảng một chiều). GV có thể gợi động cơ cho học sinh giả sử yêu
cầu của bài toán chỉ là viết hoa một phần trong xâu ta sẽ xử lí như thế nào
(trường hợp viết hoa phần tên trong xâu họ và tên)? Qua việc trả lời của học sinh
như vậy học sinh đã có sự liên hệ đến bài toán thực tế.
Hoạt động 13: Vận dụng các thao tác xử lí xâu (vận dụng thấp).
Giáo viên: Nguyễn Văn Đông

14


Sáng kiến kinh nghiệm Tin học

2016 - 2017

GV yêu cầu HS hoàn thành bài tập sau: (Bài tập giải quyết tình huống thực
tế).
Bài tập 1: Viết chương trình nhập vào từ bàn phím hai xâu. Đưa ra màn
hình xâu dài hơn, nếu bằng nhau thi đưa ra xâu nhập sau.
GV có thể gợi ý cho HS vân dụng các câu lênh như trong chương trình 4
vừa trình chiếu (chương trình tính độ dài xâu).
GV yêu cầu một HS lên bảng trình bày. Học sinh có thể làm một trong các
chương trình tương đương như sau (chương trình học sinh làm có thể các em sử
dụng các biến để lưu lại độ dài các xâu)
Program bai_tap1;
Var
st1, st2: string;
Begin
Write(‘Nhap xau thu nhat’);

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;

Begin
Write(‘Nhap xau thu nhat’);
Readln(st1);
Writeln(‘Nhap xau thu hai’);
Readln(st2);
N:=pos(st1,st2);
If N = 0 then Writeln(‘ Xau thu nhat khong co trong xau thu hai’)
Else Writeln(‘Xau thu nhat xuat hien trong xau thu hai o vi tri:’, N);
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)
Hoạt động 14: Vận dụng cao các thao tác xử lí xâu.
GV đặt vấn đề trong các bài tập và ví dụ ở trên chúng ta đã sử dụng thao
thac truy cập phân tử trong xâu, các hàm và thủ tục xử lí xâu.Trong thực tế có
những bài toán cần kết hợp các thao tác xử lí xâu để viết chương trình.
Bài tập 3: Viết chương trình nhập xâu st1 từ bàn phím. Xâu st2 được tạo
bởi các kí tự trong xâu st1 theo chiều ngược lại. Hãy tạo xâu st2. Đưa kết quả ra
màn hình. (ví dụ st1 là ‘ABCD’ ta có st2 là ‘DCBA’).
GV gợi ý cho HS xâu st2 được tạo bởi các kí tự trong xâu st1 theo chiều
ngược lại. Các phần tử trong xâu st1 được ghép lại theo thứ tự từ cuối lùi về đầu
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_tap3;
Var
st1, st2: string;
i, n: byte;
Begin
Write(‘Nhap xau’);
Readln(st1);

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

st1, st2: string;
i, n: byte;
Begin
Write(‘Nhap xau’);
Readln(st1);
st2:=’’; {khoi tao xau st2 la xau rong}
n :=length(st1);
For i: = 1 to n do
If (st1[i] >= ‘0’) and (st1[i] <= ‘9’) then {kiem tra phan tu co phai la so}
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. Lưu ý trong chương trình có
sử dụng câu lệnh khởi tạo xâu.
Giáo viên: Nguyễn Văn Đông

17


Sáng kiến kinh nghiệm Tin học

2016 - 2017

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).
Bài tập 5: Viết chương trình nhập xâu st từ bàn phím. Thực hiện xóa các
dấu cách thừa trong xâu (dấu cách thừa là các dấu cách ở đầu, ở cuối và hai dấu
cách liên tiếp trong xấu). Đưa ra màn hình xâu kết quả.
Program bai_tap5;

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



Sáng kiến kinh nghiệm Tin học

2016 - 2017

- Thông qua một số bài tập mẫu giúp cho học sinh nắm được phương pháp
giải chung, từ đó áp dụng để giải một số bài toán cơ bản có sử dụng kiểu dữ liệu
xâu
- Sau khi thực hiện đề tài này tại trường trung học phổ thông Tống Duy
Tân. Qua từng tiết học, tôi đã vận dụng phương pháp trên, kết hợp cả lý thuyết
lẫn thực hành cho học sinh thực hiện lập trình giải các bài toán trong chương
trình phổ thông, từ đó áp dụng để giải các bài toán nâng cao và các bài toán
trong thực tế. Thông qua đó tạo hứng thú giúp học sinh tích cực hơn trong học
lập trình Pascal nói riêng và môn Tin học nói chung.
- SKKN cũng được các thầy cô bộ môn Tin trường THPT Tống Duy Tân
sử dụng để giảng dạy kiểu dữ liệu xâu (chương trinh tin học 11), dạy bồi dưỡng
học sinh khá giỏi và nhận được phản hồi tốt. SKKN được các thầy cô sử dụng
làm tài liệu giảng dạy hữu ích.
III. KẾT LUẬN VÀ KIẾN NGHỊ
3.1. Kết luận
Ngôn ngữ lập trình nói chung đóng vai trò rất quan trọng trong việc xây
dựng các chương trình ứng dụng để phục vụ cho cuộc sống. Nhờ sự phát triển
của tin học (trong đó các nhà lập trình chuyên nghiệp đóng vai trò không nhỏ)
mà hiện nay hầu hết các lĩnh vực trong xã hội đã ứng dụng được tin học để giải
quyết công viêc nhanh, hiệu quả và chính xác hơn.
Hiện nay, ngôn ngữ lập trình Pascal đã trở thành ngôn ngữ lập trình phổ
biến nhất trên thế giới sử dụng trong lĩnh vực giảng dạy. Trong quá trình giảng
dạy, các thầy cô có thể đưa ra các vấn đề như lập trình các game nhỏ…để các
em có thể chứng tỏ được khả năng của mình làm cho học sinh yêu thích môn

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Ị


Thanh Hóa, ngày 15 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
Người viết

Nguyễn Văn Đông

TÀI LIỆU THAM KHẢO
Giáo viên: Nguyễn Văn Đông

20


Sáng kiến kinh nghiệm Tin học

2016 - 2017

1. Sách giáo khoa tin học 11

Hồ Sĩ Đàm

chủ biên

2. Sách giáo viên tin học 11

Hồ Sĩ Đàm

chủ biên


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


Tên đề tài SKKN

Sử dụng kiểu xâu thực hiện phép
toán với số nguyên lớn
Dạy học kiểu dữ liệu tệp, thao tác

2

với tệp theo định hướng phát triển

Kết quả
Cấp đánh
đánh giá
Năm học
giá xếp loại
xếp loại đánh giá xếp
(Phòng, Sở,
(A, B,
loại
Tỉnh...)
hoặc C)
Sở GD&ĐT
Thanh Hóa

C

2012

Sở GD&ĐT

Thanh Hóa

C

2014

năng lực học sinh

Giáo viên: Nguyễn Văn Đông

22



×