Tải bản đầy đủ (.pdf) (95 trang)

(SKKN mới NHẤT) một số BIỆN PHÁP NÂNG CAO HIỆU QUẢ CÔNG tác bồi DƯỠNG học SINH GIỎI môn TIN học BẰNG NGÔN NGỮ lập TRÌNH c++

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 (2.38 MB, 95 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN
TRƯỜNG THPT YÊN THÀNH 3

----------------------------------

SÁNG KIẾN

Đề tài:
MỘT SỐ BIỆN PHÁP NÂNG CAO HIỆU QUẢ
CÔNG TÁC BỒI DƯỠNG HỌC SINH GIỎI MÔN TIN HỌC
BẰNG NGƠN NGỮ LẬP TRÌNH C++

NHĨM TÁC GIẢ:
Tơ Thị Tường
Nguyễn Minh Hải

- Tổ Tốn Tin
- Phó hiệu trưởng

THỜI GIAN THỰC HIỆN:

- ĐT: 0975905669
- ĐT: 0983681123

Năm học 2021 - 2022

----------------------------------

1

TIEU LUAN MOI download :




MỤC LỤC
NỘI DUNG
Phần 1 - ĐẶT VẤN ĐỀ:
I - Lý do chọn đề tài.
II – Mục đích của đề tài.
III - Đối tượng, thời gian nghiên cứu.
IV - Phương pháp và nhiệm vụ nghiên cứu
V – Điểm mới của đề tài.
Phần 2 - NỘI DUNG.
I – CƠ SỞ LÝ LUẬN
1. Tầm quan trọng của việc bồi dưỡng học sinh giỏi
2. Lợi thế của việc lựa chọn NNLT C++ trong công tác BD HSG.
3. Một số năng lực đặc thù cần chú trọng trong công tác bồi dưỡng
HSG Tin học.
II – THỰC TRẠNG VẤN ĐỀ
1. Thực trạng về công tác bồi dưỡng học sinh giỏi môn Tin học ở
trường THPT.
2. Những thuận lợi và khó khăn trong cơng tác bồi dưỡng học sinh
giỏi môn Tin học ở trường THPT hiện nay

Trang
3
3
3
3
4
4
5

5
5
5

III – GIẢI QUYẾT VẤN ĐỀ
1. Công tác chỉ đạo - Thắp lửa đam mê, hứng thú học tập cho HS.
1.1/ Vai trị của ban giám hiệu trong cơng tác BDHSG.
1.2/ Vai trò của giáo viên trực tiếp bồi dưỡng đội tuyển
2. Phát hiện học sinh có khả năng tham gia bồi dưỡng và tuyển
chọn học sinh dự thi học sinh giỏi.
2.1/ Phát hiện học sinh có năng khiếu và hình thành đội tuyển.
2.2/ Tuyển chọn học sinh tham gia dự thi.
3. Xây dựng nội dung chương trình, lập kế hoạch bồi dưỡng.
3.1/ Một số lưu ý khi xây dựng nội dung chương trình bồi dưỡng
3.2/ Xây dựng các chuyên đề bồi dưỡng.
3.3/ Lập kế hoạch bồi dưỡng
4. Triển khai bồi dưỡng học sinh giỏi.
4.1. Rèn luyện năng lực tự học, tự kiểm tra đánh giá của HS.
4.1.1 Phát triển năng lực tự học
4.1.2 Tự kiểm tra đánh giá, rút kinh nghiệm của học sinh.

6
7
7
8
9
9
9
10
11

11
12
12
12
12
14
14
14
14
15
2

TIEU LUAN MOI download :


4.2 Dạy học theo chuyên đề
4.2.1 Chuyên đề kiến thức cơ bản trong C++.
4.2.2 Chuyên đề số học
4.2.3 Chuyên đề xử lý dãy số
4.2.4 Chuyên đề xử lý xâu ký tự
4.2.5 Chuyên đề đệ quy, quay lui
4.2.6 Chuyên đề quy hoạch động.
5. Tổ chức thi thử, đánh giá, kinh nghiệm làm bài thi
5.1 Tổ chức thi thử, đánh giá học sinh
5.2 Kinh nghiệm làm bài thi.
IV- HIỆU QUẢ CỦA SÁNG KIẾN
Phần 3. PHẦN KẾT LUẬN
I - Kết luận chung
II - Khả năng ứng dụng đề tài vào thực tiễn
III - Khả năng mở rộng của đề tài

IV - Đề xuất
PHỤ LỤC:
Một số bài tập luyện tập, mở rộng và nâng cao
Hướng dẫn giải và chương trình tham khảo

16
16
26
35
39
40
43
44
44
46
48
50
50
50
50
50

1. Chuyên đề số học
2. Chuyên đề xử lý dãy số
3. Chuyên đề xử lý xâu ký tự
4. Chuyên đề đệ quy, quay lui
5. Chuyên đề quy hoạch động.
Tài liệu tham khảo

52

67
74
88
91
94

52

DANH MỤC CÁC CHỮ VIẾT TẮT TRONG SÁNG KIẾN
Nội dung
Giáo dục phổ thơng
Giáo viên
Học sinh
Bồi dưỡng học sinh giỏi
Ngơn ngữ lập trình
Ngơn ngữ lập trình C++
Chương trình con

Viết tắt
GDPT
GV
HS
BD HSG
NNLT
C++
CTC
3

TIEU LUAN MOI download :



Phần 1. ĐẶT VẤN ĐỀ
I. LÝ DO CHỌN ĐỀ TÀI.
Trong thời đại ngày nay, ngành công nghệ thông tin (CNTT) nói chung và
Tin học nói riêng đang phát triển một cách mạnh mẽ. Mọi ngành nghề, lĩnh vực
hay hoạt động nào trong xã hội hiện đại cũng cần tới sự góp mặt của CNTT, ở đâu
ứng dụng của CNTT cũng vơ cùng quan trọng. Vì vậy, nhu cầu về nguồn nhân lực
CNTT là rất lớn và vẫn còn tiếp tục tăng trong những năm tiếp theo, việc nâng
cao chất lượng nguồn nhân lực CNTT để đáp ứng yêu cầu phát triển và hội nhập
kinh tế quốc tế của đất nước là một nhiệm vụ hết sức cấp thiết hiện nay.
Là một giáo viên bộ môn Tin học, tôi nhận thấy bên cạnh việc dạy học các
kiến thức phổ thông về tin học ứng dụng thì việc dạy học lập trình cũng hết sức
quan trọng; trách nhiệm của người giáo viên Tin học là giúp học sinh hiểu hơn về
sự hoạt động của máy tính, am hiểu về khoa học kỹ thuật, góp phần định hướng
những học sinh có năng lực và đam mê Tin học vào đội ngũ nhân lực CNTT chất
lượng cao của đất nước.
Qua thời gian giảng dạy tại đơn vị mình, tơi đã được BGH tin tưởng, phân
công bồi dưỡng học sinh giỏi (HSG). Với niềm đam mê, ham học hỏi tơi ln tìm
tịi nghiên cứu để có những giải pháp tốt nhất nhằm đem lại hiệu quả cao trong
công tác bồi dưỡng. Và đã đạt được những kết quả rất đáng tự hào, trong những
năm gần đây học sinh của tôi đều đạt giải cao tại kỳ học sinh giỏi cấp tỉnh.
Trong quá trình giảng dạy tơi ln tích cực trao đổi kinh nghiệm, thảo luận
về các giải pháp nâng cao hiệu quả công tác BDHSG từ việc tổ chức, chọn đội
tuyến đến nội dung, phương pháp, kỹ thuật dạy học với đồng nghiệp và nhận thấy
nhiều giáo viên gặp khó khăn trong cơng tác bồi dưỡng học sinh giỏi, đặc biệt với
ngơn ngữ lập trình C++ các giáo viên lại có nhiều hạn chế và khó khăn hơn nên
tơi đã nghiên cứu một cách nghiêm túc và đề xuất một số biện pháp hữu hiệu, khả
thi để đạt kết quả cao hơn. Rất mong các đồng nghiệp tiếp tục góp ý để đề tài của
tơi ngày càng hoàn thiện và ứng dụng rộng rãi trong thực tiễn.
II – MỤC ĐÍCH CỦA SÁNG KIẾN

Nghiên cứu và chia sẻ các biện pháp góp phần nâng cao hiệu quả trong
công tác BDHSG cấp tỉnh bộ môn Tin học ở các trường THPT trên địa bàn tỉnh
Nghệ An.
III – ĐỐI TƯỢNG NGHIÊN CỨU:
- Đối tượng học sinh khá giỏi khối 11, 12.
- Nội dung chương trình theo yêu cầu của công tác BDHSG.
- Phương pháp, kỹ thuật dạy học HSG...
4

TIEU LUAN MOI download :


IV – PHƯƠNG PHÁP NGHIÊN CỨU:
Kết hợp nhiều phương pháp : Nghiên cứu lý thuyết, nghiên cứu từ thực tiễn
dạy học, phân tích, tổng hợp, điều tra, thực nghiệm...
V - ĐIỂM MỚI CỦA ĐỀ TÀI NGHIÊN CỨU
- Về lý luận: Góp phần làm rõ cơ sở lí luận về vấn đề bồi dưỡng học sinh
giỏi, làm rõ khái niệm, vai trò đặc điểm của các yếu tố ảnh hưởng đến chất lượng
công tác bồi dưỡng học sinh giỏi.
- Về thực tiễn:
+ Điều tra, đánh giá các yếu tố ảnh hưởng đến hiệu quả công tác bồi dưỡng
học sinh giỏi.
+ Xác định được các tiêu chí lựa chọn học sinh có năng khiếu lập trình.
+ Đánh giá được năng lực của HS thơng qua các tiêu chí và chọn lựa học
sinh tham gia dự thi.
+ Xây dựng được nội dung chương trình bồi dưỡng học sinh giỏi mơn Tin
học.
+ Đưa ra được quy trình tổ chức dạy học dạy học bồi dưỡng hsg môn Tin
học.
+ Sáng kiến đã đưa ra một hệ thống các bài tập thích hợp, sắp xếp một cách

logic, hợp lí từ dễ đến khó nhằm giúp học sinh củng cố kiến thức, rèn luyện kỹ
năng phát triển tư duy và biết áp dụng Tin học vào thực tiễn.
+ Thơng qua việc hướng dẫn giải các bài tốn giáo viên đã rèn luyện kỹ
năng lập trình cho học sinh bằng cách định hướng, uốn nắn qua lời giải từng bài
tập, qua đó góp phần tạo niềm tin và hứng thú học tập.

5

TIEU LUAN MOI download :


Phần 2. NỘI DUNG
I - CƠ SỞ LÝ LUẬN:
1. Tầm quan trọng của việc bồi dưỡng học sinh giỏi.
- Nhân tài có vai trị hết sức quan trọng trong việc phát triển kinh tế, xã hội.
Trong đường lối đổi mới toàn diện của đất nước ta về giáo dục và đào tạo, Đảng
ta đã xác định: “Cùng với khoa học và công nghệ, giáo dục và đào tạo là quốc
sách hàng đầu nhằm nâng cao dân trí, đào tạo nhân lực, bồi dưỡng nhân tài...”
- Việc bồi dưỡng học sinh giỏi, đào tạo nguồn nhân tài cho đất nước là một
nhiệm vụ rất quan trọng và cần thiết vì những người tài bao giờ cũng là nhân tố
quan trọng để thúc đẩy xã hội phát triển.
- Đã từ lâu việc phát hiện và bồi dưỡng học sinh giỏi là nhiệm vụ trọng tâm
của các trường THPT vì vậy các nhà trường đặc biệt quan tâm và mọi giáo viên
đều có nhiệm vụ phát hiện và bồi dưỡng học sinh giỏi.
- Tổ chức bồi dưỡng học sinh giỏi và thi học sinh giỏi nhằm: Động viên
khích lệ những học sinh và giáo viên trong dạy và học, góp phần thúc đẩy việc cải
tiến, nâng cao chất luợng giáo dục, đồng thời phát hiện học sinh có năng khiếu để
tiếp tục bồi dưỡng và định hướng nghề nghiệp đúng sở thích, sở trường, nhằm tạo
nguồn nhân lực chất lượng cao cho đất nước.
2. Lợi thế của việc lựa chọn NNLT C++ trong công tác BD HSG.

Trong quy định của các kỳ thi HSG Tin học, thí sinh có thể lập trình bằng
ngơn ngữ Pascal, C++ (trên DevC++, Code Block), Python để giải các bài tốn.
Trong ba NNLT này, C++ là ngơn ngữ nên được lựa chọn hàng đầu vì nó có
những ưu điểm nổi bật hơn hẳn so với hai ngôn ngữ lập trình cịn lại ở một số đặc
điểm sau:
- Ngơn ngữ lập trình C++ rất phù hợp để rèn luyện cho học sinh hiểu sâu
về thuật toán cũng như phân tích, đánh giá chính xác hiệu suất thuật tốn. Bên
cạnh đó C++ cũng là một NNLT đang được sử dụng phổ biến hiện nay trong việc
thiết kế, xây dựng các phần mềm ứng dụng thực tiễn.
- Thư viện C++ có nhiều cấu trúc dữ liệu khác nhau cho học sinh linh hoạt
lựa chọn cấu trúc phù hợp để lưu trữ và xử lý bài tốn của mình. Bên cạnh đó C++
có hệ thống hàm có sẵn rất phong phú như tìm min, max, tính tổng, sắp xếp (với
nhiều thuật tốn khác nhau), thay thế các phần tử, tìm kiếm (tìm kiếm thường và
tìm kiếm nhị phân)… Do đó tiết kiệm thời gian và tăng tốc độ viết code lên rất
nhiều.
- Tốc độ thực thi chương trình rất nhanh do C++ sử dụng trình biên dịch.
Thời gian thực thi và thời gian biên dịch chương trình viết bằng ngơn ngữ C++
được đánh giá nhanh hơn bất kỳ ngơn ngữ lập trình nào khác. Đây là một tiêu chí
cực kỳ quan trọng trong lập trình thi đấu cũng như trong các kỳ thi học sinh giỏi
các cấp.
6

TIEU LUAN MOI download :


3. Một số năng lực đặc thù cần chú trọng trong công tác bồi dưỡng học sinh
giỏi bộ môn Tin học
* Năng lực vận dụng, khai thác kiểu dữ liệu, cấu trúc dữ liệu.
Mỗi ngơn ngữ lập trình đều cung cấp một số kiểu dữ liệu đơn giản cho biết
phạm vi giá trị có thể lưu trữ, dung lượng bộ nhớ cần thiết để có thể lưu trữ và

các phép tốn tác động lên dữ liệu. Kiểu dữ liệu có cấu trúc là kiểu dữ liệu được
tạo ra từ các phần tử có kiểu dữ liệu đơn giản bằng một cách nào đó. Chúng được
đặc trưng bằng kiểu dữ liệu của các phần tử và điều quan trọng hơn cả là phương
pháp cấu thành kiểu dữ liệu mới, phương pháp truy nhập vào kiểu dữ liệu có cấu
trúc.
Các đề thi học sinh giỏi ngày nay thường có yêu cầu cao về phạm vi dữ liệu
cần được xử lý và có giới hạn về dung lượng bộ nhớ nên việc sử dụng cấu trúc dữ
liệu cần phải được cân nhắc và sử dụng một cách hợp lý để tránh lãng phí về mặt
bộ nhớ và thuận lợi, hiệu quả trong việc xử lý.
Đối với một học sinh giỏi tin học yêu cầu học sinh phải hiểu biết các cấu
trúc dữ liệu mà ngơn ngữ lập trình cung cấp; có khả năng vận dụng các cấu trúc
dữ liệu để tổ chức và xử lý dữ liệu đặc thù cho từng lớp bài tốn.
* Năng lực phân tích và đánh giá độ phức tạp của thuật toán.
Mỗi thuật toán chỉ giải một bài tốn, nhưng có thể có nhiều thuật tốn khác
nhau cùng giải một bài toán. Do vậy, cần thiết phải lựa chọn một thuật toán tốt
nhất để giải bài toán đã cho. Khi đánh giá và lựa chọn thuật toán người ta thường
căn cứ vào các tiêu chí như:
+ Thuật tốn đơn giản, dễ hiểu, dễ cài đặt - dễ viết chương trình;
+ Số lượng ơ nhớ sử dụng ít nhất;
+ Thuật tốn có độ phức tạp thấp nhất - thực hiện chương trình trong thời
gian ngắn nhất;
Trong các tiêu chí trên người ta coi trọng tiêu chí độ phức tạp thuật tốn
thấp thực hiện chương trình tốn ít thời gian vì thời gian là dạng tài ngun khơng
tái tạo được.
Các đề thi học sinh giỏi mơn Tin học có u cầu ngày càng cao cả về độ
khó lẫn thời gian thực hiện chương trình. Chúng ta thường thấy trong các bài thi
có ghi yêu cầu thời gian thực hiện là 1 giây và việc cho điểm ứng với miền giá trị
của tham số. Vì vậy, hiểu rõ về khái niệm độ phức tạp thuật tốn và cách tính
tốn, ước lượng độ phức tạp của giải thuật để lựa chọn thuật toán tối ưu giải quyết
được các bộ dữ liệu lớn của bài toán là hết sức quan trọng, yêu cầu học sinh phải

thường xuyên học tập và rèn luyện.
* Năng lực viết chương trình triển khai giải thuật.
Việc viết chương trình bao gồm cả việc lựa chọn cấu trúc dữ liệu để diễn tả
7

TIEU LUAN MOI download :


thuật tốn. Kỹ năng viết chương trình hết sức quan trọng. Nó liên quan tới phong
cách, thói quen, tay nghề lập trình và thậm chí cả yếu tố tâm lý lúc làm việc.
Khi giải một bài toán tin ở phần chuẩn bị các em thường chỉ dừng lại bước
đoán nhận giải thuật rồi bắt tay ngay vào việc viết chương trình. Vì vậy chương
trình thường khơng hiệu quả, dễ mắc lỗi, mà việc tìm và sửa lỗi nhiều khi rất khó
khăn, mất thời gian, có khi phải mất thời gian ngang với thời gian lập trình. Để
khắc phục điều này các em cần phải viết sơ đồ cấu chương trình trước khi đi vào
viết chi tiết.
Kỹ năng trình bày giải thuật là một kỹ năng vô cùng quan trọng, cần được
rèn luyện kỹ năng này từ rất sớm, bắt đầu từ những bài tốn đơn giản và trong
suốt q trình học cho đến khi các em đi thi.
Viết chương trình triển khai giải thuật là cả một vấn đề nghệ thuật, nếu triển
khai khơng khéo thì dù có thuật tốn tốt thời gian thực hiện chương trình có thể
đội lên cao.
II - THỰC TRẠNG VẤN ĐỀ
1. Thực trạng về công tác bồi dưỡng học sinh giỏi môn Tin học ở trường
THPT.
Công tác bồi dưỡng HSG Tin học ở các trường THPT hiện nay đang gặp
một số khó khăn nhất định đó là cơng tác tuyển chọn học sinh bồi dưỡng, xây
dựng chương trình, nội dung bồi dưỡng, quy trình bồi dưỡng giảng dạy, tài liệu
bồi dưỡng...
Trong những năm gần đây, vị trí, vai trị của mơn Tin học có nhiều thay đổi

song chưa được đưa vào các kỳ thi mang tính chất đại trà, vì vậy học sinh và phụ
huynh chưa quan tâm đến môn học này, một bộ phận học sinh ít chú ý đến bộ mơn
học, tự bản thân các em coi đó là mơn phụ. Bởi vậy khơng ít các giờ học Tin học
diễn ra tẻ nhạt, nặng nề, học sinh ít quan tâm làm giáo viên mất hứng thú và nhiệt
huyết. Chính vì thế lượng giáo viên Tin học đam mê chuyên môn, chuyên tâm với
nghề cịn rất ít nên đã ảnh hưởng khơng nhỏ đến việc bồi dưỡng học sinh giỏi.
Trong thực tế, quan niệm sai lầm của một số người là “thi gì học nấy”, môn
tin là môn phụ - không thi THPT quốc gia, khơng có khối nào dùng để xét vào
các trường cao đẳng, đại học. Quan niệm này khơng chỉ có ở học sinh, mà cịn có
trong cả phụ huynh, thậm chí ngay cả trong đội ngũ giáo viên. Đa số các học sinh
không muốn tham gia bồi dưỡng học sinh giỏi vì sợ mất thời gian ảnh hưởng các
mơn học khác, phụ huynh cũng không ủng hộ, ngay cả trong đội ngũ giáo viên
cũng có những người khơng muốn cho học sinh của mình thi HSG mơn Tin. Chính
những khó khăn đó ln tạo áp lực cho giáo viên khi tham gia dạy bồi dưỡng học
sinh giỏi. Vì vậy ảnh hưởng không nhỏ đến kết quả, chất lượng học sinh giỏi môn
Tin học ở các trường trung học phổ thông.
8

TIEU LUAN MOI download :


2. Những thuận lợi và khó khăn trong cơng tác bồi dưỡng học sinh giỏi
môn Tin học ở trường THPT hiện nay
* Thuận lợi:
- Ban giám hiệu các trường THPT đã rất quan tâm đến công tác bồi dưỡng
học sinh giỏi và đã có sự chỉ đạo, quan tâm sâu sát kịp thời, có những kế hoạch
cụ thể và lâu dài cho công tác bồi dưỡng HSG.
- Rất nhiều giáo viên có trình độ chun mơn vững vàng, có kinh nghiệm
và nhiệt huyết lớn trong công tác bồi dưỡng HSG ở trong và ngoài trường sẵn
sàng giúp đỡ chia sẻ, hỗ trợ nhau trong cơng tác BD HSG.

- Có rất nhiều trang mạng về lập trình phổ thơng giúp học sinh có thể học
tập, làm bài, thi thử, chấm bài tự động để các em đánh giá và rèn luyện khả năng
của bản thân. Đây là các yếu tố quan trọng tạo nên kết quả học sinh giỏi tỉnh hàng
năm cao.
* Khó khăn:
- Giáo viên dạy bồi dưỡng vừa phải bảo đảm chất lượng đại trà, vừa phải
hoàn thành chỉ tiêu chất lượng mũi nhọn và công tác kiêm nhiệm do đó cường độ
làm việc quá tải và việc đầu tư cho cơng tác bồi dưỡng HSG cũng có phần bị hạn
chế.
- Giáo viên dạy bồi dưỡng đều phải tự soạn chương trình dạy, theo kinh
nghiệm của bản thân, tự nghiên cứu, tự sưu tầm tài liệu:
+ Tài liệu về bộ mơn Tin học khơng nhiều. Việc tìm kiếm tài liệu dạy học
phù hợp trình độ học sinh rất vất vả.
+ Hệ thống bài tập ít ỏi, rời rạc nên việc tổng hợp bài tập và đề thi thành
các dạng bài tập phục vụ dạy học mất rất nhiều thời gian.
+ Rất ít tài liệu, sách vở nói đến các tiểu tiết để cải tiến chương trình.
- Học sinh học chương trình chính khóa phải học q nhiều mơn, lại phải
học thêm nhiều mơn khác, cộng thêm chương trình bồi dưỡng HSG nên rất hạn
chế về thời gian tự học. Các em đầu tư ít thời gian cho việc học bồi dưỡng HSG,
do đó kết quả khơng cao là điều tất yếu.
- Sau các kỳ thi học sinh giỏi môn Tin thường khơng có đáp án. Nếu có đáp
án tham khảo thì việc đọc và hiểu được đáp án cũng rất khó do đáp án thường
khơng có ý tưởng thuật toán kèm theo. Thực tế, qua các kỳ thi HSG tỉnh Nghệ An
đã có rất nhiều học sinh, giáo viên khó hiểu khi bài thi làm đúng nhưng điểm thi
vẫn rất thấp và sự khó hiểu đó vẫn cứ kéo dài do đáp án tham khảo và test chấm
ít được cơng bố.
Vì vậy, trong q trình giảng dạy giáo viên phải ln tích cực trao đổi kinh
nghiệm, thảo luận về nội dung, phương pháp, kỹ thuật dạy học với các đồng
nghiệp trong và ngoài nhà trường để nâng cao chất lượng giáo dục bộ môn.
9


TIEU LUAN MOI download :


III – GIẢI QUYẾT VẤN ĐỀ
1. Công tác chỉ đạo - Thắp lửa đam mê, hứng thú học tập cho HS.
1.1 Vai trị của ban giám hiệu trong cơng tác BDHSG.
Ban giám hiệu nhà trường quan tâm chỉ đạo sát sao tới công tác bồi dưỡng
học sinh giỏi của trường, coi đó là nhiệm vụ chính trị quan trọng hàng đầu của
trường; ln nghiên cứu để tìm ra biện pháp chỉ đạo bồi dưỡng học sinh giỏi nhằm
nâng cao chất lượng bồi dưỡng học sinh giỏi cụ thể là:
- Nâng cao nhận thức về công tác bồi dưỡng học sinh giỏi:
+ Thường xuyên gặp gỡ, trao đổi, nắm bắt những tâm tư nguyện vọng,
những đề xuất, kiến nghị của giáo viên, học sinh để tìm biện pháp đáp ứng, đặc
biệt là vấn đề tài liệu, công cụ học tập …
+ Luôn quan tâm đến công tác bồi dưỡng giáo viên: bồi dưỡng tư tưởng,
chính trị, đạo đức, phẩm chất nghề nghiệp; năng lực chuyên môn; kỹ năng sư
phạm; kiến thức kinh nghiệm thực tế và bồi dưỡng các kiến thức bổ trợ.
+ Làm tốt công tác động viên, khen thưởng thích đáng giáo viên, học sinh
có kết quả cao trong q trình bồi dưỡng...
- Xây dựng kế hoạch cơng tác bồi dưỡng học sinh giỏi:
+ Xây dựng kế hoạch phải dài hạn, khoa học, chi tiết, cụ thể, có chiều sâu
và có tính khả thi cao.
+ Trong kế hoạch phải thể hiện được mục tiêu, hình thức thi đua khen
thưởng, kinh phí cần sử dụng.
+ Kế hoạch phải được tồn thể cán bộ, giáo viên và học sinh nắm vững, kế
hoạch hội thảo rút kinh nghiệm trong việc dạy đội tuyển.
- Phân công giáo viên trực tiếp bồi dưỡng đội tuyển học sinh:
Vai trị của người giáo viên trong cơng tác phát hiện, bồi dưỡng học sinh
giỏi là hết sức quan trọng. Có thể nói giáo viên bồi dưỡng là một trong những yếu

tố quan trọng quyết định kết quả bồi dưỡng. Vì vậy khi tuyển chọn và phân cơng
giáo viên bồi dưỡng, cán bộ quản lí phụ trách cơng tác chun mơn cần dựa trên
tiêu chí như:
+ Lựa chọn giáo viên có trình độ năng lực, chun mơn, nghiệp vụ cao.
+ Nhiệt tình, yêu nghề, say sưa với nghề, ham học hỏi, tự bồi dưỡng và cầu
tiến, có ý thức kỉ luật cao trong chun mơn.
+ Có sức khoẻ, tự tin, giàu kinh nghiệm, có tính sáng tạo trong giảng dạy.
+ Cần phân công, cần giao nhiệm vụ cho giáo viên ngay từ lớp 10 đến lớp
12 để giáo viên có trách nhiệm và kế hoạch bồi dưỡng sớm.
- Tổ chức chỉ đạo bồi dưỡng học sinh giỏi:
10

TIEU LUAN MOI download :


+ Việc bồi dưỡng học sinh giỏi cần được làm thường xuyên, liên tục không
nhất thiết phải tổ chức riêng lớp, riêng buổi. Giáo viên có thể dạy lồng ghép vào
trong từng bài học, tiết học của bộ môn. Mỗi giờ học có thể phát triển một lượng
kiến thức nâng cao một cách phù hợp, nhẹ nhàng, tự nhiên rồi ra bài tập thêm cho
đối tượng học sinh khá, giỏi qua nhiều hình thức khác nhau.
+ Khoảng ba tháng trước thi có thể tổ chức bồi dưỡng nâng cao cho học
sinh mỗi tuần một buổi với thời lượng phù hợp vừa sức với học sinh tránh gò ép,
nhồi nhét dẫn đến tình trạng học sinh mất hứng thú với việc học.
+ Tổ nhóm chun mơn cần xây dựng nội dung chương trình thống nhất,
giáo viên cần phải sử dụng quỹ thời gian hợp lý đảm bảo theo hết chương trình
này.
- Tổ chức kiểm tra, đánh giá xếp loại học sinh:
Hàng tháng, tổ chức kiểm tra, thi thử xếp thứ tự học sinh trong đội tuyển
bằng các hình thức như: Giáo viên trực tiếp dạy tự ra đề, chấm, xếp loại học sinh
hoặc kết hợp với các trường trong huyện tổ chức thi cụm để tăng tính thi đua và

luyện tập cho học sinh. Hàng tháng, động viên, khen thưởng những em có thành
tích cao nhất trong đội tuyển.
Sự quan tâm của BGH ảnh hưởng lớn đến nhận thức của phụ huynh, học
sinh. Từ đó giáo viên và học sinh ngày càng thấy được niềm tự hào và trách nhiệm
của mình trong việc thực hiện mục tiêu đào tạo của nhà trường trong cơng tác bồi
dưỡng học sinh giỏi.
1.2 Vai trị của giáo viên trực tiếp giảng dạy
+ Phẩm chất, uy tín, năng lực của người giáo viên có ảnh hưởng trực tiếp
đến quá trình học tập và rèn luyện của học sinh. Thầy cơ là yếu tố hàng đầu đóng
vai trị quyết định trong cơng tác BDHSG, là người chỉ đường về quy trình ơn
luyện, định hướng các nội dung học tập, truyền dạy hứng thú, niềm say mê môn
học cho các em.
+ Giáo viên là tấm gương trong việc tự học, tự hoàn thiện bản thân về phẩm
chất và năng lực chuyên môn, tâm huyết với công việc để từ đó các em tin tưởng
noi theo.
+ Giáo viên phải rất cố gắng, nỗ lực, sáng tạo và nghiêm túc trong trong
các khâu của quá trình bồi dưỡng: như tuyển chọn học sinh, thiết kế nội dung bồi
dưỡng, các phương pháp dạy học truyền thống và hiện đại phải được sử dụng linh
hoạt và nhuần nhuyễn, phát huy được khả năng tự học, tự nghiên cứu của học trò
trong lĩnh hội kiến thức.
Môn tin học là một lĩnh vực không ngừng phát triển và thay đổi vì vậy
người giáo viên giảng dạy tin học phải không ngừng học tập và cập nhật những
kiến thức mới về lĩnh vực CNTT để kịp thời bổ sung cho học sinh gieo niềm tin,
sự hứng thú học tập và kích thích đam mê khám phá cho học sinh.
11

TIEU LUAN MOI download :


2. Phát hiện học sinh có khả năng tham gia bồi dưỡng và tuyển chọn học

sinh dự thi kỳ thi học sinh giỏi.
2.1 Phát hiện và hình thành đội tuyển.
Việc phát hiện và tuyển chọn học sinh vào đội tuyển học sinh giỏi là một
trong những khâu rất quan trọng, quyết định phần lớn chất lượng của công tác bồi
dưỡng học sinh giỏi.
Trước khi thành lập đội tuyển tôi quan tâm tới đối tượng học sinh, đặc biệt
là những học sinh có khả năng học tốt mơn Tin học; tìm hiểu tố chất, năng lực
lĩnh hội kiến thức cũng như tâm lý, nhu cầu, động cơ học tập của các em để đo
mức độ hứng thú và say mê học tập. Trên cơ sở đó, kịp thời nắm bắt diễn biến tư
tưởng và ý thức học tập của các em; khích lệ, động viên kịp thời.
Việc phát hiện và bồi dưỡng học sinh giỏi cần được tiến hành từ đầu cấp
thơng qua q trình giảng dạy trên lớp, qua các giờ thực hành, qua các bài kiểm
tra và qua phụ huynh và giáo viên trực tiếp giảng dạy các môn.
Thực tế ngay trong năm học đầu cấp, giáo viên đã phải sàng lọc những em
có tố chất và có tinh thần say mê mơn học và từ đó có kế hoạch bồi dưỡng. Đến
năm sau thì việc hình thành đội tuyển đã dần dần được cụ thể.
Môn Tin là môn học đặc trưng, như chúng ta biết việc thi HSG Tin Học
liên quan đến nhiều kiến thức mơn Tốn. Vì vậy GV bồi dưỡng sau khi nhắm vào
một số đối tượng thì phải tìm hiểu khả năng học tốn của các đối tượng đó thơng
qua giáo viên Tốn, giáo viên chủ nhiệm. Mặt khác có những học sinh giỏi Tốn
nhưng chưa say mê mơn Tin học thì GV tin học lại động viên khích lệ những học
sinh này yêu thích mơn học của mình để từ đó có thể bổ sung thêm vào danh sách
đội tuyển.
2.2 Tuyển chọn học sinh tham gia dự thi.
Trong quá trình bồi dưỡng giáo viên cần đánh giá học sinh một cách khách
quan, chính xác, qua bài thi và qua việc học tập bồi dưỡng hằng ngày để lựa chọn
chính xác đối tượng học sinh có đủ phẩm chất và năng lực đại diện cho trường
tham dự kỳ thi.
- Học sinh được lựa chọn cần có các tố chất sau:
+ Có niềm say mê, yêu thích mơn học. Sự say mê ấy phải được biểu hiện

thường xuyên, liên tục và bằng ý thức tự giác trong học tập. Học sinh có khả năng
và phương pháp tự học sẽ lĩnh hội được nhiều kiến thức và ghi nhớ được lâu.
+ Có tư duy tốt, tiếp thu vấn đề nhanh, nhớ lâu. Các em có khả năng suy
luận, quy nạp, khái quát hóa, trừu tượng hóa. Các em có khả năng hiểu sâu, rộng
nhiều vấn đề.

12

TIEU LUAN MOI download :


+ Có tính sáng tạo, tư duy độc lập, có óc phê phán, khơng suy diễn theo lối
mịn, ln muốn đi tìm bản chất, tìm ra quy luật, có khả năng phán đốn, tìm ra
cách thức tối ưu.
- Học sinh được lựa chọn cuối cùng là những học sinh có năng lực nổi bật
trong việc khai thác các kiểu dữ liệu, tư duy thuật tốn tốt, có kỹ năng triển khai
giải thuật.
Trong quá trình bồi dưỡng, tổ chức các cuộc thi định kỳ hàng tháng để đánh
giá, sàng lọc, tuyển chọn học học sinh vào đội tuyển chính thức, trước thời gian
thi Tỉnh khoảng 2 tháng để tiếp tục bồi dưỡng nâng cao.
3. Xây dựng nội dung chương trình, kế hoạch bồi dưỡng.
3.1 Một số lưu ý khi xây dựng nội dung bồi dưỡng
- Khi xây dựng nội dung chương trình bồi dưỡng cần căn cứ vào kế hoạch
của Sở Giáo dục & Đào tạo, nhiệm vụ của nhà trường về cơng tác bồi dưỡng học
sinh giỏi, khung chương trình và cấu trúc đề thi mà Sở ban hành đối với bộ mơn.
- Hiện nay có rất nhiều sách nâng cao và các tài liệu tham khảo, internet...
song việc soạn thảo chương trình bồi dưỡng thích hợp là một việc làm hết sức
quan trọng và rất khó khăn, nếu khơng có sự tham khảo, tìm tịi và chọn lọc tốt.
- Khi soạn thảo nội dung bồi dưỡng cần thiết kế từ nội dung cơ bản, tới
chương trình nâng cao, từ đơn giản tiến tới phức tạp. Đồng thời cũng phải có ơn

tập củng cố.
- Khơng nên phụ thuộc sách nâng cao hiện nay vì các sách này phù hợp hơn
cho đối tượng học sinh hệ chuyên bởi thế học sinh khơng chun khó hiểu sâu,
nắm chắc, dễ nhầm lẫn và trong sách nâng cao có một số bài quá khó đối với học
sinh.
- Giáo viên cần tổng hợp các dạng bài, các phương pháp giải theo hệ thống.
Vì hầu hết học sinh chưa tự mình hệ thống được mà địi hỏi phải có sự giúp đỡ
của giáo viên. Ngồi ra, cần có hệ thống các bài tập tổng hợp giúp học sinh rèn
luyện khả năng nhận dạng các lớp bài toán.
- Khi thiết kế các bài tập rèn luyện cần đưa ra các miền giá trị khác nhau,
việc đưa ra nhiều ràng khác nhau của miền giá trị sẽ giúp rèn luyện và đánh giá
được năng lực của học sinh. Với mỗi miền giá trị việc giải quyết bài toán thường
sẽ khác nhau cả về thuật toán lẫn khối lượng lập trình.
4.2/ Xây dựng các chun đề dạy học.
Ngồi hệ thống kiến thức, kỹ năng được rèn luyện trong chương trình chính
khóa. Cần xây dựng các chun đề bồi dưỡng nâng cao để giáo viên xác định được
nhiệm vụ của mình dạy cho học sinh nội dung gì và dạy như thế nào.
13

TIEU LUAN MOI download :


Căn cứ khung chương trình và cấu trúc đề thi của Sở Giáo dục & Đào tạo,
ví dụ cấu trúc đề thi HSG cấp tỉnh lớp 12, năm học 2021-2022 cùng với kinh
nghiệm của nhiều năm qua, tôi đã xây dựng hệ thống chuyên đề bồi dưỡng nâng
cao học sinh giỏi như sau:
Chuyên đề 1: Kiến thức cơ bản về NNLT C++.
- Kiểu dữ liệu đơn giản và các phép toán cơ bản.
- Các cấu trúc điều khiển;
- Kiểu dữ liệu có cấu trúc.

- Kiểu dữ liệu tệp.
- Chương trình con và lập trình có cấu trúc.
Chun đề 2: Số học.
- Phép toán chia lấy dư và nguyên lý đồng dư.
- Số hoàn hảo, số Fibonaxi.
- Số nguyên tố, sàng số nguyên tố.
- Phân tích thừa số nguyên tố.
Chuyên đề 3: Xử lý dãy số.
- Thuật tốn tìm giá trị nhỏ nhất, lớn nhất của dãy số.
- Thuật tốn tìm kiếm: tìm kiếm tuần tự, tìm kiếm nhị phân.
- Thuật toán sắp xếp dãy số: Sắp xếp nổi bọt, sắp xếp nhanh, sắp xếp bằng
đếm phân phối.
- Kỹ thuật duyệt đoạn con liên tiếp.
- Kỹ thuật dùng mảng đánh đánh dấu (lùa bò vào chuồng)
- Kỹ thuật dùng mảng nhớ tổng tiền tố, hậu tố.
Chuyên đề 4: Xử lý xâu ký tự.
- Kỹ thuật duyệt các phần tử trên xâu.
- Kỹ thuật duyệt xâu con liên tiếp.
- Biến đổi, xử lý trên xâu.
- Sử dụng xâu ký tự để lưu trử và xử lý số lớn.
Chuyên đề 5: Đệ quy, quy lui;
Chuyên đề 6: Quy hoạch động.
Mỗi chuyên đề tôi đã lựa chọn hệ thống các bài tập dùng để củng cố kiến
thức và rèn luyện các kỹ năng cho học sinh. Trong đó, một số bài tập được phát
triển dựa trên các bài tốn điển hình và có thể được phát biểu lại bằng các tình
huống mang tính chất thực tiến khác nhau để rèn luyện kỹ năng nhận dạng bài
tốn. Các bài tốn được lựa chọn có độ khó khác nhau giúp giáo viên có thể linh
hoạt sử dụng ở các thời điểm khác nhau trong từng giai đoạn bồi dưỡng.
14


TIEU LUAN MOI download :


4.3 Lập kế hoạch bồi dưỡng
Căn cứ kế hoạch tổ chức thi, cấu trúc đề thi của Sở GD&ĐT ban hành cùng
kế hoạch BD HSG của nhà trường, thực trạng của công tác bồi dưỡng HSG tại
đơn vị.
- Thời gian ôn tập: Bắt đầu từ đầu năm học đến thời điểm diễn ra cuộc thi.
- Thời lượng, hình thức triển khai:
+ Dạy học trực tiếp: 18 buổi (theo kế hoạch của nhà trường).
+ Tăng cường thêm hình thức dạy học Online. Thời lượng tùy thuộc vào
điều kiện thực tế và mức độ tiếp thu của học sinh.
Hàng tháng, cho học sinh làm bài thi để loại những học sinh không đạt yêu
cầu; chọn đội tuyển chính thức trước thời điểm thi ít nhất 1 tháng.
Nội dung

Thời lượng

Chuyên đề 1: Kiến thức cơ bản về NNLT C++

3 buổi trực tiếp + Online

Chuyên đề 2: Số học.

3 buổi trực tiếp + Online

Chuyên đề 3: Xử lý dãy số.

4 buổi trực tiếp + Online


Chuyên đề 4: Xử lý xâu ký tự

2 buổi trực tiếp + Online

Chuyên đề 5: Đệ quy, quay lui;

1 buổi trực tiếp + Online

Chuyên đề 6: Quy hoạch động.

2 buổi trực tiếp + Online

Phân tích các đề thi, nhận dạng các dạng toán
và giải quyết bài toán.

3 buổi trực tiếp + Online

Ngoài ra tăng cường tự học, tự kiểm tra đánh giá: Tự học thông qua nguồn
tài liệu học tập từ giáo viên. Tự học thông qua các website dạy học lập trình, làm
bài, chấm bài tự động; Tích cực tham gia các contest từ các nhóm cùng học lập
trình…
4. Triển khai bồi dưỡng học sinh giỏi.
4.1. Chú trọng phát triển năng lực tự học, tự kiểm tra đánh giá cho học sinh.
4.1.1 Phát triển năng lực tự học.
Tự học là hoạt động học tập và nhận thức có hệ thống, có mục đích rõ rệt
của học sinh nhằm giải quyết các nhiệm vụ nhận thức một cách độc lập bằng các
phương tiện được lựa chọn độc lập với mục đích hình thành và phát triển kiến
thức, kĩ năng của cá nhân dưới sự điều chỉnh của giáo viên.
Để việc tự học có kết quả, học sinh phải có một số kiến thức và kĩ năng cần
thiết, một phần trong đó do giáo viên trang bị, một phần quan trọng hơn là sự học

hỏi và rèn luyện thường xuyên của người học.
15

TIEU LUAN MOI download :


Trong dạy học bồi dưỡng học sinh giỏi, tự học ở nhà có ảnh hưởng rất lớn
đến kết quả học tập của học sinh. Vì vậy, muốn đạt hiệu quả cao phải hướng vào
việc phát huy năng lực tự học của học sinh, phải kích thích và tạo động lực làm
cho HS tự tin nhờ đó say mê học tập.
Đối với môn Tin học điều kiện và phương tiện để tự học rất phong phú.
Ngồi việc tự học thơng qua hướng dẫn của giáo viên với các nội dung và yêu cầu
cụ thể, học sinh có thể tự học và qua các diễn đàn, các nhóm học tập zalo,
facebook, các video youtube và rất nhiều trang mạng hướng dẫn học tập, làm bài
và chấm bài tự động.
Trong những năm qua, học sinh của tơi đã tự học có hiệu quả cao thông qua
nhiều nguồn tài liệu khác nhau.
Tự học thông qua hệ thống nội dung, bài tập do giáo viên xây dựng, phát
biểu, xây dựng, chọn lọc và chỉnh sửa với mục đích, ý đồ sư phạm cụ thể trong
mỗi bài.
Tự học trên các website về dạy học lập trình như các trang http://
laptrinhphothong.vn/; http:/vinhdinhcoder.net/;
o/problems/; …..
Trong cả quá trình, giáo viên cần thường xuyên theo dõi, bám sát học sinh
để định hướng cho học sinh lựa chọn những nội dung phù hợp tránh đi quá sâu
hoặc quá rộng ra ngồi phạm vi u cầu làm sao lỗng kiến thức, mất nhiều thời
gian mà lại không hiệu quả.
4.1.2 Phát triển năng lực tự kiểm tra đánh giá.
Tự kiểm tra đánh giá trong quá trình học tập, đặc biệt trong quá trình tự học
giúp học sinh hình thành kỹ năng, kỹ xảo từ đó nhận biết rõ ưu khuyết điểm của

bản thân cũng như khắc phục các sai lầm, thiếu sót. Nó góp phần củng cố vững
chắc các kiến thức đã lĩnh hội. Đặc biệt, khi tự kiểm tra, đánh giá học sinh sẽ tự
khẳng định được mình, tự mình đề xuất được biện pháp thỏa đáng để điều khiển
và thúc đẩy hoạt động học tập của bản thân.
- Cần hướng dẫn cho học sinh sử dụng phần mềm chấm bài tự động Themis
của thầy Lê Minh Hoàng để tự chấm bài, tự đánh giá và rút kinh nghiệm sau khi
giải quyết các bài toán.
+ Giáo viên thiết kế, xây dựng nội dung tự học cho học sinh kèm hệ thống
bài tập có test, giao nhiệm vụ học sinh hoàn thành các bài tập và tiếp tục cải tiến
chương trình của mình để chấm đúng tối đa các bộ test do giáo viên cung cấp.
+ Cần sưu tập cho học sinh hệ thống đề thi học sinh giỏi chính thức các cấp,
các tỉnh. Nguồn bài tập này thường có bộ test chuẩn, phân loại được độ phức tạp
của thuật toán và đã được các tổ chức phê duyệt. Sau khi học sinh giải đề thì tiến
hành tự chấm bài và đánh giá mức độ hoàn thành của bản thân để từ đó điều chỉnh
cách học, lối tư duy để ngày càng tiến bộ.
16

TIEU LUAN MOI download :


- Hướng dẫn cho học sinh khai thác các hệ thống website dạy học lập trình,
giải bài trực tuyến, với các trang này có hệ thống bài tập đa dạng, phong phú. Có
phân loại theo dạng và mức độ. Học sinh có thể viết chương trình và tiến hành
chấm bài tự động online. Ngồi ra trên các website này có nhiều đợt mở các
contest mở rộng, học sinh cần theo dõi tham gia để đánh giá mức độ của mình so
với các bạn cùng trang lứa ở khắp mọi miền.
4.2 Dạy học theo chuyên đề.
Sau khi xây dựng nội dung chương trình bồi dưỡng, tơi triển khai dạy học
theo từng chủ đề đã xác định ở trên. Do giới hạn phạm vi của đề tài và thực tế dạy
học chương trình chính khóa nên ở đây tơi chỉ đưa vào một số vấn đề cốt lõi cần

lưu ý và một vài bài tốn cơ bản tiêu biểu để phân tích. Phần bài tập luyện tập và
nâng cao có gợi ý giải và một số chương trình tơi đặt ở phần phần phụ lục.
4.2.1 Chuyên đề kiến thức cơ bản trong C++.
Đối với mỗi nội dung tôi triển khai theo các hoạt động:
- Hướng dẫn học sinh tìm hiểu các kiến thức lý thuyết, các khái niệm, tính
ứng dụng và cả kinh nghiệm về chủ đề.
- Giáo viên cùng học sinh giải quyết một vài ví dụ về bài tốn cơ bản, tiêu
biểu về chủ đề. Sau đó phát triển các toán này với các yêu cầu cao hơn, mở rộng
hơn.
- Luyện tập giải một số bài tập theo chuyên đề; Giải một số bài tập mở rộng
và nâng cao có vận dụng kiến thức kết hợp nhiều chủ đề đã được học ở trước.
1) Kiểu dữ liệu đơn giản và các phép toán cơ bản.
Một số kiểu dữ liệu thường dùng:
+ Kiều logic: bool
+ Kiều ký tự: char
+ Số nguyên: int, long long, unsigned long long
+ Số nguyên: float, double
Ta thấy rằng phạm vi kiểu dữ liệu càng lớn thì càng cần nhiều bộ nhớ và
các đề thi học sinh giỏi ngày nay ngoài giới hạn về thời gian thực hiện chương
trình cịn giới hạn cả về dung lượng bộ nhớ vì vậy cần sử dụng các kiểu dữ liệu
một cách hợp lý.
Các phép toán trên các loại dữ liệu đã được giới thiệu trong chương trình
chính khóa nên tơi không nhắc lại ở đây.
Lưu ý trong một số trường hợp tính tốn cụ thể hoặc cần biểu diễn giá trị
dưới những định dạng khác nhau, chúng ta cần thực hiện ép kiểu để chuyển đổi
qua lại giữa những kiểu dữ liệu có khả năng lưu trữ giá trị giống nhau.
17

TIEU LUAN MOI download :



Bài tốn cơ bản
Viết chương trình nhập vào 2 số nguyên a, b (a,b<=109). Tính tổng (a+b),
hiệu (a-b), tích (a*b), du (a%b), thương nguyên (a/b), thương thực a chia b hiển
thị 2 chữ số sau dấu phẩy.

Lưu ý học sinh:
- Khai báo kiểu dữ liệu phù hợp cho từng biến.
- Hai biến a,b là số nguyên nên khi thực hiện phép chia a/b ta sẽ thu được
kết quả là nguyên. Khi muốn lấy kết quả là số thực ta cần ém kiểu (float). Ta có
thể viết (float)a/b hoặc a/(float)b.
- Câu lệnh cout<- Câu lệnh cout <chia (float)4/2 nếu khơng có câu lệnh này thì kết quả hiện ra là 2. Khi có câu lệnh
này thì kết quả hiển thị là 2.00.
2) Cấu trúc điều khiển:
- Cấu trúc tuần tự.
- Cấu trúc rẽ nhánh: if…, if …. else…
- Lặp với số lần biết trước câu lệnh: for…
- Lặp với số lần chưa biết trước: while …
Bài toán cơ bản:
Bài 1: Viết chương trình nhập vào số nguyên N (1 < n <= 109). Hãy đưa ra
màn hình các số chẵn thuộc đoạn từ 1 đến N.
18

TIEU LUAN MOI download :


Ý tưởng:
Cách 1: Sử dụng vòng lặp với giá trị đầu là 1, bước nhảy 1 để duyệt tất cả

các giá trị i thuộc đoạn từ 1 đến N. Dùng lệnh rẽ nhánh kiểm tra giá trị i nếu là số
chẵn thì xuất ra màn hình.
Cách 2: Sử dụng vịng lặp với giá trị đầu là 2, bước nhảy 2 để duyệt tất cả
các giá trị i là số chẵn để xuất ra màn hình.
Sau đây chương trình sử dụng câu lệnh for và chương trình sử dụng câu
while để giải bài toán.

Cách 1: Dùng câu lệnh for

Cách 1: Dùng câu lệnh while

Cách 2: Dùng câu lệnh for

Cách 2: Dùng câu lệnh while

Đánh giá thuật toán:
Trong 2 ý tưởng tưởng trên ta thấy cách 1 độ phức tạp thuật toán là O(n).
cách 2 độ phức tạp là O(n/2). Như vậy ta nên chọn cách 2 để giải quyết bài toán.
Lưu ý: Câu lệnh lặp có độ phức tạp lớn khi số lần lặp lớn. Vì vậy ta cần
nghiên cứu tìm cách làm giảm số lần lặp xuống hết mức có thể.
19

TIEU LUAN MOI download :


3) Kiểu dữ liệu có cầu trúc.
Ngơn ngữ lập trình C++ cung cấp rất nhiều kiểu dữ liệu có cấu trúc. Hai
kiểu cơ bản thường dùng nhất đó là kiểu mảng một chiều và xâu dữ liệu. Ngoài
ra, trong quá trình giảng dạy để thuận lợi hơn trong việc lưu trữ và xử lý chúng ta
có thể giới thiệu thêm cho học sinh các kiểu khác như: pair, vecto…

* Kiểu dữ liệu mảng một chiều:
- Khái niệm về mảng một chiều
- Khai báo mảng
- Truy nhập phần tử mảng
- Nhập/xuất mảng
Khi nhập, xuất hay duyệt các phần tử của mảng ta cần dùng lệnh for để truy
cập đến các phần tử của mảng.
* Kiểu dữ liệu Xâu ký tự:
- Khai báo xâu.
- Nhập xâu bằng lệnh: cin, getline
- Xuất xâu: cout
- Một số thao tác trên xâu:
+ Phép ghép nối xâu: +
+ Phép so sánh: >, >=, <, <=, ==, !=
+ Hàm lấy độ dài xâu s: s.length() hoặc s.size();
+ Hàm sao chép trong xâu s từ chỉ số VT lấy n ký tự: s.substr(VT, n);
+ Hàm chèn thêm vào xâu x vào xâu s tại vị trí VT: s.insert(VT, x);
+ Hàm xóa trong xâu s từ chỉ số VT xóa đi n ký tự: s.erase(VT, n);
+ Hàm tìm kiếm: tìm vị trí đầu tiên xuất hiện xâu x trong xâu s: s.find(x).
Nếu xâu x khơng có trong xâu S thì kết quả = -1
+ Hàm tìm kiếm ngược: tìm vị trí cuối cùng xuất hiện xâu x trong xâu s:
s.rfind(x). Nếu xâu x khơng có trong xâu S thì kết quả = -1
+ Hàm đổi ký tự thành ký tự hoa: toupper(ch);
+ Hàm đổi ký tự thành ký tự thường: tolower(ch);
Bài toán cơ bản:
Bài 1: Cho dãy số A gồm N số nguyên A1, A2, ..., AN. Hãy tìm giá trị lớn
nhất của dãy số A và chỉ số các phần tử có giá trị là lớn nhất.
Dữ liệu vào: Gồm 2 dòng:
- Dòng đầu tiên chứa số N (N<=106).
- Dòng thứ hai chứa dãy số A, các số ghi cách nhau ít nhất là một ký tự

trống (1<=a[i]<=109).
20

TIEU LUAN MOI download :


Dữ liệu ra: Gồm 2 dòng:
- Dòng đầu tiên chứa một số nguyên là giá trị lớn nhất của dãy A.
- Dòng thứ hai chứa dãy số là chỉ số các phần tử có giá trị là lớn nhất, các
số ghi cách nhau ít nhất là một ký tự trống.
Ví dụ:
Input
Output
10
8
1255838822
5 78
Ý tưởng giải quyết bài toán:
Cách 1: - Đọc các giá trị vào mảng A và tìm giá trị lớn nhất Max của dãy.
- Duyệt tất cả các phần tử của dãy A để đưa ra chỉ số các phần tử Max
Cách 2: Đọc các giá trị của dãy, vừa đọc vừa tìm các giá trị lớn nhất và lưu các
chỉ số của các phần tử lớn nhất vào mảng B. (Khi duyệt đến phần tử i thì mảng B
sẽ lưu chỉ số của các phần tử lớn nhất trong các phần tử từ 1 đến i).
Chương trình diễn đạt các ý tưởng như sau:

Cách 1

Cách 2

Phân tích thuật tốn:

- Cả 2 cách đều phải dùng đến 2 vịng for để duyệt, nhưng cách 2 sẽ thực
hiện nhanh hơn cách 1 vì ở vịng for thứ hai cách 1 lặp n lần, cách 2 lặp k lần mà
k luôn nhỏ hơn hoặc bẳng n.
- Thơng qua chương trình ở cách 2, giáo viên nhấn mạnh cho học sinh cách
tạo mảng lưu kết quả trong khi duyệt.

21

TIEU LUAN MOI download :


Bài 2: Để chuẩn bị cho kỳ thi nghề THPT sắp tới, cơ đã cho các nhóm đăng
ký dự thi và gửi danh sách đăng ký cho bạn An lớp trưởng tổng hợp thành danh
sách đăng ký của lớp. Do các nhóm làm việc cẩu thả nên danh sách gửi cho An
cịn rất nhiều lỗi chính tả: Giữa các từ còn gõ nhiều dấu cách, họ tên học sinh chưa
viết hoa đầu từ.
Em hãy viết chương trình: nhập vào xâu s là họ tên của một học sinh, xuất
ra xâu đã xóa các dấu cách thừa và viết hoa đầu từ.
Ý tưởng giải quyết bài tốn:
- Các cơng việc chính: Khai báo, nhập xâu, xóa dấu cách thừa, viết hoa đầu
từ, xuất kết quả.
- Xóa dấu cách thừa:
+ Cách 1: Dùng câu lệnh for duyệt lùi, cứ gặp 2 dấu cách liền nhau thì dùng
lệnh s.erase() xóa đi 1. (Lưu ý với hs nếu dùng for tiến sẽ k xóa hết được).
+ Cách 2: Dùng lệnh while duyệt tiến để xóa.
+ Cách 3: Dùng lệnh while kết hợp hàm s.find để xóa.
+ Cách 4: Dùng thêm biến phụ để lưu kết quả khi duyệt for tiến.
- Chuyển ký tự đầu từ thành chữ hoa: Duyệt xâu, cứ gặp ký tự khác cách
mà ký tự trước đó là dấu cách thì sẽ chuyển ký tự này thành ký tự hoa.
Lưu ý: Cần xử lý tình huống đặc biệt đầu dãy.

Chương trình diễn đạt các ý tưởng như sau:
Cách 1:

Cách 2::

22

TIEU LUAN MOI download :


Cách 3:

Cách 4:

Thơng qua các chương trình nhấn mạnh cho học sinh các thao tác đã được
vận dụng trong bài toán này, như hàm s.length(); s.find(); s.erase(); toupper(); +…
4) Kiểu dữ liệu tệp:
Trong các kỳ thi học sinh giỏi, thường chỉ yêu cầu xử lý với một tệp Input
và một tệp Output. Như vậy để làm việc với tệp trước tiên ta cần mở tệp bằng hai
câu lệnh sau:
freopen(<tên tệp input>,"r", stdin);
freopen(<tên tệp output>,"w", stdout);
- Đọc tệp khi số phần tử đã xác định, sau khi mở tệp ta thực hiện bình
thường như đọc vào từ bàn phím.
- Khi đọc tệp với số phần tử chưa xác định ta cần kết hợp câu lệnh while.
Ví dụ đọc tệp vào mảng A với số phần tử chưa xác định:
int i = 1;
while (cin >> a[i])
{


i++; }

Đọc các dòng của tệp vào xâu S với số phần tử chưa xác định:
while (getline(cin,S))
- Câu lệnh đưa con trỏ xuống dòng trong tệp Input: cin.ignore() ;
23

TIEU LUAN MOI download :


Bài tập cơ bản:
Bài 1: Cho dãy số A gồm N số nguyên A1, A2, ..., AN (n<=106 ), giá trị
các số không vượt quá 109. Hãy cho biết trong tệp có bao nhiêu số và đưa ra các
số lẻ trong dãy.
Trường hợp 1: Dữ liệu vào từ Tệp TEPSO.INP
- Dòng đầu chứa số nguyên n.
- Dòng thứ 2 chứa n số nguyên ghi cách nhau ít nhất là một ký tự trống.
Trường hợp 2: Dữ liệu vào Tệp TEPSO.INP
Chứa n số nguyên ghi cách nhau ít nhất là một ký tự trống.
Kết quả ra: Ghi vào tệp TEPSO.OUT gồm 2 dòng:
- Dòng đầu tiên chứa một số nguyên là số lượng số có mặt trong tệp.
- Dịng thứ hai chứa dãy số lẻ có trong dãy theo tuần tự từ trước ra sau, các
số ghi cách nhau ít nhất là một ký tự trống.
Ý tưởng giải quyết:
Trường hợp 1:
+ Đọc n từ tệp Input ghi vào tệp Output.
+ Ta chỉ cần duyệt 1 lần bằng lệnh for để vừa đọc vừa kiểm tra tìm
các số lẻ.
Trường hợp 2: Ta cần duyệt 2 lần trên các số:
+ Lần 1 dùng câu lệnh while kết hợp lệnh cin để đọc các số vào mảng

và đếm số lượng số.
+ Duyệt các số trên mảng để tìm các số lẻ.
Chương trình giải:

Trường hợp 1

Trường hợp 2
24

TIEU LUAN MOI download :


Bài 2: Cho tệp văn bản TEPXAU.INP ghi họ tên học sinh trong một lớp
học. Hãy cho biết trong tệp có bao nhiêu học sinh và đưa ra họ tên của học sinh
dài nhất.
Trường hợp 1: Dữ liệu vào: Tệp TEPXAU.INP
Gồm nhiều dòng, mỗi dòng là họ tên của 1 học sinh.
Trường hợp 2: Dữ liệu vào: Tệp TEPXAU.INP.
- Dòng đầu tiên chứa số nguyên n là số học sinh trong lớp.
- n dòng tiếp theo mỗi dòng là họ tên của 1 học sinh.
Kết quả ra: Ghi vào tệp TEPSO.OUT gồm 2 dòng:
- Dòng đầu tiên chứa số lượng học sinh trong lớp.
- Dòng thứ hai ghi họ tên của học sinh dài nhất.
Ý tưởng giải quyết:
Trường hợp 1: Ta dùng câu lệnh while kết hợp lệnh getline(cin,s) để đọc
và đếm số học sinh.
Trường hợp 2:
- Ta dùng lệnh cin để đọc số lượng học sinh
- Dùng lệnh cin.ignore(); để đưa con trỏ xuống dòng.
- Dùng câu lệnh for kết hợp lệnh getline(cin,s) để đọc từng dòng.

Lưu ý: Ta nên vừa đọc vừa xử lý để không phải lưu lại danh sách trong mảng và
tránh việc duyệt danh sánh nhiều lần.
Chương trình:

Trường hợp 1

Trường hợp 2
25

TIEU LUAN MOI download :


×