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
Phn 1. ĐT VN Đ ............................................................................................ 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ề sphong 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
Phn 1. ĐT VN Đ
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 nhiều tố chất thích hợp với ngành khoa học này, 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 nhiều ứng dụng trong hầu hết các lĩnh vực hoạt động của
hội loài người. Tuy nhiên, Tin học một môn học ksở của 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 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, để có được kết quả tốt cần
một qtrình nghiên cứu, học tập vngôn ngữ lập trình chọn một ngôn ngữ
lập trình thích hợp.
Hiện nay 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Ử 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. Mc đch nghiên cu
Qua quá trình tham gia giảng dạy, bồi ỡ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 phc v cho vic hc tp, ôn
thi hc sinh gii ca hc sinh cũng như ging dy ca 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 sbà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 liu
tham kho phc v cho vic hc tp và ging dy, ôn thi HSG.
3. Đối tượng nghiên cu
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 cu.
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 cu
Đề 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 bng 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. Tnh mới của đ ti
- Đề 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++
- tả được thực trng 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.
Phn 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ư ngôn ngữ mới bao trùm lên C 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 mcho hàm. Nó một tviệ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 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 một số lượng không nhỏ học sinh rất yêu thích tin học
thích tìm hiểu một số 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 nhiều lợi thế khi dạy bồi dưỡng học sinh giỏi
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 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ố