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

SKKN hướng dẫn giải một số bài tập trong sách bài tập tin học 11 nhằm nâng cao kết quả học tập cho học sinh và lựa chọn, bồi dư

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 (213.79 KB, 37 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ

TRƯỜNG THPT TRIỆU SƠN 3

SÁNG KIẾN KINH NGHIỆM

HƯỚNG DẪN GIẢI MỘT SỐ BÀI TẬP TRONG
SÁCH BÀI TẬP TIN HỌC 11 NHẰM
NÂNG CAO KẾT QUẢ HỌC TẬP CHO HỌC SINH VÀ
LỰA CHỌN, BỒI DƯỠNG HỌC SINH GIỎI

Người thực hiện: Lê Thị Quỳnh
Chức vụ: Giáo viên
Đơn vị công tác: Trường THPT Triệu Sơn 3
SKKN thuộc lĩnh vực (môn): Tin học

THANH HOÁ NĂM 2018


MỤC LỤC
1. MỞ ĐẦU.................................................................................................................................1
1.1. LÝ DO CHỌN ĐỀ TÀI...................................................................................................1
1.2. MỤC ĐÍCH NGHIÊN CỨU............................................................................................1
1.3. ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI..................................................................1
1.4. PHƯƠNG PHÁP NGHIÊN CỨU....................................................................................2
2. NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM.................................................................3
2.1. CƠ SỞ LÍ LUẬN CỦA SÁNG KIẾN KINH NGHIỆM.................................................3
2.2. THỰC TRẠNG VÀ NHỮNG VẤN ĐỀ CẦN GIẢI QUYẾT........................................3
Bài 4.12/tr33........................................................................................................................4
Bài 4.25/tr39........................................................................................................................4
Bài 4.27/tr39........................................................................................................................4


Bài 4.39/tr45........................................................................................................................4
Bài 4.40/tr45........................................................................................................................4
Bài 4.41/tr45........................................................................................................................4
Bài 4.42/tr46........................................................................................................................4
Bài 7.14/tr68........................................................................................................................4
Bài 7.16/tr69........................................................................................................................5
Bài 7.40/tr75........................................................................................................................5
2.3. CÁC GIẢI PHÁP GIẢI QUYẾT VẤN ĐỀ.....................................................................6
2.3.1. Xác định bài toán, khai báo dữ liệu, xây dựng ý tưởng, viết thuật toán...................6
2.3.1.2. Bài 4.25/tr38...........................................................................................................7
2.3.1.3. Bài 4.27/tr39...........................................................................................................7
2.3.1.4. Bài 4.39/tr45...........................................................................................................8
2.3.1.5. Bài 4.40/tr45...........................................................................................................8
2.3.1.7. Bài 4.42/tr46...........................................................................................................9
2.3.1.8. Bài 7.14/tr6 8........................................................................................................10
2.3.1.9. Bài 7.16/tr69.........................................................................................................10
2.3.1.10. Bài 7.40/tr75.......................................................................................................11
2.4.1. Kết quả học tập.......................................................................................................17
2.4.2. Đối với nhóm học sinh khá giỏi..............................................................................18
3. KẾT LUẬN, KIẾN NGHỊ....................................................................................................19
3.1. KẾT LUẬN....................................................................................................................19
3.2. KIẾN NGHỊ...................................................................................................................19
TÀI LIỆU THAM KHẢO.....................................................................................................20
DANH MỤC.............................................................................................................................21
PHỤ LỤC 1...............................................................................................................................22
PHỤ LỤC 2: CODE CÁC BÀI TẬP TRONG SÁCH BÀI TẬP.............................................23



1. MỞ ĐẦU

1.1. LÝ DO CHỌN ĐỀ TÀI

Sách giáo khoa và sách bài tập là hai cuốn tài liệu rất quan trọng cho chương
trình mỗi môn học. Đối với môn Tin học, sách giáo khoa cung cấp kiến thức các
nội dung học tập, sách bài tập mở rộng, khắc sâu hơn kiến thức cho người học
thông qua các bài tập với các mức độ khác nhau. Trên cơ sở các bài tập trong
sách bài tập có thể mở rộng các bài tập phức tạp hơn để làm nguồn tài liệu cho
việc bồi dưỡng học sinh thi học sinh giỏi cấp Tỉnh.
Học sinh theo học các môn khoa học tự nhiên và học sinh khá giỏi là đối
tượng học sinh ham học hỏi, thích tìm hiểu và không muốn thua kém bạn bè nên
giáo viên cần tạo tạo động lực, kích thích học sinh nghiên cứu, tìm hiểu môn
học. Từ đó, hướng dẫn, rèn luyện thông qua nhiều bài tập mới, giúp các em thực
sự phát huy hết khả năng tư duy, sáng tạo không chỉ trong phạm vi môn học mà
còn hỗ trợ việc học tốt các môn học liên quan. Giúp nâng cao kết quả học tập
của học sinh, đồng thời lựa chọn được những học sinh tham gia kì thi học sinh
giỏi cấp Tỉnh.
Các bài tập trong cuốn Bài tập Tin học 11, tác giả không nêu đủ hướng
dẫn và lời giải chi tiết cho từng bài trong sách. Thậm chí một số giáo viên trẻ
tuổi cũng gặp khó khăn trong việc nêu thuật toán và lời giải cho một số bài tập
trong sách bài tập.
Với kinh nghiệm của bản thân trong quá trình giảng dạy Tin học lớp 11 và ôn
thi học sinh giỏi, tôi quyết định chọn đề tài : "Hướng dẫn giải một số bài tập
trong sách bài tập Tin học 11 nhằm nâng cao kết quả học tập cho học sinh và
lựa chọn, bồi dưỡng học sinh giỏi" làm đề tài nghiên cứu của mình trong năm
học 2017-2018.
1.2. MỤC ĐÍCH NGHIÊN CỨU

Với lý do chọn đề tài đã trình bày ở trên, tôi mong muốn đề tài của mình sẽ
giúp đỡ phần nào các khó khăn cho việc nâng cao chất lượng, hiệu quả của môn
học cho học sinh; Hỗ trợ các đồng nghiệp trong việc giảng dạy bộ môn Tin học

11, giúp đồng nghiệp có thêm một nguồn tài liệu cơ bản để ôn tập, bồi dưỡng
cho học sinh giỏi. Từ đó, có thể giảm bớt khó khăn tìm được nguồn học sinh
tham gia kì thi học sinh giỏi cấp Tỉnh. Cụ thể:
- Khảo sát, đánh giá được thực trạng việc lựa chọn, bồi dưỡng học sinh tham gia
thi học sinh giỏi cấp Tỉnh của trường Trung học phổ thông Triệu Sơn 3.
- Nâng cao được hiệu quả sử dụng sách bài tập Tin học 11.
- Nâng cao được kết quả học tập môn Tin học 11 cho học sinh các lớp đăng kí
theo học các môn khoa học tự nhiên.
- Có thêm một tài liệu dễ dàng tự học, tư duy sáng tạo để từ đó nâng cao chất
lượng dạy – học và sẽ có nhiều học sinh khá giỏi tham gia vào nguồn thi học
sinh giỏi cấp Tỉnh.
1.3. ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI

- Các bài tập trong sách bài tập Tin học 11 THPT.
- Các bài tập mở rộng trên cơ sở các bài tập trong sách bài tập Tin học 11
1


- Sự tư duy, ý thức học tập của học sinh lớp 11 THPT.
1.4. PHƯƠNG PHÁP NGHIÊN CỨU

Để thực hiện đề tài này, tôi đã sử dụng các phương pháp:
- Phương pháp nghiên cứu xây dựng cơ sở lí thuyết: Cơ sở lý thuyết là các tài
liệu liên quan đến nội dung về bài tập trong sách bài tập Tin học lớp 11: Chuẩn
kiến thức kỹ năng và chương trình Tin học 11 hiện hành của Bộ GD&ĐT, Sách
Giáo khoa Tin học 11, sách Giáo viên Tin học 11, sách Bài tập Tin học 11 hiện
hành; Sự hứng thú trong giờ học môn Tin học và ý thức tự học của học sinh đối
với môn học.
- Phương pháp điều tra khảo sát thực tế, thu thập thông tin: Thông qua các
phiếu điều tra về nguyện vọng tham gia đội dự tuyển thi học sinh giỏi cấp Tỉnh

môn Tin học và nguyên nhân làm học sinh không muốn tham gia đội dự tuyển
thi học sinh giỏi cấp Tỉnh môn Tin học của học sinh lớp 11 trường THPT Triệu
Sơn 3.
- Phương pháp thống kê, xử lý số liệu: Trên cơ sở các phiếu điều tra, các kết
quả học tập, thống kê các số liệu, xử lí số liệu để so sánh giữa nhóm lớp thực
nghiệm và đối chứng.

2


2. 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

Chương trình môn Tin học THPT nhằm trang bị cho học sinh những kiến
thức cơ bản nhất về Công nghệ Thông tin, hình thành cho học sinh một số kỹ
năng cơ bản trong việc sử dụng Công nghệ Thông tin như soạn thảo văn bản, sử
dụng bảng tính, lập trình giải toán, sử dụng Internet tìm kiếm thông tin, Email,...
Nhưng ý nghĩa sâu xa hơn của môn học là nhằm trang bị cho học sinh phương
pháp tư duy và giải quyết vấn đề một cách khoa học. Với ý nghĩa này, phần
chương trình Tin học lớp 11 - Lập trình đóng vai trò quan trọng cho việc hình
thành kỹ năng giải quyết vấn đề theo "kiểu thuật toán", đây là cách giải quyết
vấn đề rất hiệu quả trong mọi lĩnh vực trong cuộc sống. Những bài tập lập trình
giải toán đơn giản trong chương trình Tin học 11, giúp các em nhận thức rõ ràng
và hình thành kỹ năng giải quyết vấn đề theo các bước cơ bản: lập kế hoạch (xây
dựng thuật toán, xác định dữ liệu), triển khai thực hiện (viết chương trình), kiếm
tra tính đúng đắn của kết quả (soát lỗi, kiểm thử), viết báo cáo.
Trong sách bài tập Tin học 11 bao gồm các bài tập từ cơ bản, đến trung bình,
và khó. Vì vậy, các bài tập trong sách bài tập là cơ sở để gợi mở, xây dựng các
đề thi học sinh giỏi cấp trường, cấp Tỉnh. Tuy nhiên, nhiều bài tập có hướng dẫn
giải còn sơ sài hoặc không có hướng dẫn. Điều này khiến cho học sinh không

thể tự hiểu nên không hứng thú học tập, từ đó không tự học, không chịu tư duy
môn học, dẫn đến việc phát hiện học sinh có tố chất môn học rất khó khăn, hệ
quả là giáo viên trong trường khó tìm nguồn học sinh cho kì thi học sinh giỏi
cấp Tỉnh.
2.2. THỰC TRẠNG VÀ NHỮNG VẤN ĐỀ CẦN GIẢI QUYẾT

Trường THPT Triệu Sơn 3 là một trường nằm trong vùng bán sơn địa, điểm
thi đầu vào tương đối thấp, dân cư còn nghèo, điều kiện học tập của học sinh
còn khó khăn, cơ sở vật chất trong nhà trường còn nhiều hạn chế. Học sinh của
trường đa số là học sinh thuộc hộ nghèo, cận nghèo. Mỗi khóa học (trong những
năm gần đây khoảng 7-8 lớp/khóa) chỉ có khoảng 1 đến 2 lớp là học sinh đăng
kí theo học các môn khoa học tự nhiên để thi THPT Quốc gia, đây cũng là số
học sinh có thể tham gia vào các đội dự tuyển của trường thi học sinh giỏi cấp
Tỉnh tất cả các môn Toán, Vật Lí, Hóa học, Sinh học, Tiếng Anh, Tin học, thậm
chí cả Ngữ văn, Địa lí,... Đối với học sinh, Tin học là môn lựa chọn sau cùng
trong các đội dự tuyển. Vì vậy, việc nâng cao chất lượng học tập, lựa chọn và
bồi dưỡng học sinh giỏi là vấn đề vô cùng khó khăn, là nhiệm vụ, là cơ hội và
cũng là thách thức đối với giáo viên khi phụ trách ôn luyện học sinh giỏi.
Trong sách bài tập Tin học 11 là những bài tập mang tính chất gợi mở, đa
dạng từ dễ đến khó, học sinh cần hiểu bản chất vấn đề, thực hiện từng bước thì
việc giải quyết các bài tập sẽ đơn giản hơn rất nhiều. Tuy nhiên, rất nhiều bài tập
thì phần hướng dẫn chưa đầy đủ, khó hiểu đối với học sinh. Với khả năng và
thời gian còn hạn chế, tôi lựa chọn 10 bài tập trong sách bài tập để thực hiện
trong đề tài, các bài tập được lựa chọn trong đề tài có thể mở rộng thành nhiều
bài tập tham khảo cho việc bồi dưỡng học sinh khá giỏi để lựa chọn và bồi
dưỡng những học sinh này có thể tham gia kì thi học sinh giỏi cấp Tỉnh. Đề bài
3


của các bài tập này có sẵn trong sách Bài tập Tin học 11, xin không nêu ra trong

đề tài. Dưới đây tôi chỉ liệt kê tên các bài tập này và nguyên văn phần hướng
dẫn giải trong sách bài tập Tin học 11.
STT
1

2

3

4

5

6

7
8

Tên bài
Gợi ý trong sách bài tập
Bài
SBT, tr98: Khi tìm max phải kiểm tra điều kiện "lớn
4.12/t hơn" và tìm từ đầu về cuối, còn tìm min thì phải kiểm
r33
tra điều kiện "nhỏ hơn" và tìm từ cuối về đầu.
SBT, tr100: Dùng biến đếm d kiểu integer với giá trị
ban đầu bằng 0 để đếm hoặc duyệt từ trái sang phải, gặp
dấu ngoặc mở thì tăng d lên 1, gặp dấu ngoặc đóng thì
Bài
giảm d một đơn vị. Biểu thức ngoặc là sai khi gặp d=-1

4.25/t
hoặc hết biểu thức ngoặc d vẫn lớn hơn 0.
r39
1 2 3 4 5 6 7
( ( ) ( ) ) ) ( ( ) )
d= 0 1 2 1 2 1 1 -1
SBT, tr101: Để xử lý dữ liệu vòng tròn thông thường ta
biểu diễn nó hai lần liên tiếp. Ở bài này ta dùng xâu P
chứa xâu.
'abcdefghijklmnopqrstuvxyz
Bài
abcdefghijklmnopqrstuvxyz'
4.27/t
Việc mã hóa xâu S được thực hiện bằng câu lệnh:
r39
for i := 1 to length(s) do
begin
j := pos(s[i], p) + k ;
s[i] := p[j];
end;
Bài
SBT, tr103: Tạo hàng rào theo kỹ thuật ở các bài 4.35,
4.39/t 4.36
r45
SBT, tr103: Kiểm tra sự tồn tại của hai dấu cách liên
Bài
tiếp giữa xâu bằng hàm pos(‘ ’,s). Nếu có thì xóa một
4.40/t dấu cách ở vị trí tìm được. Lặp lại công việc này cho
r45
đến khi không còn hai dấu cách liên tiếp. Kiểm tra kí tự

đầu và cuối xâu, nếu là dấu cách thì xóa.
SBT,tr103: Đếm số lượng đầu từ. (Kí tự I là đầu từ nếu
Bài
nó không phải là kí tự phân cách và nó hoặc là đứng vị
4.41/t
trí đầu tiên trước nó có dấu cách. Có thể đếm số kí tự
r45
cuối từ)
Bài
SBT, tr103: Dữ liệu vòng tròn, vì vậy phải nhân đôi xâu
4.42/t ban đầu, kiểm tra từng xâu con độ dài N bắt đầu từ vị trí
r46
i (i = 1, 2, .., N).
Bài

SBT, tr116: Tạo mảng thống kê sự xuất hiện các chữ số
4


Bài
9

Bài
10

7.14/t từ 0 đến 9.
r68
SBT, tr116: Dùng xâu P=’0123456789ABCDEF’ để lưu
các chữ số hệ 16. Lấy phần dư của phép chia N cho 16
ta được chữ số hàng đơn vị. Từ đó dễ dàng xác định kí

tự tương ứng ở hệ 16 qua xâu P. Loại bỏ chữ số đã xử lí
7.16/t
bằng cách lấy phần nguyên của phép chi N cho 16. Tiếp
r69
tục các công việc trên cho đến khi N=0.
Lưu ý: có một số ngôn ngữ lập trình cung cấp
phương tiện đưa trực tiếp một số ra dạng biểu diễn hệ
16.
SBT, tr117: Với N≤1000 ta có thể tạo mảng kí tự biểu
7.40/t diễn số N1, sau đó xóa theo quy tắc đã nêu.
r75
Ghi chú: Nếu áp dụng kỹ thuật phân tích nhị phân ta có
thể giải được với trường hợp N rất lớn.

Có thể thấy, nếu đọc đầu bài và xem xét các gợi ý trong sách bài tập của các
bài tập trên, ta nhận thấy nó còn rất mơ hồ đối với học sinh và có rất ít học sinh
hiểu và giải được bài tập theo các gợi ý này.
Đối với học sinh, việc các em có thể làm thêm các bài tập trong sách bài tập
ở nhà là một trong những nội dung quan trọng để các em khắc sâu kiến thức,
nâng cao khả năng tư duy, lập trình giải toán. Vấn đề đặt ra là các em gặp khó
khăn khi vấp phải các bài tập khó với các gợi ý sơ lược như trong sách bài tập
Tin học 11. Theo điều tra khảo sát thực tế học sinh tại các lớp 11C3, 11D3 và
nhóm học sinh khá giỏi của lớp 11C4, 11D4 trường THPT Triệu Sơn 3 trong hai
năm học liên tiếp:
- 11C3, 11C4: Năm học 2016 – 2017,
- 11D3, 11D4 : Năm học 2017 – 2018.
(Lưu ý: Các lớp được chọn tham gia nghiên cứu cho đề tài có nhiều điểm tương
đồng nhau về ý thức học tập của học sinh, thái độ học tập đối với bộ môn Tin
học, đặc biệt là năng lực học tập trước khi tác động.)
Kết quả là:

Bảng 1: Nguyện vọng tham gia đội dự tuyển học sinh giỏi của trường:

Mức độ
Rất muốn
tham gia
Muốn tham
gia
Không
muốn tham
gia

Năm học 2016-2017
Lớp 11C3 Lớp 11C4
SL
%
SL
%

Năm học 2017-2018
Lớp 11D3 Lớp 11D4
SL %
SL
%

Tổng
SL

%

2


4.4

0

0.0

3

6.7

1

4.5

6

4.4

9

20.0

5

20.0

11

24.4


4

17.4

29

21.0

34

75.6

20

80.0

31

68.9

18

78.2

103 74.6

5



Tổng

45

100

25

100

45

100

23

100

138

100

Bảng 2: Về nguyên nhân chủ yếu làm học sinh không muốn tham gia đội dự
tuyển thi học sinh giỏi môn Tin học:

Lớp
11C3
11C4
11D3
11D4


Do là môn

học khó
số SL
%
45 23
51.1
25 15
60.0
45 21
46.7
23 15
65.2
138 74
53.6

Nguyên nhân
Do là môn
Do gia đinh
học phụ
không đồng ý
SL
%
SL
%
18
40.0
3
6.7

7
28.0
3
12.0
19
42.2
5
11.1
6
26.1
2
8.7
50
36.2
13
9.4

Ý kiến
khác
SL %
1
2.2
0
0.0
0
0.0
0
0.0
1
0.7


Từ kết quả điều tra trên cho thấy: Nguyện vọng tham gia đội dự tuyển thi
học sinh giỏi cấp Tỉnh của trường (Bảng 1): Có đến 74.6% học sinh được điều
tra không muốn tham gia, điều này thực sự khó khăn cho việc tìm nguồn học
sinh thi học sinh giỏi cấp Tỉnh của môn học trong nhà trường. Về nguyên nhân
chủ yếu làm học sinh không tham gia (Bảng 2): Có nhiều nguyên nhân, song
nguyên nhân chiếm phần nhiều nhất ở đây là do học sinh thấy môn học khó, khó
tự nghiên cứu và tự làm bài tập, do đó không đủ sức để đầu tư vào môn học, mất
thời gian và ảnh hưởng đến các môn học cơ bản (các môn học để thi trong kì thi
THPT Quốc gia).
Vậy, làm thế nào để có thể nâng cao kết quả học tập, làm thế nào để các em
cảm thấy chủ động tiếp thu kiến thức một cách tư duy sáng tạo, giúp học sinh
hứng thú hơn với môn học, kết quả học tập nói chung được nâng lên, lựa chọn
được những học sinh có tố chất vào đội dự tuyển của trường tham gia dự thi học
sinh giỏi cấp Tỉnh là điều mà bản thân tôi luôn suy nghĩ, trăn trở trong mỗi năm
học.
2.3. CÁC GIẢI PHÁP GIẢI QUYẾT VẤN ĐỀ

2.3.1. Xác định bài toán, khai báo dữ liệu, xây dựng ý tưởng, viết thuật toán
Trong phần này tương ứng với mỗi bài tập đã nêu ở trên, tôi xin nêu thuật
toán cụ thể cho bài tập và mã nguồn viết bằng ngôn ngữ Pascal (mã nguồn xem
phần phụ lục), qua đó các em học sinh có thể tham khảo và tự viết chương trình
giải quyết bài toán, các đoạn mã nguồn nêu trong đề tài đã được chạy thử, có độ
tin cậy cao và đã được các em học sinh khá giỏi trường THPT Triệu Sơn 3 sử
dụng tham khảo và so sánh với bài làm của mình.
2.3.1.1. Bài 4.12/tr33
* Xác định input và output của bài toán.
Input: Dãy số nguyên P =(p1, p2, ..., pn), 2 ≤ n ≤ 100; các pi là các số nguyên
bất kỳ.
Output: Dãy số nguyên P =(p1, p2, ..., pn), sau khi đã đổi chỗ phần tử lớn nhất

có chỉ số nhỏ nhất và phần tử nhỏ nhất có chỉ số lớn nhất.
6


* Khai báo dữ liệu bài toán.
- Mảng P gồm tối đa 100 phần tử kiểu Integer để lưu dãy số P nhập vào từ bàn
phím.
- Các biến nguyên Pmax, imax, Pmin, imin tương ứng là các biến lưu giá trị lớn
nhất, vị trí của giá trị lớn nhất, giá trị nhỏ nhất, vị trí của giá trị nhỏ nhất. Ngoài
ra cần dùng biến N - lưu kích thước mảng, biến i - dùng làm chỉ số duyệt mảng,
nhập và in mảng (N, i - kiểu Integer).
* Thuật toán.
Bước 1: Nhập N và dãy số P =(p1, p2, ..., pn) từ bàn phím;
Bước 2: Pmin ← p[n] ; imin ← n ; Pmax ← p[1] ; imax ← 1; i ← 1;
Bước 3: Nếu i = n thì đến bước 5;
Bước 4: Nếu Pmax < p[i+1] thì Pmax ← p[imax+1]; imax ← i; i ← i+1;
sang bước 3;
Bước 5: Nếu imin = 1 thì đến bước 7;
Bước 6: Nếu Pmin > p[i-1] thì Pmin ← p[i-1]; imin ← i; i ← i-1; sang
bước 5;
Bước 7: p[imin] ← Pmax; p[imax]← Pmin;
Bước 8: In dãy P ra màn hình và kết thúc.
2.3.1.2. Bài 4.25/tr38
* Xác định input và output của bài toán.
Input: Xâu kí tự s chỉ gồm các dấu ngoặc mở “(” hoặc ngoặc đóng “)”
Output: “Yes” nếu là cách đặt ngoặc đúng, “No” nếu là cách đặt ngoặc sai
* Khai báo dữ liệu bài toán.
- Xâu ký tự S (string), biến nguyên d tăng một đơn vị nếu gặp dấu ngoặc mở
hoặc giảm một đơn vị nếu gặp dấu ngoặc đóng.
* Thuật toán

- Xác định ý tưởng: Dùng biến đếm d kiểu integer với giá trị ban đầu bằng 0 để
đếm hoặc duyệt từ trái sang phải, gặp dấu ngoặc mở thì tăng d lên 1, gặp dấu
ngoặc đóng thì giảm d một đơn vị. Biểu thức ngoặc là sai khi gặp d=-1 hoặc hết
biểu thức ngoặc d vẫn lớn hơn 0.
- Thuật toán:
Bước 1: Nhập xâu st;
Bước 2: d←0; i←1;
Bước 3:
Bước 3.1: Nếu st[i]= “(” thì d←d+d;
Bước 3.2: Nếu st[i] = “)” thì d←d-1;
Bước 4: Nếu d=-1 thì thông báo “No” rồi kết thúc
Bước 5: Nếu i>length(st) thì sang bước 7;
Bước 6: i←i+1, rồi quay lại bước 3;
Bước 7: Nếu d=0 thì thông báo “Yes” rồi kết thúc, ngược lại thì thông báo
“No” rồi kết thúc;
2.3.1.3. Bài 4.27/tr39
* Xác định input và output của bài toán
Input: Số nguyên K (1< K ≤ 26) và xâu ký tự S không quá 255 ký tự

7


Output: Xâu X là xâu ký tự S sau khi đã mã hóa theo quy tắc Xê Da với khóa
là K ra màn hình.
* Khai báo dữ liệu bài toán
Số nguyên K (Integer) và xâu ký tự S, X (string)
* Thuật toán
- Xác định ý tưởng: Tạo xâu P gồm 26 ký tự trong bảng chữ cái Tiếng Anh, sau
đó gấp đôi xâu P lên và gọi P là xâu mẫu. Duyệt từng ký tự của xâu S, với mỗi
ký tự S[i] ta thay bằng ký tự cách ký tự S[i] trong xâu mẫu P là K vị trí để được

ký tự X[i] là ký tự được mã hóa.
- Thuật toán:
Bước 1: Nhập số nguyên K (1đến 'z'; X ← S ; i ← 1;
P ← ' abcdefghijklmnopqrstuvxyz abcdefghijklmnopqrstuvxyz ';
Bước 2: Nếu i > length(S) thì đến bước 4;
Bước 3: j ← pos(S[i] , P) + k ; X[i] ← P[j] ; i ← i + 1; sang bước 2;
Bước 4: In ra xâu X.
2.3.1.4. Bài 4.39/tr45
* Xác định input và output của bài toán
Input: Nhập xâu S chứa các ký tự latinh in thường và các chữ số 0..9
Output: Số các ký tự khác nhau trong S.
* Khai báo dữ liệu bài toán
- Khai báo các biến xâu S, biến Count kiểu integer.
* Thuật toán
- Xác định ý tưởng: Duyệt trong khoảng từ 'a'..'z' và từ '0'..'9', dùng hàm pos
kiểm tra sự xuất hiện của mỗi ký tự này trong S, nếu có thì tăng Count.
- Thuật toán:
Bước 1: Nhập S chứa các ký tự latinh in thường và các chữ số 0..9; count ←
0; i ← 97 (97 là mã của chữ 'a') ; j ← 48 (48 là mã của chữ số '0');
Bước 2: Nếu chr(i) > 'z' thì sang bước 5;
Bước 3: Nếu pos(chr(i),s)>0 thì Count ← count + 1;
Bước 4: i ← i+1; sang bước 2;
Bước 5: Nếu chr(j) > '9' thì sang bước 8;
Bước 6: Nếu Pos(chr(j),s)>0 thì Count ← Count + 1;
Bước 7: j ← j + 1; sang bước 5;
Bước 8: In giá trị Count và kết thúc.
2.3.1.5. Bài 4.40/tr45
* Xác định input và output của bài toán
Input: Xâu kí tự st.

Output: Xâu st đã được chuẩn hóa bằng cách xóa các dấu cách thừa.
* Khai báo dữ liệu bài toán
- Khai báo biến xâu St; biến i kiểu integer.
* Thuật toán
- Xác định ý tưởng: Lặp lại việc: xét kí tự đầu xâu, nếu là dấu cách thì xóa; Lặp
lại việc: xét kí tự cuối xâu, nếu là dấu cách thì xóa; Nếu tồn tại của hai dấu cách

8


liên tiếp giữa xâu thì xóa một dấu cách ở vị trí tìm được, bằng cách sử dụng hàm
Pos(‘ ‘,st). Lặp lại công việc này cho đến khi không còn hai dấu cách liên tiếp.
- Thuật toán:
Bước 1: Nhập xâu st;
Bước 2: i ← 1;
Bước 3: Trong khi st[i]= ‘ ‘ thì delete(st,i,1);
Bước 4: Nếu i>length(st)-1 thì đưa ra xâu st, rồi kết thúc;
Bước 5: Nếu (st[i]= ‘ ‘) và (st[i+1] = ‘ ‘) thì delete(st,i,1);
Bước 6: i←i+1, rồi quay lại bước 3;
2.3.1.6. Bài 4.41/tr45
* Xác định input và output của bài toán
Input: Xâu kí tự st.
Output: Số lượng từ của xâu.
* Khai báo dữ liệu bài toán
- Khai báo biến xâu St; biến i,d kiểu integer.
* Thuật toán
- Xác định ý tưởng: Bắt đầu từ vị trí đầu tiên của xâu, nếu kí tự thứ i là dấu cách
và kí tự thứ i+1 khác dấu cách thì tăng d thêm 1 đơn vị. Số lượng từ của xâu là d
- Thuật toán:
Bước 1. Nhập xâu st;

Bước 2: i←1; d←1;
Bước 3: Trong khi st[i] = ‘ ‘ thì delete(st,i,1);
Bước 4: i←i+1;
Bước 5: Nếu i> length(st) thì đưa ra d, rồi kết thúc;
Bước 5: Nếu st[i]<> ‘ ‘ và st[i+1] = ‘ ‘ thì d←d+1;
Bước 6: Quay lại bước 4;
2.3.1.7. Bài 4.42/tr46
* Xác định input và output của bài toán
Input: Nhập xâu N viên đá quý (5≤ N ≤ 120), mỗi phần tử là số nguyên
trong khoảng 1..9.
Output: In ra số vị trí khác nhau có thể mắc khóa tháo lắp vòng.
* Khai báo dữ liệu bài toán
- Khai báo các biến xâu S, biến Count kiểu integer.
* Thuật toán
- Xác định ý tưởng: Nhân đôi xâu S, và kiểm tại các vị trí i = 1, 2, ..., N, xem các
xâu độ dài N tính từ i về phía đầu S và về phía cuối S có giống nhau không, nếu
có thì tăng Count.
- Thuật toán:
Bước 1: Nhập S;
Bước 2: Khởi tạo: N ← Length(s); s ← s + s; count ← 0; i←1;
Bước 3: Nếu i >N thì sang bước 9;
Bước 4: L ←i; R←i+N-1;
Bước 5: Nếu (L ≥ R)hoặc(S[L] <> S[R]) thì sang bước 7;
Bước 6: L ← L + 1; R ← R -1; sang bước 5;
Bước 7: Nếu L ≥ R thì Count ← Count + 1;
9


Bước 8: i ← i + 1; sang bước 3;
Bước 9: In giá trị Count; Kết thúc.

2.3.1.8. Bài 7.14/tr6 8
* Xác định input và output của bài toán
Input: Xâu số N (Xâu không quá 50 chữ số và không có số 0 không có nghĩa
ở đầu)
Output: In ra số thống kê của N
* Khai báo dữ liệu bài toán
- Khai báo các biến xâu N, a ; biến i,j kiểu nguyên.
* Thuật toán
- Xác định ý tưởng: Tạo mảng thống kê sự xuất hiện các chữ số từ 0 đến 9
- Thuật toán:
Bước 1: Nhập N;
Bước 2:i←0; a[i] ←0;
Bước 3: j←1; a[N[j]] ←a[N[j]]+1;
Bước 4: Nếu j<=length(N) thì quay lại Bước 2;
Bước 5: j:=j+1;
Bước 6: Nếu a[i]>0 thì đến bước 8;
Bước 7:
Bước 7.1: Nếu i<=9 thì quay lại bước 3;
Bước 7.2: Nếu i>9 thì đến bước 8;
Bước 8: Đưa ra kết quả, rồi kết thúc.
2.3.1.9. Bài 7.16/tr69
* Xác định input và output của bài toán
Input: Số nguyên dương N
Output: Dạng biểu diễn của N ở hệ Hexa
* Khai báo dữ liệu bài toán
- Số nguyên N; Mảng a để lưu trữ kết quả số N ở hệ Hexa
* Thuật toán
- Xác định ý tưởng: Khởi tạo xâu p=’0123456789ABCDEF’; Lấy số dư của N
chia 16 và lưu vào mảng a:
i←0;

Trong khi N>0 thì làm:
i←i+1;
a[i] ←p[(N mod 16) +1];
N←N div 16;
- Thuật toán:
Bước 1: Nhập số nguyên dương N;
Bước 2: Nếu N=0 thì đưa ra ‘0’, rồi kết thúc.
Bước 3: i←0; p←’0123456789ABCDEF’;
Bước 4: Nếu N>0 thì i←i+1;
Bước 5: a[i] ←p[(N mod 16) +1]; N←N div 16; rồi quay lại Bước 4
Bước 6: j←i;
Bước 7: Đưa ra a[j];
Bước 8: j←i-1;
10


Bước 9: Nếu j<1 thì kết thúc.
Bước 10: Quay lại Bước 7;
2.3.1.10. Bài 7.40/tr75
* Xác định input và output của bài toán
Input: Nhập vào số 1≤ N ≤ 1000
Output: In ra chữ số cuối cùng sau khi thu gọn dãy N1= 1234...N.
* Khai báo dữ liệu bài toán
- Khai báo biến: Khai báo mảng C: Array[1..1000]of char chứa dãy số ban đầu.
* Thuật toán
- Xác định ý tưởng: Xóa mảng theo quy tắc nêu trong đầu bài.
- Thuật toán : (phần xử lý xóa chữ số)
Bước 1: i0 ← 2;
Bước 2: Nếu N=1 thì thông báo C[N] và kết thúc;
Bước 3: i ← i0;

Bước 4: Nếu (ODD(i0) và ODD(n)) thì C[n] ← 0; n←n-1;
Bước 5: Nếu i ≥ n thì sang bước 10;
Bước 6: j ← i;
Bước 7: Nếu j > n - 1 thì sang bước 9
Bước 8: C[j] ← C[j+1]; j ← j + 1; sang bước 7;
Bước 9: C[n]← #0; n ← n - 1; i ← i + 1; sang bước 5;
Bước 10: Nếu i0=2 thì i0← i0 - 1;
Bước 11: i0 ← i0 + 1; sang bước 2;
2.3.2. Lựa chọn học sinh khá giỏi thông qua các bài tập
Thông qua các bài tập đã đưa ra, giáo viên có thể phát hiện ra những học sinh
tiềm năng có thể theo học dự tuyển cho thi học sinh giỏi, hoặc những học sinh
có thể lấy “cần cù bù khả năng”. Từ đó, chọn lựa được những học sinh của
trường tham gia dự tuyển thi học sinh giỏi cấp Tỉnh.
2.3.2.1. Lựa chọn thông qua việc phát hiện ý tưởng
Với mỗi bài toán đặt ra, giáo viên có thể căn cứ vào các yêu cầu sau để lựa
chọn được những học sinh khá giỏi:
- Học sinh có thể xác định được ý tưởng giải quyết bài toán không?
- Học sinh có thể sử dụng cấu trúc dữ liệu để mô tả dữ liệu cho bài toán
không?
- Học sinh có thể viết thuật toán giải quyết bài toán không?
- Học sinh có thể sử dụng các câu lệnh của ngôn ngữ lập trình để viết chương
trình không?
2.3.2.2. Lựa chọn thông qua việc lập trình giải các bài toán
Học sinh có thể phát hiện ý tưởng giải bài toán rất nhanh, đó là cơ sở để chọn
lựa được những học sinh có tố chất, nhưng việc giải một bài toán trên máy tính
cần có cả tố chất và kĩ năng, nên những học sinh này còn cần được rèn luyện
bằng cách lập trình trên máy tính, giáo viên cần hướng dẫn cho các em để có thể
lập trình giải được bài toán thông qua các ý tưởng mà các em đã đưa ra, từ đó có
thể đồng thời hướng dẫn, sửa lỗi cho các em khi dịch hoặc thực hiện chương
trình. Điều này sẽ giúp các em rèn luyện được kĩ năng lập trình trên máy tính.

2.3.3. Mở rộng các bài tập đã đưa ra nhằm bồi dưỡng học sinh khá giỏi
11


Sau khi đã lựa chọn, xác định được những học sinh khá giỏi và thực sự muốn
tham gia vào đội dự tuyển thi học sinh giỏi cấp Tỉnh. Tôi mở rộng hệ thống các
bài tập trên cơ sở các bài tập có sẵn trong sách bài tập với mức độ khó dần (tất
nhiên sẽ có những bài tập mà để giải quyết được thì cần sử dụng nhiều kiến thức
hơn nữa, tùy vào từng chủ đề ôn luyện sẽ đưa ra các bài tập ở mức độ phù hợp).
Từ đó, các em sẽ cảm thấy vấn đề không phải là quá khó hay mới lạ, mà từ
những kiến thức đã biết, các em cần vận dụng và tìm ra ý tưởng cho bài toán mở
rộng này. Từ đó sẽ có hứng thú hơn, các em sẽ học tập chủ động hơn. (Lưu ý:
mã nguồn cho các bài tập này ở trong phần phụ lục 3)
2.3.3.1. Với bài 4.12
Có thể mở rộng thành bài toán với N lớn hơn, N<10 8. Từ đó học sinh hiểu
được rằng, tùy vào phạm vi giới hạn của đề bài mà khai báo và lựa chọn cách
làm cho hết các test của bài.
2.3.3.2. Với bài 4.25
Ví dụ 1: Số dãy ngoặc đúng
Có thể định nghĩa khái niệm dãy ngoặc đúng dưới dạng đệ quy như sau:
1. () là dãy ngoặc đúng
2. C là dãy ngoặc đúng nếu C = (A) hay C = AB với A, B là các dãy ngoặc
đúng.
Ví dụ dãy ngoặc đúng: (), (()), ()(), (())()
Ví dụ dãy ngoặc sai: )(, ((((, ()((, )))), )()(
Viết chương trình liệt kê tất cả các dãy ngoặc đúng có chiều dài n (n chẵn)
Dữ liệu vào:
- Là số nguyên n (n chẵn, 2 ≤ n ≤ 20)
Kết quả ra: với m là số lượng các dãy ngoặc đúng có chiều dài n
- Trong m dòng đầu tiên, mỗi dòng liệt kê một dãy ngoặc đúng chiều dài

n. Các dãy được liệt kê theo thứ tự từ điển: '(' < ')'.
- Dòng cuối cùng: là số m.
VD:
INPUT.INP
OUTPUT.OUT
4
(())
()()
2
Ví dụ 2: Dãy ngoặc đúng (Câu 3-Đề thi HSG Tỉnh Thanh Hóa 2013- 2014):
Người ta định nghĩa một xâu kí tự gồm các kí tự ‘(’ và ‘)’ là một dãy ngoặc
đúng như sau:
- Xâu rỗng là một dãy ngoặc đúng.
- Nếu X là dãy ngoặc đúng thì (X) cũng là một dãy ngoặc đúng
- Nếu X, Y là những dãy ngoặc đúng thì XY cũng là dãy ngoặc đúng.
Những dãy ngoặc sau là những dãy ngoặc đúng:
- ()(())
- ((()))
Những dãy ngoặc sau thì không:
- )(
- (((()))
12


- )()()(
Cho một xâu kí tự T = T1, T2, ..Tn, trong đó Ti là một trong hai kí tự ‘(’ hoặc
‘)’ với mọi i=1..n.
Yêu cầu: Hãy đếm số cặp i,j (iliên tiếp Ti, Ti+1, ..Tj (giữ nguyên thứ tự) là một dãy ngoặc đúng.
Dữ liệu vào: File văn bản BAI3.INP gồm 2 dòng:

- Dòng thứ nhất chứa số n là độ dài của xâu kí tự T (n ≤ 1000).
- Dòng thứ 2 chứa xâu kí tự T
Kết quả ra: Ghi ra file văn bản BAI3.OUT một số duy nhất là kết quả tìm được.
VD:
BAI3.INP
BAI3.OUT
10
5
(()())(()(
2.3.3.3. Với bài 4.27
Ví dụ 1: Mã hóa Ceasar
Trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ ra
phương pháp mã hóa một bản tin như sau: thay thế mỗi chữ trong bản tin bằng
chữ đứng sau nó k vị trí trong bảng chữ cái. Giả sử chọn k = 3, ta có bảng
chuyển đổi như sau:
Chữ ban đầu: a b c d e f g h i j k l m n o p q r s t u v w x y z
Chữ thay thế: d e f g h i j k l m n o p q r s t u v w x y z a b c
Giả sử bản tin là: 'attack' thì sau khi mã hóa sẽ có bản mã 'dwwdfn' và Ceasar
gửi bản mã cho cấp dưới.
Nhận được bản mã và khóa, cấp dưới của Ceasar chưa biết giải mã làm sao. Bạn
hãy giúp họ đi nào.
Dữ liệu vào:
- Dòng đầu tiên là bản tin đã được mã hóa, chỉ gồm các chữ cái la tinh thường,
chiều dài không quá 100 ký tự.
- Dòng thứ 2 là số nguyên thể hiện khóa k (1 ≤ k ≤ 25)
Kết quả ra:
- Bản tin ban đầu.
VD:
Ceasar.INP
Ceasar.OUT

Wyvnyhttpun
programming
7
Ví dụ 2: Mã hóa
Hãy mã hóa một xâu cho trước theo quy luật sau: A thay bởi Z, B thay bởi
Y, C thay bởi X, ... Các kí tự không phải là chữ cái sẽ không thay đổi.
Dữ liệu vào: ENCO.INP gồm 1 dòng chứa xâu cần mã hóa (có độ dài ≤108). Các
kí tự trong xâu chỉ gồm các chữ cái in hoa ‘A’..’Z’ và các kí tự không phải là
chữ cái.
Kết quả ra: Ghi ra file ENCO.OUT xâu đã mã hóa
VD:
13


ENCO.INP
ENCO.OUT
GSRH RH Z HVXIVG
THIS IS A SECRET CODE.
XLWV.
2.3.3.4. Với bài 4.39
Ví dụ 1: Liệt kê chữ cái
Cho một văn bản chứa trong một text file. Viết chương trình liệt kê các
chữ cái chỉ có mặt trong văn bản đúng một lần theo thứ tự của bảng chữ cái
(không phân biệt chữ hoa và chữ thường).
Dữ liệu vào: file DEM_CHU.INP gồm nhiều dòng chứa các ký tự trong file.
Kết quả ra: file DEM_CHU.OUT .Mỗi dòng ghi các ký tự chỉ xuất hiện đúng
một lần trong file theo yêu cầu đề ra.
VD:
DEM_CHU.INP
DEM_CHU.OUT

NAM MOI HANH PHUC
C
I
O
P
U
Ví dụ 2: Kí tự khác nhau (Câu 2- Đề thi HSG Tỉnh Thanh Hóa 2016-2017)
Cho xâu S chỉ gồm các kí tự là chữ cái tiếng anh và các chữ số (có phân biệt
chữ in hoa, in thường).
Yêu cầu: Hãy xác định số kí tự khác nhau trong xâu S và mỗi kí tự xuất hiện
bao nhiêu lần.
Dữ liệu vào: Vào từ file văn bản BAI2.INP gồm 1 dòng duy nhất là xâu kí tự S
(có độ dài không quá 255).
Kết quả: Kết quả ghi ra file văn bản BAI2.OUT gồm:
- Dòng đầu ghi số kí tự khác nhau.
- Các dòng tiếp theo, mỗi dòng ghi một kí tự xuất hiện trong xâu S và số
lần xuất hiện của nó. Các kí tự đưa ra theo thứ tự chữ cái in hoa, in thường, chữ
số. Các chữ cái, chữ số đưa ra theo thứ tự từ điển.
VD:
BAI2.INP
BAI2.OUT
AzB1C9A1BC
6
A2
B2
C2
z1
12
91
2.3.3.5. Với bài 4.40

Ví dụ: Chuẩn hoá văn bản (Câu 3- Đề thi HSG Tỉnh Thanh Hóa 2010-2011)
Một văn bản được gọi là văn bản chuẩn nếu:
- Hai từ liền nhau có duy nhất một dấu cách trống.

14


- Dấu ngắt câu (dấu chấm, dấu phẩy, dấu chấm phẩy, dấu chấm hỏi, dấu
chấm than) được đặt sát vào từ ngay trước nó, sau đó mới đến dấu cách trống.
- Dấu mở ngoặc đặt sát vào phía bên trái của từ bắt đầu mở ngoặc.
- Dấu đóng ngoặc đặt sát bên phải từ cuối cùng được đóng ngoặc.
Hãy viết chương trình để kiểm tra và đưa một đoạn văn bản về dạng văn bản
chuẩn.
Dữ liệu vào: từ file BAI3.INP
Kết quả: ghi ra file BAI3.OUT văn bản đã được chuẩn hoá.
VD:
BAI3.INP
BAI3.OUT
Thấy rét u tôi bọc lại mền
Thấy rét u tôi bọc lại mền
Cô nàng cất rượu ủ thêm men . Cô nàng cất rượu ủ thêm men.
( trích Hoa với rượu – Nguyễn ( trích Hoa với rượu – Nguyễn
Bính)
Bính)
2.3.3.6. Với bài 4.41
Ví dụ 1: Từ dài nhất
Cho một xâu S .
Yêu cầu: In ra từ dài nhất trong một xâu và số ký tự của từ này? Nếu có nhiều từ
có độ dài bằng nhau thì in ra hết.
Dữ liệu vào: File TUDAI.INP chứa xâu S

Dữ liệu ra: File TUDAI.OUT chứa từ dài nhất và độ dài của từ
VD
TUDAI.INP
TUDAI.OUT
Nguyen van truong
truong
4
Truong thich hoc pascal
Truong
pascal
5
Ví dụ 2: Sắp xếp xâu.
Người ta định nghĩa: Từ là một nhóm ký tự đứng liền nhau.
Cho một xâu St gồm các ký tự lấy từ tập ‘a’ .. ‘z’ và dấu cách. Xâu không
quá 20 từ, mỗi từ dài không quá 10 ký tự.
Yêu cầu: Sắp xếp các từ của xâu ký tự theo thứ tự không giảm của độ dài các từ
trong xâu St.
Dữ liệu vào: Cho trong file văn bản SAPXAU.INP gồm một dòng ghi một xâu
ký tự St (có ít nhất 1 từ).
Dữ liệu ra: Ghi ra file văn bản SAPXAU.OUT, các từ của xâu sau khi được sắp
xếp, các từ được ghi cách nhau đúng một dấu cách.
VD:
SAPXAU.INP
SAPXAU.OUT
acb abcde abcd abc acb abc abcd abcde
2.3.3.7. Với bài 7.14
15


Ví dụ 1: Tần số xuất hiện

Cho hai số nguyên M, N. Tính số lần xuất hiện của các chữ số có nghĩa
của tổng M+N theo thứ tự tăng dần của các chữ số. (Số chữ số của M,N <=100).
Dữ liệu vào: Vào từ file TANSO.INP gồm 2 số nguyên M,N cách nhau một dấu
cách
Kết quả: Ghi vào file TANSO.OUT kết quả của bài toán, mỗi chữ số trên một
dòng.
VD:
TANSO.INP
309 21

TANSO.OUT
01
32

2.3.3.8. Với bài 7.16
Ví dụ : Chuyển đổi số (Câu 1- Đề thi HSG Tỉnh Thanh Hóa năm 2011- 2012 )
Trong toán học, Bờm chỉ học tính toán trong hệ đếm thập phân. Lên lớp
10, Bờm được biết thêm hệ đếm khác là hệ hexa. Hệ hexa là hệ sử dụng các kí
hiệu là 0,1,2,..,9, A, B, C, D, E, F để biểu diễn giá trị số.
Muốn chuyển đổi 1 số nguyên N trong hệ thập phân sang hexa, Bờm làm
như sau: Lấy N chia cho 16, được thương là P, rồi lấy thương P chia cho 16. Cứ
lặp lại như vậy cho đến khi nào thương bằng 0 thì dừng, sau đó viết liên tiếp
phần dư từ dưới lên thì thu được số hexa.
VD:
27 16
⇒ 27(10) = 1B(16)
11 1 16
1 0
Yêu cầu: Cho dãy số nguyên ở hệ thập phân. Hãy giúp Bờ m chuyển dãy số
trên thành dãy số tương ứng ở hệ hexa.

Dữ liệu vào: Từ file BAI1.INP gồm:
- Dòng 1: Số nguyên dương n (n ≤ 103).
- Dòng 2…n+1: Mỗi dòng chứa một số nguyên K (0 ≤ K ≤ 109).
Kết quả : Ghi ra file BAI1.OUT gồm: n dòng là n số hexa tương ứng.
VD
BAI1.INP

BAI1.OUT

8
6
6
A
10
B
11
C
12
D
13
E
14
F
15
1B
27
2.3.3.9. Với bài 7.40
Ví dụ: Thu gọn số (Câu 2-Đề thi GVG Tỉnh Thanh Hóa năm 2014)

16



Cho số nguyên N. Người ta tạo ra số nguyên N1 bằng cách viết liên tiếp nhau
các số nguyên từ 1 đến N. Ví dụ N=4 ta có N1=1234. Thực hiện việc thu gọn N1
bằng cách xóa tất cả các chữ số ở vị trí lẻ, sau đó xóa tất cả các số ở vị trí chẵn,
rồi lại xóa các số ở vị trí lẻ,... cho đến khi chỉ còn lại một chữ số.
1234 → 24 → 2
Yêu cầu: Cho số nguyên N (1quá trình thu gọn số N1 tương ứng.
Dữ liệu vào: File văn bản BAI2.INP gồm một dòng chứa số nguyên N
Kết quả ra: File văn bản BAI2.OUT chứa chữ số tìm được ứng với dữ liệu
vào.
VD:
BAI2.INP
4

BAI2.OUT
2

2.4. HIỆU QUẢ CỦA SÁNG KIẾN KINH NGHIỆM
Sau một năm học, với phương châm vừa xây dựng đề tài và thử nghiệm với
các lớp 11 có đối tượng học sinh khá giỏi, hoặc học sinh định hướng thi THPT
quốc gia các môn khoa học tự nhiên của trường THPT Triệu Sơn 3, tôi nhận
thấy các em học sinh tiếp nhận khá tốt phần hướng dẫn; các em hứng thú hơn
trong giờ học, khả năng tư duy môn học của các em cũng tốt hơn, số lượng và
chất lượng bài tập về nhà của các em tăng lên rõ rệt. Tuy nhiên với lượng bài tập
đưa vào áp dụng trong đề tài có hạn, các em học sinh vẫn muốn được hướng dẫn
thêm nhiều bài nữa trong cuốn Bài tập Tin học 11. Từ đó, việc tìm ra nguồn
tham gia các kì thi học sinh giỏi cấp trường và cấp tỉnh cũng giảm khó khăn
hơn.

Ngoài việc đưa vào áp dụng trong trường, tôi có gửi cho một số thầy cô giáo
dạy tin ở các trường khác và nhận được các phản hồi tích cực từ phía các giáo
viên này.
2.4.1. Kết quả học tập
Qua việc thực hiện đề tài, tôi nhận thấy việc dạy học lập trình giải toán
cho học sinh đòi hỏi sự cặn kẽ, chi tiết. Với thời lượng học trên lớp là chưa đủ,
các em cần có thời gian tự học, tự làm thêm các bài tập trong sách bài tập. Việc
hướng dẫn cụ thể giúp các em dễ dàng tiếp cận với cách giải quyết các bài tập
theo các bước cơ bản như: xác định Input, Output bài toán, xác định ý tưởng,
viết thuật toán chi tiết và cuối cùng là sử dụng ngôn ngữ lập trình để viết chương
trình máy tính. Từ đó, kết quả học tập của các em cũng tăng lên rõ rệt.
* Đối với lớp đối chứng (Năm học 2016 - 2017)
Giỏi
Khá
TB
Yếu-kém
Sĩ số
Lớp
SL
%
SL
%
SL
%
SL
%
11C3
45
2
4.4

19
42.2
23
51.1
1
2.2
11C4
42
1
2.4
12
28.6
26
61.9
2
4.8
Tổng
87
3
3.4
31
35.6
49
56.3
3
3.4

17



* Đối với lớp thực nghiệm (Năm học 2017-2018)
Lớp
11D3
11D4
Tổng

Sĩ số
45
42
87

Giỏi
SL
%
13 28.9
7
16.7
20 23.0

Khá
SL
28
25
53

%
62.2
59.5
60.9


TB
SL
4
10
14

%
8.9
23.8
16.1

Yếu-kém
SL
%
0
0.0
0
0.0
0
0.0

Nhìn vào hai bảng thống kê kết quả học tập năm 2016-2017 so với 20172018 ở trên, thẫy rõ: Tỉ lệ học sinh đạt loại khá - giỏi tăng lên rõ rệt, học sinh đạt
loại yếu kém giảm hẳn. Cụ thể là: loại giỏi tăng từ 3.4% lên 23.0%; loại Khá
tăng từ 35.6% lên 60.9%; Loại Yếu-kém từ 3.4% xuống còn 0.0%.
2.4.2. Đối với nhóm học sinh khá giỏi.
Việc lựa chọn được những học sinh có tố chất tốt nhất tham gia vào đội dự
tuyển của trường thi chọn học sinh giỏi cấp Tỉnh môn Tin học là điều vô cùng
hiếm có. Vì vậy, giáo viên cần tạo hứng thú để những học sinh còn lại có thể
phát huy hết khả năng, từ đó lựa chọn được những học sinh đủ điều kiện tham
gia vào đội tuyển học sinh giỏi của trường, bồi dưỡng để các em có thể tham gia

kì thi học sinh giỏi cấp Tỉnh.
Học sinh thi đạt kết quả cao còn phụ thuộc vào nhiều yếu tố. Song, để có thể
ở mức đạt giải thì phụ thuộc hầu hết vào cách mà giáo viên lựa chọn, ôn tập,
hướng dẫn cho các em. Vì vậy, với kinh nghiệm của bản thân, tôi thiết nghĩ đây
là một cách làm thực sự hiệu quả.
Cụ thể:
- Số học sinh đăng kí tham gia đội dự tuyển thi học sinh giỏi cấp Tỉnh tăng
lên (danh sách ở phần phụ lục):
+ Năm học 2016-2017: có 03 học sinh.
+ Năm học 2017-2018: Có 07 học sinh.
+ Năm học 2018-2019: Có 11 học sinh.
- Kết quả thi học sinh giỏi cấp Tỉnh của trường:
+ Năm học 2015-2016: Có 01 giải khuyến khích (Nguyễn Minh Dũng:10.5đ;
Trịnh Việt Đức: 8.0đ)
+ Năm học 2016-2017: Không có giải (Nguyễn Phương Nam: 6.5đ; Phạm
Văn Tuấn: 9.5đ)
+ Năm học 2017-2018: Có 01 giải ba (Lê Thị Hương: 15.0đ), 01 giải khuyến
khích (Đào Công Cường: 11.5đ).

18


3. KẾT LUẬN, KIẾN NGHỊ
3.1. KẾT LUẬN

Như đã đề cập ở đầu bài viết, Tin học là môn chưa có trong chương trình thi
THPT quốc gia, lập trình giải toán lại là phần kiến thức khó nhất trong hệ thống
kiến thức Tin học được giảng dạy ở trường phổ thông. Việc tạo điều kiện giúp
đỡ thêm để các em học sinh có thể tự giải quyết một số bài tập trong sách Bài
tập Tin học 11 có ý nghĩa thực tiễn cao trong việc nâng cao kết quả học tập, và là

một tài liệu cơ bản để lựa chọn, bồi dưỡng học sinh giỏi .
Với phạm vi là một đề tài nhỏ, dưới dạng hướng dẫn chi tiết để các em học
sinh tự giải một số bài tập trong sách Bài tập Tin học 11, đã giúp ích phần nào
trong việc nâng cao chất lượng dạy và học Tin học trong nhà trường. Đồng thời
đề tài cũng góp phần khích lệ việc tự học, học tập tích cực cho học sinh. Giúp
các em phát huy hết khả năng không chỉ đối với môn Tin học mà còn ở tất cả
các môn học khác.
3.2. KIẾN NGHỊ

Để tăng hiệu quả trên phạm vi rộng của đề tài, tôi đề nghị các thầy cô giáo
cùng tham gia việc hướng dẫn chi tiết hơn các bài tập trong hệ thống các sách
bài tập của các môn học khác, đặc biệt là các bài tập mà trong sách chỉ cho đáp
án mà không có lời giải chi tiết, chúng ta cần bổ sung thêm hướng dẫn cụ thể
hơn để các em học sinh có thể dựa vào đó mà giải quyết các bài tập làm thêm ở
nhà, mở rộng các bài tập ở mức độ phức tạp hơn để có nguồn tài liệu cơ bản cho
ôn luyện thi học sinh giỏi các cấp.

XÁC NHẬN
CỦA THỦ TRƯỞNG ĐƠN VỊ

Thanh Hóa, ngày 28 tháng 05 năm 2018
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

LÊ THỊ QUỲNH

19



TÀI LIỆU THAM KHẢO

1. Tin học 11, NXB Giáo Dục, 2007. Tác giả: Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ
Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết,.
2. Bài tập Tin học 11, NXB Giáo Dục, 2007. Tác giả: Hồ Sĩ Đàm, Nguyễn
Thanh Tùng.
3. Tin học 11 sách giáo viên, NXB Giáo Dục, 2007. Tác giả: Hồ Sĩ Đàm, Hồ
Cẩm Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh
Tuyết.
4. Tài liệu Tập huấn giáo viên 2017 (Tỉnh Thanh Hóa).
5. Trang web: laptrinh.ntu.edu.vn.

20


DANH MỤC
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ả: Lê Thị Quỳnh
Chức vụ và đơn vị công tác: NTCM Tin học, trường THPT Triệu Sơn 3

TT
1.

2.

Tên đề tài SKKN

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 C
2012 - 2013

Sử dụng sơ đồ tư duy nhằm
tạo hứng thú và nâng cao chất
lượng cho học sinh khi dạy
tiết 21 – bài tập, Tin học lớp
11.
Một số kinh nghiệm giáo dục Sở GD&ĐT C
ý thức sử dụng Internet và kỹ
năng sống nhằm nâng cao
nhận thức và kết quả học tập
cho học sinh thông qua bài 9
và chương IV Tin học 10.

2015 - 2016

----------------------------------------------------

21



PHỤ LỤC 1
DANH SÁCH HỌC SINH THAM GIA ĐỘI DỰ TUYỂN THI HỌC SINH
GIỎI CẤP TỈNH MÔN TIN HỌC
NĂM HỌC 2016-2017
STT
1
2
3

Họ và tên
Nguyễn Phương Nam
Phạm Văn Tuấn
Phạm Khương Duy

Lớp
11C3
11C3
11C3

NĂM HỌC 2017-2018
STT
1
2
3
4
5
6
7


Họ và tên
Đào Công Cường
Lê Văn Kiên
Lê Văn Sơn
Phạm Văn Tùng
Lê Thị Hương
Trần Trà My
Nguyễn Đình Hoài

Lớp
11D3
11D3
11D3
11D3
11D3
11D4
11D4

NĂM HỌC 2018-2019 (Khảo sát cuối năm học 2017-2018)
STT
1
2
3
4
5
6
7
8
9

10
11
12
13

Họ và tên
Nguyễn Dũng
Đào Huy Hiệu
Nguyễn Thị Giang
Vũ Trọng Long
Đỗ Đức Phương
Lê Xuân Thái
Nguyễn Thị Yến
Trịnh Hoàng Anh
Nguyễn Thị Linh Chi
Hà Hữu Hiếu
Trịnh Thị Hương
Hà Huy Phước
Nguyễn Minh Quân

Lớp
10E4
10E4
10E4
10E4
10E4
10E4
10E4
10E5
10E5

10E5
10E5
10E5
10E5

22


×