
SÁNG KIẾN KINH NGHIỆM
Đề tài:
GIÚP HỌC SINH TIẾP CẬN MỘT SỐ BÀI TOÁN SỐ HỌC,
XỬ LÝ XÂU BẰNG NGÔN NGỮ LẬP TRÌNH C++ NHẰM
NÂNG CAO CHẤT LƯỢNG HỌC SINH GIỎI MÔN
TIN HỌC THPT
Môn/Lĩnh vực: Tin học

SỞ GIÁO DỤC & ĐÀO TẠO NGHỆ AN
Đơn vị: Trường THPT Phan Đăng Lưu
SÁNG KIẾN KINH NGHIỆM
Đề tài:
GIÚP HỌC SINH TIẾP CẬN MỘT SỐ BÀI TOÁN SỐ HỌC,
XỬ LÝ XÂU BẰNG NGÔN NGỮ LẬP TRÌNH C++ NHẰM
NÂNG CAO CHẤT LƯỢNG HỌC SINH GIỎI
MÔN TIN HỌC THPT
Môn/Lĩnh vực: Tin học
Người thực hiện: Trần Thị Hương
Tổ: Toán – Tin
Điện thoại: 0964627715
Năm học: 2022 – 2023

MỤC LỤC
Phần 1. ĐT VN Đ ............................................................................................ 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 ....................................................................................... 1
5. Phạm vi nghiên cứu .............................................................................................. 2
6. Tính mới của đề tài ............................................................................................... 2
Phần 2. NỘI DUNG Đ TÀI .................................................................................. 2
1. Cơ sở l luận và thực tiễn...................................................................................... 2
1.1 Cơ sở l luận ................................................................................................... 2
1.2 Cơ sở thực tiễn ................................................................................................ 2
2. Nội dung vấn đề nghiên cứu ................................................................................. 3
2.1 BÀI TẬP SỐ HỌC .......................................................................................... 3
2.1.1 Bài tập về ước chung lớn nhất................................................................... 3
2.1.2 Bài tập về cấp số cộng ............................................................................... 7
2.1.3 Bài tập về số nguyên tố ............................................................................. 8
2.1.4 Bài tập về giai thừa.................................................................................. 12
2.1.5 Bài tập về số hoàn hảo ............................................................................ 13
2.1.6 Bài tập về số chính phương ..................................................................... 16
2.1.7 Bài tập về số phong phú .......................................................................... 17
2.1.8 Bài tập về số đẹp ..................................................................................... 19
2.1.9 Bài tập về số thân thiện ........................................................................... 20
2.2 BÀI TẬP XÂU ................................................................................................ 22
2.2.1 Các kiến thức cơ bản về xâu ................................................................... 22
2.2.2 Bài tập xâu ............................................................................................... 24
Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ ................................................................ 35
1. Kết luận ............................................................................................................... 35
2. Kiến nghị ............................................................................................................. 35
TÀI LIỆU THAM KHẢO .................................................................................... 35
PHỤ LỤC ............................................................................................................... 36

1
Phần 1. ĐT VN Đ
1. L do chọn đ ti
Sự phát triển mạnh mẽ như vũ bão của tin học đã làm cho xã hội có nhiều nhận
thức mới về cách tổ chức các hoạt động. Nhiều quốc gia trên thế giới thức được
rất rõ tầm quan trọng của tin học và có những đầu tư lớn cho lĩnh vực này, đặc biệt
trong giáo dục nâng cao dân trí về tin học và đào tạo nguồn nhân lực có chất lượng
cao. Người Việt Nam có nhiều tố chất thích hợp với ngành khoa học này, vì thế
chúng ta hi vọng có thể sớm hoà nhập với khu vực và trên thế giới.
Tin học ngày càng có nhiều ứng dụng trong hầu hết các lĩnh vực hoạt động của
xã hội loài người. Tuy nhiên, Tin học là một môn học khó vì cơ sở của nó là toán
học, bài tập rất đa dạng và phong phú, việc học sinh của trường đi thi học sinh giỏi
và để giành được giải không phải là đơn giản, do vậy giáo viên phụ trách đội tuyển
cần nhiều kinh nghiệm và kiến thức sát với nội dung ôn thi để nâng cao thành tích
đội tuyển tham gia các đợt thi học sinh giỏi hàng năm, Và để có được kết quả tốt cần
có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình và chọn một ngôn ngữ
lập trình thích hợp.
Hiện nay có rất nhiều ngôn ngữ lập trình bậc cao như: Pascal, Java, Basic, C,
C++,.... Tuy nhiên điều cơ bản của C++ là cho phép người lập trình hiểu và quản lí
các chương trình lớn, phức tạp. Vì vậy, nó được sử dụng nhiều trong các kỳ thi học
sinh giỏi Tin học.
Xuất phát từ cơ sở trên, tôi đã chọn đề tài “GIÚP HỌC SINH TIẾP CẬN MỘT SỐ
BÀI TOÁN SỐ HỌC, XỬ LÝ XÂU BẰNG NGÔN NGỮ LẬP TRÌNH C++ NHẰM
NÂNG CAO CHẤT LƯỢNG HỌC SINH GIỎI MÔN TIN HỌC THPT”.
2. Mc đch nghiên cu
Qua quá trình tham gia giảng dạy, bồi dưỡng học sinh giỏi và việc nghiên cứu
các vấn đề về lập trình theo từng dạng bài tập từ cơ bản đến phức tạp của ngôn ngữ
lập trình C++, các tài liệu về phương pháp giảng dạy phục vụ cho việc học tập, ôn
thi học sinh giỏi của học sinh cũng như giảng dạy của giáo viên, tôi đã giải các bài
toán bằng ngôn ngữ lập trình C++ với hệ thống lập trình CodeBlocks. Từ đó, tôi đưa
ra đề tài “Giúp học sinh tiếp cận một số bài toán số học, xử l xâu bằng ngôn ngữ
lập trình C++ nhằm nâng cao chất lượng học sinh giỏi môn tin học trung học phổ
thông” với mong muốn phần nào giúp học sinh cũng như giáo viên có thêm tài liệu
tham khảo phục vụ cho việc học tập và giảng dạy, ôn thi HSG.
3. Đối tượng nghiên cu
Một số bài toán số học, xử l xâu bằng ngôn ngữ lập trình C++ nhằm nâng
cao chất lượng học sinh giỏi môn tin học trung học phổ thông.
4. Phương pháp nghiên cu.

2
Kinh nghiệm bản thân qua các kỳ ôn thi HSG, nghiên cứu các tài liệu về C++
qua sách tham khảo, mạng internet, sưu tầm tài liệu, thử nghiệm thực tế, rút kinh
nghiệm từ các tiết dạy bồi dưỡng HSG.
5. Phạm vi nghiên cu
Đề tài chủ yếu nghiên cứu giải một số bài toán số học, xử l xâu từ cơ bản đến
nâng cao bằng ngôn ngữ C++.
Đề tài có khả năng áp dụng rộng rãi vào giảng dạy, bồi dưỡng học sinh giỏi Tin
học cho giáo viên và học sinh THPT trên địa bàn toàn tỉnh Nghệ An.
Nghiên cứu thực tiễn và thăm dò tính cấp thiết, tính khả thi của đề tài ở một số
giáo viên Tin học Trường trung học phổ thông tỉnh Nghệ An: Trường THPT Yên
Thành 2, Trường THPT Nam Yên Thành, trường THPT Phan Đăng Lưu.
6. Tnh mới của đ ti
- Đề tài nghiên cứu về vận dụng các kiến thức đã học về thuật toán, từ đó viết chương
trình trên ngôn ngữ lập trình C++
- Mô tả được thực trạng về vấn đề cấp thiết cho cho học sinh THPT ở cách học lập
trình và lựa chọn ngôn ngữ lập trình đặc biệt là trong các kỳ thi học sinh giỏi Tỉnh.
Phần 2. NỘI DUNG Đ TÀI
1. Cơ sở l luận v thực tiễn
1.1. Cơ sở lí luận:
C++ được biết đến như là ngôn ngữ mới bao trùm lên C và do Bjarne Stroustrup
sáng tác ra vào năm 1980 tai bang New Jersey, Mĩ. Lúc đầu ông đặt tên là “C với
các lớp”, tuy nhiên đến năm 1983 thì ông đổi tên thành C++. Trong C++ chẳng
những đưa vào tất cả các khái niệm, công cụ của lập trình hướng đối tượng mà còn
đưa vào nhiều khả năng mới mẻ cho hàm. Nó có một thư viện hàm chứa mã đối
tượng cho những hàm đã được tạo sẵn. Những hàm này thực hiện các tác vụ thường
dùng như nhập một chuổi ký tự từ bàn phím (gets()), tính căn bậc hai (sqrt()), ...
mà chương trình được viết có thể sử dụng mà không phải viết lại.
1.2. Cơ sở thực tiễn:
Qua thực tế giảng dạy ở trường THPT các năm qua, tôi nhận thấy khi học đến
chương trình NNLT tin học lớp 11 đa số học sinh đều nhận xét bộ môn này rất khó.
Tuy nhiên cũng có một số lượng không nhỏ học sinh rất yêu thích tin học và
thích tìm hiểu một số bài toán, cách giải các bài toán bằng NNLT. Trong chương
trình phổ thông NNLT Pascal đang được giảng dạy cho HS khối 11, nhưng tôi thấy
NNLT C++ rất thuận tiện và có nhiều lợi thế khi dạy bồi dưỡng học sinh giỏi và
giúp học sinh giải các bài toán phức tạp thuận tiện hơn. Ngoài ra trong các đề thi học
sinh giỏi tỉnh các năm qua, chủ đề xâu dữ liệu là một nội dung trọng tâm, đa số đề
thi đều có các dạng bài thuộc kiểu xâu, bài toán số học: Số bạn bè, số thân thiện, số