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

skkn lựa chọn một số dạng bài tập kiểu xâu kí tự để bồi dưỡng cho học sinh đội tuyển môn tin học ở trường THPT hoằng hóa 3

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 (181.55 KB, 22 trang )

MỤC LỤC
Trang
1.1.Lý do chọn đề tài.........................................................................................2
1.2.Mục đích nghiên cứu...................................................................................3
1.3.Đối tượng nghiên cứu..................................................................................3
1.4.Phương pháp nghiên cứu.............................................................................3
2. Nội dung 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
+ Đặc điểm nhận thức của học sinh đối với môn Tin học:...........................3
+ Tư duy của học sinh:......................................................................................3
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm....................3
- Thực trạng công tác bồi dưỡng học sinh giỏi môn Tin học hiện nay..............3
- Những thuận lợi và khó khăn:.........................................................................4
* Khó khăn:.......................................................................................................4
2.3. Các giải pháp đã sử dụng để giải quyết vấn đề..........................................4
2.3.1 Xác định tiêu chí để xây dựng dạng bài tập phù hợp với năng lực học
sinh của trường THPT Hoằng Hóa 3.............................................................4
2.3.2 Lựa chọn một số dạng bài tập phù hợp với năng lực học sinh đội
tuyển môn Tin học ở trường THPT Hoằng Hóa 3.........................................5
2.4. Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản
thân, đồng nghiệp và nhà trường.....................................................................21
3. Kết luận, kiến nghị........................................................................................21
- Một số kết luận:.............................................................................................21
- Kiến nghị:......................................................................................................21


1. Mở đầu
1.1.

Lý do chọn đề tài


Trong quá trình giảng dạy, tôi được nhà trường tin tưởng giao cho giảng
dạy và thành lập được đổi tuyển HSG môn Tin học của Nhà trường, đối tượng
được lựa chọn chủ yếu là học sinh khá, giỏi môn Tin học. Chính vì vậy ngoài
việc giúp các em nắm chắc kiến thức cơ bản tôi còn phải bồi dưỡng các em tham
gia kỳ thi học sinh giỏi cấp tỉnh. Một vấn đề gặp phải khi lựa chọn và bồi dưỡng
đội tuyển đó là điểm tuyển sinh đầu vào của học sinh lớp 10 thấp so với các
trường trong huyện, đa số các em có tư duy toán học tốt thì đều nằm trong đội
tuyển các môn Toán, Lý, Hóa, Sinh nên việc tìm kiếm và lựa chọn rất khó khăn,
do đó các học sinh có lựa chọn được vào đội tuyển môn tin học thì chủ yếu là
các học sinh có kiến thức và tư duy toán học ở mức trung bình khá và khá, hiếm
hoi lắm mới chọn lựa được một em có mức độ tư duy toán học trên khá một tí,
vì vậy công tác bồi dưỡng cũng gặp không ít khó khăn. Chính vì vậy để có thể
có được giải trong kỳ thi thì khi bồi dưỡng giáo viên cần phải lựa chọn được
những dạng bài tập vừa sức với tư duy các em, từ đó có thể phát triển thêm cho
các em để các em rèn luyện và nâng cao tư duy lập trình cho bản thân thì mới hy
vọng được.
Trong kỳ thi HSG môn tin học ở hầu khắp các tỉnh thành thì các bài tập
phần kiểu xâu kí tự có vai trò quan trọng. Kiểu dữ liệu xâu kí tự là phần rất
nhiều vấn đề và rất nhiều bài tập phong phú, nếu giáo viên không lựa chọn mà
cứ dạy tràn lan hoặc lựa chọn những bài khó vượt quá mức độ tư duy của các em
ngay từ đầu thì với các em có mức độ tư duy trung bình khá hoặc khá sẽ khó có
thể hiểu và học tốt được, dễ dẫn đến việc các em chán nãn. Với chất lượng đầu
vào của học sinh thấp như ở trường tôi thì việc lựa chọn và xây dựng các dạng
bài tập để giúp học sinh ôn tập hiệu quả các bài tập liên quan đến kiểu dữ liệu
xâu kí tự là một vấn đề cần phải suy nghĩ và tính toán, bởi vì việc lựa chọn các
dạng bài tập đó phải thỏa mãn phù hợp với năng lực của các em đồng thời phải
thuận tiện để các em ôn tập khi ở nhà vì thời gian mà các em dành cho môn học
này là khiêm tốn.
Từ thực tiễn giảng dạy và bồi dưỡng học sinh giỏi, cùng với kinh nghiệm
trong quá trình giảng dạy, bồi dưỡng học sinh. Tôi đã tổng hợp, khai thác để xây

dựng đề tài: ‘‘Lựa chọn một số dạng bài tập kiểu xâu kí tự để bồi dưỡng cho
học sinh đội tuyển môn Tin học ở trường THPT Hoằng Hóa 3’’.
Qua nội dung đề tài này tôi mong muốn cung cấp cho học sinh một số
dạng bài toán cơ bản về kiểu dữ liệu xâu kí tự, phương pháp và các kỹ năng cơ
bản để học sinh có thể giải quyết chúng, tránh tình trạng khi các em gặp phải
các bài toán tương tự hoặc bài toán đảo của bài toán đã làm liên quan đến kiểu
dữ liệu xâu lại suy diễn, thường làm phức tạp vấn đề hay không giải được. Và
trên cơ sở đó với tinh thần tự học một cách nghiêm túc thì các em có thể phát
triển thêm tư duy của mình. Hy vọng kinh nghiệm nhỏ này sẽ giúp các học sinh
có cái nhìn linh hoạt và chủ động khi gặp một số dạng bài toán liên quan đến
kiểu xâu kí tự.
Trang

2


1.2.

Mục đích nghiên cứu

Nghiên cứu một số vấn đề lý thuyết và thực tiễn việc rèn luyện cho học
sinh các kỹ năng giải một số dạng bài toán về kiểu dữ liệu xâu kí tự nhằm bồi
dưỡng năng lực tư duy cũng như kỹ năng lập trình cho các học sinh đội tuyển
môn tin học ở một trường có điểm thi đầu vào thấp và có mức độ tư duy trung
bình khá và khá, góp phần nâng cao chất lượng bồi dưỡng học sinh giỏi môn Tin
học ở trường phổ thông Hoằng Hóa 3.
1.3.

Đối tượng nghiên cứu


Đối tượng nghiên cứu: một số dạng bài tập về kiểu dữ liệu xâu kí tự trong môn
tin học 11 của học sinh THPT.
Khách thể nghiên cứu: Học sinh thuộc đội tuyển học sinh giỏi môn Tin học
của trường THPT Hoằng Hóa 3
1.4.

Phương pháp nghiên cứu

- Phương pháp nghiên cứu lý luận: Nghiên cứu các tài liệu, sách báo trên mạng
Internet.
- Phương pháp điều tra thực tiễn: Quan sát việc học của học sinh trong quá trình
khai thác các bài tập sách giáo khoa, sách bài tập và các đề thi học sinh giỏi.
- Phương pháp thực nghiệm sư phạm.
2. Nội dung sáng kiến kinh nghiệm
2.1. Cơ sở lí luận của sáng kiến kinh nghiệm

- Cơ sở tâm lý học:
+ Đặc điểm nhận thức của học sinh đối với môn Tin học:
Phần lớn học sinh coi bộ môn Tin học là môn học phụ, không quan tâm
cho lắm, môn Tin học lớp 11 là môn học khó, trừu tượng, lại phải nhớ các từ
khóa tiếng anh, tuy nhiên với sự nhiệt tình giảng dạy của giáo viên thì vẫn còn
có một vài học sinh có hứng thú với môn Tin học. Từ số lượng ít ỏi đó vẫn có cơ
hội để người giáo viên tìm ra các học sinh cho đội tuyển học sinh giỏi của mình.
+ Tư duy của học sinh:

Thông thường những học sinh có kỹ năng lập trình khá, giỏi là những em
có tư duy và kiến thức Toán học trên khá hoặc giỏi. Nhưng thông thường những
học sinh này môn tin không chọn được vì các em đã nằm trong đội tuyển các
môn Toán, Lý, Hóa, Sinh. Vì vậy ở một trường mà đầu vào thấp như trường tôi
thì phần lớn các em nằm trong đội tuyển môn Tin là những em có tư duy và kiến

thức trung bình khá và khá về toán học. Do đó điều mà giáo viên được giao
trách nhiệm bồi dưỡng mong muốn đó là niềm đam mê ở các em đối với môn
Tin học cùng với đó là người thầy phải xây dựng được hệ thông bài tập vừa sức
với tư duy của các em, để từ đó bồi dưỡng và rèn luyện tư duy lập trình cho các
em.
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
- Thực trạng công tác bồi dưỡng học sinh giỏi môn Tin học hiện nay.

Thực tế một số học sinh có thể tự làm hoặc tham khảo thuật toán và code
trong sách giáo khoa, sách bài tập, cũng như tài liệu trên mạng cũng có thể vận
dụng, tự làm được một số bài tập cơ bản về kiểu dữ liệu xâu kí tự, nhưng đôi khi
cách hiểu và vận dụng của các em còn hình thức và máy móc, dẫn đến khi gặp
lại dạng bài đó ở đề thi khác đã được thay đổi ít nhiều về ngữ cảnh hoặc bài toán
Trang

3


ngược của bài đã làm thì các em lại lúng túng, nhìn chung các em chưa có thể
tổng hợp và khái quát hóa để có cái nhìn hệ thống hơn về các dạng bài tập về
kiểu xâu kí tự. Trong các đề thi học sinh giỏi thì gần như đề nào ít nhiều cũng có
bài tập liên quan đến kiểu dữ liệu xâu kí tự và để viết được chương trình thì học
sinh có thể phải kết hợp một vài thuật toán hoặc mở rộng thuật toán từ các bài
toán quen thuộc đã được làm, vì vậy việc trang bị cho ác em một số dạng bài tập
kiểu xâu cơ bản sẽ giúp các em rèn luyện được kỹ năng lập trình và tư duy thuật
toán khi viết chương trình cho một số dạng bài toán cơ bản về kiểu xâu.
Qua những năm gần đây khi bồi dưỡng học sinh giỏi môn Tin học tôi nhận
thấy mảng kiến thức về kiểu dữ liệu xâu kí tự có rất nhiều vấn dề, các dạng bài
tập phong phú, đa dạng và là loại bài tập khá thú vị. Do đó tôi lựa chọn đề tài
này để nghiên cứu và trình bày. Bởi việc giúp các em hệ thống thành các dạng

bài tập giúp các em rất tốt trong quá trình học và rèn luyện kỹ năng lập trình,
đặc biệt là các em có tư duy toán học trung bình khá như ở trường tôi.
- Những thuận lợi và khó khăn:

* Thuận lợi:
- Công tác bồi dưỡng học sinh giỏi hiện nay đối với môn Tin học đã được
nhà trường quan tâm chỉ đạo sát sao đặc biệt là đã có những phần thưởng có tính
khích lệ đối với giáo viên và học sinh hơn trước.
* Khó khăn:

- Học sinh tuyển sinh có đầu vào thấp lại chỉ được chọn sau khi các môn
khác chọn xong, nên môn tin học ít có cơ hội chọn được học sinh tốt nhất.
- Phụ huynh không thích cho con em mình vào đội tuyển mon Tin học sợ
ảnh hưởng đến việc học và ôn thi tốt nghiệp và Đại học.
2.3. Các giải pháp đã sử dụng để giải quyết vấn đề

2.3.1 Xác định tiêu chí để xây dựng dạng bài tập phù hợp với năng
lực học sinh của trường THPT Hoằng Hóa 3
Để xây dựng các dạng bài tập về kiểu xâu nhằm giúp học sinh ôn tập hiệu quả
thì tôi đưa ra tiêu chí lựa chọn các bài tập để xếp vào cùng một dạng như sau:
- Chọn các bài toán có cùng đặc điểm nhưng ngữ cảnh có thể khác nhau, hoặc
bài toán đảo ngược của nó, hoặc cùng có sử dụng chung một thuật toán nào đó
trong thuật toán để giải quyết bài toán.
- Lựa chọn thuật toán phù hợp, dễ hiểu, dễ cài đặt so với tư duy của học sinh.
- Chỉ hướng dẫn học sinh viết chương trình hoàn chỉnh 1 bài trong mỗi dạng, các
bài còn lại học sinh vận dụng thuật toán tương tự, có thể bổ sung hoặc sửa đổi ít
nhiều để viết và hoàn thành chương trình, trường hợp cần thiết thì giáo viên mới
đưa ra các gợi ý để học sinh hoàn thành việc viết chương trình của mình, có như
thế học sinh mới nắm chắc được kiến thức.
- Mỗi dạng bài tập chỉ đưa ra 3 đến 5 bài để học sinh rèn luyện. Việc này giúp

các em đỡ nhàm chán khi ôn tập, cũng như giảm bớt căng thẳng và áp lực khi
các em nhìn thấy bài tập giáo viên ra nhiều quá.

Trang

4


2.3.2 Lựa chọn một số dạng bài tập phù hợp với năng lực học sinh
đội tuyển môn Tin học ở trường THPT Hoằng Hóa 3
Qua tìm hiểu các đề thi, nghiên cứu các tài liệu tham khảo về kiểu dữ liệu xâu
kí tự, tôi thấy có một số dạng bài tập về kiểu xâu thường gặp trong các đề thi
học sinh giỏi, do giới hạn của sang kiến về số trang nên ở đây tôi xin trình bày
4 dạng bài tập kiểu xâu kí tự cơ bản nhất, thường gặp và có các phương pháp
giải vừa sức với mức độ tư duy của học sinh trường tôi như sau:
DẠNG 1:

BÀI TOÁN SẮP XẾP TRONG XÂU

Phương pháp chung cơ bản để giải quyết các bài toán dạng này là:
- Tách các xâu kí tự hoặc xâu kí tự số là xâu con của xâu đầu vào rồi đưa
vào mảng xâu (nếu có);
- Thực hiên việc sắp xếp mảng các xâu kí tự hoặc xâu kí tự số đó theo
yêu cầu đề bài.
Bài 1. 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, có cấu trúc:
- Dòng 1: 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, theo cấu trúc:
- Dòng 1: Ghi các từ của xâu ký tự sau khi được sắp xếp. Các từ được ghi cách
nhau đúng một dấu cách. [1]
Ví dụ:
SAPXAU.INP
SAPXAU.OUT
acb abcde abcd abc acb abc abcd abcde
Sau khi đã hướng dẫn phương pháp chung, học sinh có thể hình dung ra
các bước làm bài này như sau:
Bước 1. Đọc và tách các xâu kí tự con từ xâu ban đầu vào mảng lưu các xâu con
Bước 2. Thực hiện việc sắp xếp các xâu con tăng dần theo độ dài của các xâu.
Chương trình tham khảo:
PROGRAM bai1d1;
const fi='sapxau.inp'; fo='sapxau.out';
nmax=10000;
var a:array[1..nmax] of ansistring;
i,j,dem,code:longint;
n:int64;
s,s1,s2,tam:ansistring;
f1,f2:text;
BEGIN
assign(f1,fi);
Trang

5


reset(f1);

assign(f2,fo);
rewrite(f2);
readln(f1,s);
while s[1]=' ' do delete(s,1,1);
while s[length(s)] =' ' do delete(s,length(s),1);
while pos(' ',s)<>0 do delete(s,pos(' ',s),1);
n:=0;
s:=s+' ';
while s<>'' do
begin
n:=n+1;
a[n]:=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if length(a[i])>length(a[j]) then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
for i:=1 to n do write(f2,a[i],' ');
close(f1);
close(f2);
END.
Nhận xét: Sau khi viết và chạy được chương trình giáo viên cần lấy thêm một số
test khác để kiểm tra xem học sinh tách đúng các từ cần sắp xếp hay không.
Bài 2 Viết chương trình đọc dữ liệu từ tệp SXX.INP gồm một dòng duy nhất
chứa xâu kí tự S không vượt quá 255 kí tự bao gồm số và các kí tự “a”.

Yêu cầu: Ghi ra tệp SXX.OUT xâu S sau khi đã sắp xếp các số trong xâu
theo thứ tự tăng dần còn vị trí các kí tự chữ cái vẫn giữ nguyên. [2]
Ví dụ:
SXX.INP
SXX.OUT
aaa6aaa776aaaaa2823aaaa95aaa aaa6aaa95aaaaa776aaaa2823aaa
Sau khi đã làm bài 1 ở trên, khi làm bài này học sinh nhận ngay ra là cần
phải tách lấy các số trong xâu, sắp xếp lại các số theo thứ tự tăng dần rồi chèn
lại các số đã sắp xếp vào vị trí các số đã cho trong xâu ban đầu. Tuy nhiên học
sinh có thể sẽ làm như sau:
- Học sinh sẽ thực hiện tách cả xâu con số và tách cả các xâu con kí tự xen kẽ và
đưa vào 2 mảng là mảng số và mảng xâu kí tự;
- Thực hiện việc sắp xếp tăng dần đối với xâu số;
Trang

6


- Đổi các số trong mảng số thành xâu và thực hiện việc ghép 2 mảng lại với
nhau để thu được kết quả
Nhận xét: Học sinh sẽ gặp phải các tình huống đó là ghi nhớ xâu số tách trước
hay xâu kí tự tách trước, dẫn đến học sinh phải đi tìm cách biện luận cho 2
trường hợp này;
Để học sinh đỡ lúng túng, khỏi phải mất công biện luận giáo viên có thể hướng
dẫn học sinh như sau:
- Thực hiện tách các xâu số, đổi xâu số đó thành số rồi đưa vào mảng số, tại mỗi
vị trí tách lấy số ta chèn dấu ‘*’ vào vị trí đó để thuận tiện cho việc chèn lại sau
đó;
- Thực hiện việc sắp xếp tăng dần đối với xâu số;
- Đổi các số trong mảng số thành xâu và thực hiện việc chèn các số đã sắp xếp

vào vị trí dấu ‘*’ để thu được kết quả.
Sau đó giáo viên để cho học sinh tự viết chương trình.
Chương trình tham khảo có thể như sau:
program bai2d1;
const Nmax=10000;
fi='xepxau.inp';
fo='xepxau.out';
var A:array[1..Nmax] of longint;
f1,f2:text;
s,s1:string;
i,k,j,t,m,code,tg:integer;
begin
assign(f1,fi);reset(f1);
assign(f2,fo);rewrite(f2);
readln(f1,s);
close(f1);
j:=1;i:=1; k:=0;
while (j<=length(s)) do
begin
while (i<=length(s)) and (s[i]='a') do inc(i);
j:=i;
while (i<=length(s)) and (s[i]>='0') and (s[i]<='9') do inc(i);
s1:=copy(s,j,i-j);
if s1<>'' then
begin
inc(k);
val(s1,m,code);
A[k]:=m;
delete(s,j,i-j);
insert('*',s,j);

i:=j+1;
end;
end;
Trang

7


for i:=1 to k-1 do
for j:=i+1 to k do
if a[i]>a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
for i:=1 to k do
begin
t:=pos('*',s);
delete(s,t,1);
str(a[i],s1);
insert(s1,s,t)
end;
writeln(f2,s);
close(f2);
end.
Bài 3. Xâu kí tự
Cho xâu kí tự S có độ dài không vượt quá 1000 kí tự bao gồm các chữ cái và
chữ số. Một dãy các chữ số liên tiếp nhau trong xâu tạo thanh một “số nguyên”.
Yêu cầu: Hãy sắp xếp lại các “số nguyên” trong xâu S theo thứ tự tăng dần và

giữ nguyên thứ tự các kí tự khác chữ số. Khi sắp xếp, nếu “số nguyên” bắt đầu
bằng chữ số 0 thì loại bỏ các chữ số 0 đó đi, ví dụ nếu gặp “số nguyên” 025 thì
số cần sắp là 25. Nếu số nguyên đó chỉ là một dãy gồm một hoặc nhiều chữ số 0
thiò chỉ giữ lại một chữ số 0, ví dụ nếu gặp “số nguyên” 00000 hoặc 0 thì số cần
sắp lại là 0.
Dữ liệu vào: cho từ tệp văn bản XAU.INP gồm một dòng ghi xâu kí tự S.
Kết quả: Ghi ra tệp văn bản XAU.OUT gồm một dòng ghi xâu S sau khi đã sắp
xếp các “số nguyên” có trong xâu. [3]
Ví dụ:
XAU.INP
XAU.OUT
ast025xyz4ghi20mn0pqr00000xyz
ast0xyz0ghi4mn20pqr25xyz
Nhận xét: Ở bài này ta thấy đề cho rõ ràng hơn, nhưng do đã làm bài trên nên
bài này học sinh có thể chỉ cần sửa lại điều kiện khi tách ở chương trình bài 2 ở
trên để được chương trình bài này, còn khi dùng hàm đổi xâu thành số thì trường
hợp xâu ‘0000’ sẽ thành số 0, ‘025’ sẽ thành 25.
Bài 4 SortString
Mỗi xâu kí tự St được lấy từ tập các ký tự ’a’...’z’, ’0’...’9’ và có độ dài
tối đa là 255 kí tự. Cho N xâu kí tự St1, St2... StN (0 < N ≤ 200).
Yêu cầu: Thực hiện sắp xếp N xâu kí tự St theo thứ thự không giảm của số
lượng các kí tự chữ số có trong mỗi xâu St.
Dữ liệu vào: Cho trong file văn bản BAI2.INP có cấu trúc như sau:
Trang

8


- Dòng 1: Ghi số nguyên N.
- N dòng tiếp theo: Mỗi dòng ghi một xâu St.

Kết quả: Ghi ra file văn bản BAI2.OUT theo cấu trúc như sau:
- Ghi N dòng: Mỗi dòng ghi một xâu St, các xâu được ghi theo thứ tự đã
sắp xếp. [4]
Ví dụ:
BAI2.INP
BAI2.OUT
3
cb1
abc1x2y3z
1cd7hd
cb1
abc1x2y3z
1cd7hd
Nhận xét: Bài này thì ngữ cảnh khác so với các bài trước là không phải tách
các xâu con từ xâu ban đầu mà là đọc từng xâu ở mỗi hàng đã cho vào mảng
xâu, mục đích đưa ra bài này ra để xem học sinh có vận dụng linh hoạt cách
làm của dạng này hay không, từ cách làm các bài trên thì học sinh sẽ tìm được
cách làm cho bài này một cách nhanh chóng và nhận thấy bài nay cách làm
còn đơn giản hơn các bài trước, học sinh sẽ hình dung ra các bước cần làm
như sau:
Bước 1: Đọc từng xâu ở mỗi hàng vào mảng xâu;
Bước 2: Viết một hàm đếm số lượng chữ số có trong một xâu để sử dụng;
Bước 3: Dùng hàm đã viết để thực hiện việc sắp xếp xâu;
Bước 4: Ghi kết quả sau khi sắp xếp vào tệp.
Và từ đó học sinh sẽ tự mình hoàn thiện được chương trình.
DẠNG 2:

BÀI TOÁN VỀ TẦN XUẤT CỦA KÍ TỰ

Phương pháp chung cơ bản để giải quyết các bài toán loại này:

+ Dùng mảng đếm để lưu số lần xuất hiện của các kí tự chữ cái hoặc chữ số
+ Xử lý và ghi kết quả theo yêu cầu của đề bài
Bài 1. Liệt kê chữ cái
Cho một văn bản chứa trong một text file. Bạn hãy 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.
Dữ liệu 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. [5]
Ví dụ:
DEM_CHU.INP
DEM_CHU.OUT
NAMMOIHANHPHUC
C
I
O
P
U
Trang

9


Nhận xét: Từ hướng dẫn chung, khi gặp bài này học sinh sẽ nghĩ ngay đến việc
dùng mảng đếm để đếm tần số xuất hiện của các kí tự, sau đó in ra các kí trự có
tần số là 1.
Chương trình tham khảo:
PROGRAM bai1d2;
const fi='dem_chu.inp'; fo='dem_chu.out';
nmax=10000;

var dd:array['A'..'Z'] of longint;
n,i,dem:longint; s:ansistring;
j:char; f1,f2:text;
BEGIN
assign(f1,fi);
reset(f1);
assign(f2,fo);
rewrite(f2);
for j:='A' to 'Z' do dd[j]:=0;
While not eof(f1) do
begin
readln(f1,s);
for I:=1 to length(s) do
for j:='A' to 'Z' do
if upcase(s[i])=j then dd[j]:=dd[j]+1;
end;
for j:='A' to 'Z' do if dd[j]=1 then writeln(f2,j);
close(f1); close(f2);
END.
Bài 2. Tỷ lệ nguyên âm
Cho một văn bản chứa trong một text file. Bạn hãy viết chương trình tính tỷ lệ
các nguyên âm có mặt trong văn bản theo thứ tự của bảng chữ cái.
Định nghĩa các nguyên âm là: A, E, I, O, U, Y
Dữ liệu vào: file NGUYENAM.INP gồm nhiều dòng chứa các kí tự của file văn
bản.
Dữ liệu ra: file NGUYENAM.OUT
Mỗi dòng ghi ký tự và tỷ lệ (lấy đên 4 chữ số thập phân) của các nguyên âm. [6]
Ví dụ:
NGUYENAM.INP
NGUYENAM.OUT

ANHEMHOATHUANTHUONGYEUNAMMOIMAYMAN A: 17.6471 %
E: 5.8824 %
I: 2.9412 %
O: 8.8235 %
U: 5.8235 %
Y: 5.8824 %
Trang 10


Nhận xét: Khi gặp bài này học sinh sẽ nghĩ ngay đến việc dùng mảng đếm tần số
xuất hiện của các kí tự, sau đó in ra tần số của 6 kí trự nguyên âm theo yêu cầu
cảu đề bài, tuy nhiên phải yêu học sinh ghi cho chính xác kết quả (đây là lỗi mà
đa số học sinh hay sai).
Chương trình tham khảo:
PROGRAM bai2d2;
const fi='nguyenam.inp';
fo='nguyenam.out';
nmax=100000;
var a:array[1..nmax] of char;
dd:array['A'..'Z'] of longint;
n,i,dem:longint; S:ansistring;
j:char;
f1,f2:text;
BEGIN
assign(f1,fi);
reset(f1);
assign(f2,fo);
rewrite(f2);
for j:='A' to 'Z' do dd[j]:=0;
While not eof(f1) do

begin
readln(f1,s);
for I:=1 to length(s) do
for j:='A' to 'Z' do
if upcase(s[i])=j then dd[j]:=dd[j]+1;
end;
n :=0;
for j:= 'A' to 'Z' do n:=n+dd[j];
writeln(f2,'A: ',dd['A']/n*100:0:4,' %');
writeln(f2,'E: ',dd['E']/n*100:0:4,' %');
writeln(f2,'I: ',dd['I']/n*100:0:4,' %');
writeln(f2,'O: ',dd['O']/n*100:0:4,' %');
writeln(f2,'U: ',dd['U']/n*100:0:4,' %');
writeln(f2,'Y: ',dd['Y']/n*100:0:4,' %');
close(f1);
close(f2);
END.
Bài 3: Kí tự khác nhau
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.
Trang 11


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. [7]
Ví dụ:
BAI2.INP
BAI2.OUT
ACC9C1A9Bz
6
A2
B1
C3
z1
11
92
Nhận xét: So với các bài trước thì ngữ cảnh của bài này đã thay đổi, tuy vậy
học sinh sẽ đưa ra cách làm cơ bản là vẫn dùng 3 mảng đếm của 3 loại kí tự là
chữ hoa, chữ thường và chữ số để đếm và ghi kết quả theo yêu cầu. Tuy nhiên
giáo viên có thể đưa ra yêu cầu với học sinh là: Có thể dùng một mảng đếm
duy nhất để đọc và xử lý được không? Từ đo để học sinh biết cách cải tiến
chương trình, đưa ra nhận định của mình về cách làm cũng như thời gian thực
hiện chương trình.
Bài 4: Chuẩn hóa xâu.
Cho xâu S chỉ gồm toàn chữ cái tiếng Anh bao gồm chữ thường và chữ hoa.
Hãy viết chương trình cho biết có bao nhiêu chữ cái khác nhau (chữ thường và chữ
in hoa coi là như nhau) có mặt trong xâu S, số lần xuất hiện (tần số) của từng chữ
cái và chữ cái có mặt nhiều nhất.
- Dữ liệu vào: Từ tệp TANSO.INP gồm một dòng chứa xâu S (không quá 255
chữ cái).
- Dữ liệu ra: ghi ra tệp TANSO.OUT gồm một dòng ghi lần lượt:
Số lượng chữ cái khác nhau, tiếp đến ghi lần lượt từng chữ cái cùng tần số
của nó (ghi theo thứ tự bảng chữ cái), cuối cùng ghi chữ cái có tần số lớn nhất,

(nếu có nhiều như vậy thì ghi ra chữ cái đứng trước trong bảng mã ASCII). [8]
Ví dụ:
TANSO.INP
TANSO.OUT
BvsbvabjbvJVaVB
5A2B5J2S1V5B
Nhận xét: Khi đã làm 3 bài tập ở trên thì với bài tập này học sinh sẽ nghĩ được
cách làm không mấy khó khăn, vì về cơ bản cách làm cũng là dùng các mảng
đếm và để in ra chữ cái có tần số lớn nhất thì học sinh chỉ cần vận dụng thêm
thuật toán tìm giá trị lớn nhất (max) trên mảng đếm chữ cái nữa là xong. Tuy
Trang 12


nhiên giáo viên cũng phải đưa ra vài test để kiểm tra xem học sinh có hiểu và
thực hiện đúng yêu cầu đề bài hay không.

Trang 13


DẠNG 3:
BÀI TOÁN TÌM CHỮ SỐ THỨ N TRONG DÃY SỐ VÔ HẠN
Phương pháp chung cơ bản để giải quyết các bài toán loại này là:
Cách cơ bản mà học sinh bình thường hay làm là:
+ Xác định quy luật tạo dãy số vô hạn có độ dài lơn hơn hoặc bằng N
+ Duyệt các số thỏa mãn quy luật của đề bài, đổi số đó thành xâu và lưu vào một
xâu tổng
+ Đưa ra kí tự thứ N của xâu tổng
Hướng dẫn học sinh cách cải tiến:
+ Xác định quy luật tạo dãy số vô hạn có độ dài lơn hơn hoặc bằng N
+ Khi tạo đến số nào thì lưu số đó vào biến xâu tam (xâu tạm), cập nhật lại biến

độ dài của xâu tổng (không cần cộng dồn vào xâu tổng);
+ Kết quả chữ số thứ N sẽ nằm trong xâu tạm cuối cùng được sử dụng để tạo
dãy số vô hạn theo các trường hợp sau:
• Nếu độ đài xâu tổng + độ dài xâu tạm cuối cùng được sử dung mà
bằng N thì kí tự thứ N chính là kí tự cuối cùng của xâu tạm;
• Nếu độ đài xâu tổng + độ dài xâu tạm cuối cùng được sử dung mà lớn
hơn N thì kí tự thứ N chính là kí tự thứ: length(tam) - (độ dài của xâu
tổng -N) lấy từ xâu tạm cuối cùng;
⇒ Tổng quát ta có kí tự thứ N của xâu vô hạn được lấy cở xâu tạm là:
tam[length(tam) - (độ dài của xâu tổng -N)]
Bài 1. Viết chương trình in ra chữ số thứ N của dãy vô hạn các số nguyên không
âm chẵn: 0246810121416182022…(N có kiểu longint).
Dữ liệu: Vào từ file văn bản CHUSO.INP gồm một số nguyên dương N.
Kết quả: Ghi ra file văn bản CHUSO.OUT:
• Chỉ một số duy nhất là chữ số thứ N của dãy số nói trên. [9]
Ví dụ:
CHUSO.INP
CHUSO.OUT
15
8
Nhận xét: Khi gặp bài này, nếu học sinh đã học chương trình con ta nên hướng
dẫn học sinh viết hàm tìm chữ số thứ N của dãy vô hạn thì học sinh sẽ dễ nắm
bắt, dễ nhớ và dễ vận dụng khi làm bài toán tương tự khác.
Chương trình tham khảo:
program bai1d3;
uses crt;
const fo='chuso.inp';
fi='chuso.out';
var f1,f2 : text;
k:longint;

function cs(n:longint):char;
var dem,M:longint;
s:string;
Trang 14


begin
dem:=0;
M:=-2;
repeat
M:=M+2;
str(M,s);
dem:=dem+length(s);
until dem>=n;
cs:=s[length(s)-(dem-n)];
end;
begin
assign(f1,fo);reset(f1);
assign(f2,fi);rewrite(f2);
readln(f1,k);
write(f2,cs(k));
close(f1);close(f2);
end.
Bài 2. (bài tập tương tự bài 1)
Viết chương trình in ra chữ số thứ N của dãy vô hạn các số nguyên không âm lẻ:
135791113151719…(N có kiểu longint).
Dữ liệu: Vào từ file văn bản CHUSO.INP gồm một số nguyên dương N.
Kết quả: Ghi ra file văn bản CHUSO.OUT:
• Chỉ một số duy nhất là chữ số thứ N của dãy số nói trên. [10]
Ví dụ:

CHUSO.INP
CHUSO.OUT
13
7
Nhận xét: Mục đích bài này là để học sinh rèn luyện vì đã nắm được cách làm ở
bài trên, tuy nhiên nếu học sinh tiếp thu tốt thì chỉ cần cho học sinh sửa lại
chương trình bài 1 ở trên là được chương trình bài này, còn nếu học sinh đang
còn tiếp thu chậm, muốn học sinh ghi nhớ cách làm thì có thể cho học sinh tự gõ
lại chương trình.
Bài 3. Một xâu gồm các số chính phương được viết thành một hàng ngang vô
tận 14916253649…Cho số N (1<= N<= 255), tìm xem vị trí thứ N trong xâu là
số nào?
Dữ liệu vào: Từ File văn bản XAU.INP gồm số nguyên N duy nhất
Dữ liệu ra: Ghi vào File văn bản XAU.OUT một số nguyên duy nhất là số ở vị
trí N trong xâu. [11]
Ví dụ:
XAU.INP
XAU.OUT
9
6
Nhận xét: Khi gặp bài này học sinh sẽ vận dụng cách làm ở bài 1 để viết chương
trình. Nếu học sinh có thể lúng túng ở việc tìm cách đưa vào các số chính
Trang 15


phương, lúng túng ở việc bình phương của một số sẽ tạo ra một số lớn thì giáo
viên mới hướng dẫn.
Chương trình tham khảo:
program bai3d3;
const fo='chuso.inp';

fi='chuso.out';
var f1,f2 : text;
k:longint;
function cs(n:longint):char;
var M,i,dem,t:int64;
s:ansistring;
begin
dem:=0;
M:=0;
repeat
M:=M+1;
i:=M*M;
str(i,s);
dem:=dem+length(s);
until dem>=n;
cs:=s[length(s)-(dem-n)];
end;
begin
assign(f1,fo);reset(f1);
assign(f2,fi);rewrite(f2);
readln(f1,k);
write(f2,cs(k));
close(f1);close(f2);
end.
Bài 4. Một xâu gồm các số nguyên tố được viết thành một hàng ngang vô tận
2357111317…Cho số N (1<= N<= 255), tìm xem vị trí thứ N trong xâu là số
nào?
Dữ liệu vào: Từ File văn bản XAU.INP gồm số nguyên N duy nhất
Dữ liệu ra: Ghi vào File văn bản XAU.OUT một số nguyên duy nhất là số ở vị
trí N trong xâu. [12]

Ví dụ:
XAU.INP
XAU.OUT
9
1
Nhận xét: Khi gặp bài này sẽ xác định được ngay là phải viết một hàm kiểm tra
số nguyên tố để sử dụng, khi đó những số nào là số nguyên tố thì mới đưa vào
để tạo dãy số vô hạn
function ktnt(N:longint):boolean;
var i:longint;
Trang 16


begin
ktnt:=true;
if n<2 then ktnt:=false
else for i:=2 to trunc(sqrt(N)) do
if N mod i=0 then
begin
ktnt:=false;
exit;
end;
end;
function cs(n:longint):char;
var M,dem:longint;
s:ansistring;
begin
dem:=0;
M:=2;
repeat

if ktnt(M) then
begin
str(M,s);
dem:=dem+length(s);
end;
inc(m);
until dem>=n;
cs:=s[length(s)-(dem-n)];
end;
Và cũng giống các bài trên chỉ cần gọi hàm cs(k) để gh kết quả cần tìm.
Bài 5. Một xâu gồm các số Fibonaci được viết thành một hàng ngang vô tận
1123581321…Cho số N (1<= N<= 1000), tìm xem vị trí thứ N trong xâu là số
nào?
Dữ liệu vào: Từ File văn bản XAU.INP gồm số nguyên N duy nhất
Dữ liệu ra: Ghi vào File văn bản XAU.OUT một số nguyên duy nhất là số ở vị
trí N trong xâu. [13]
Ví dụ:
XAU.INP
XAU.OUT
9
2
Nhận xét: Khi gặp bài này học sinh trung bình khá và khá sẽ lúng túng khi tìm
cách đưa số fibonaci vào dãy vô hạn theo cách này hoặc cách khác, tuy nhiên ta
nên gợi ý cho học sinh cách sử dụng các biến để tạo các số fibonaci và sau đó
gán lại cho nhau để đưa vào dãy vô hạn và sau đó gán lại giá trị cho nhau thì
chương trình sẽ chạy nhanh hơn.
function cs(n:longint):char;
var dem:longint;
Trang 17



a,b,M:int64;
s:ansistring;
begin
dem:=0;
a:=1;b:=0;
repeat
M:=a+b;
a:=b;
b:=M;
str(M,s);
dem:=dem+length(s);
until dem>=n;
cs:=s[length(s)-(dem-n)];
end;
Và cũng giống các bài trên chỉ cần gọi hàm cs(k) để gh kết quả cần tìm.
DẠNG 4:

BÀI TOÁN XÓA CHỮ SỐ TRONG XÂU

Phương pháp chung cơ bản để giải quyết các bài toán loại này là:
+ Đọc xâu chứa kí tự số. Nếu là xâu chứa cả kí tự chữ cái và kí tự chữ số thì tách
lấy xâu số;
+Xóa các kí tự chữ số theo yêu cầu đề bài để các kí tự chữ số còn lại là một số
thỏa man yêu cầu đề bài:
Cách xóa: Có thể có nhiều cách để thực hiện việc xóa các kí tự để số còn lại
thỏa mãn đề bài, tuy nhiên ở đây đối với học sinh mức độ tư duy trung bình khá
và khá thì ta nên chọn thuật toán dễ cài đặt nhất, và hướng dẫn như sau:
Giả sử cần xóa đi K kí tự số của xâu số St để số còn lại là số nhỏ nhất
• Lặp K lần mỗi lần xóa đi 1 kí tự số.

** Nếu mà st[i] > st[i+1] thì xóa ký tự st[i] đi và ngắt (thoát vòng lặp).
** Nếu ko có trường hợp nào thỏa mãn thì xóa đi ký tự cuối cùng của xâu
Trường hợp để số còn lại là số lớn nhất thì ta đổi dấu thành st[i] < st[i+1]
+ Ghi xâu kết quả xâu còn lại sau khi xóa.
Bài 1. Xóa số.
Cho xâu X có n kí tự chỉ gồm các kí tự chữ số. Hãy xóa đi k kí tự để xâu
còn lại có giá trị nhỏ nhất.
Dữ liệu vào từ file văn bản XOASO.INP:
• Dòng thứ nhất chứa xâu có N kí tự số. (1• Dòng thứ 2 chứa số K(1Kết quả ghi ra file văn bản XOASO.OUT:
- Chỉ một dòng duy nhất là xâu còn lại. [14]
Ví dụ:
XOASO.INP XOASO.OUT XOASO.INP XOASO.OUT
89678982
672
70358
03
5
3
Trang 18


Nhận xét: Dựa vào hướng dẫn chung ở trên và gợi ý của giáo viên học sinh có
thể hình dung ra các bước làm như sau:
Bước 1. Đọc xâu số;
Bước 2: Thực hiện xóa số (theo cách đã hướng dẫn ở trên);
Bước 3: Xóa các kí tự ‘0’ vô nghĩa ở đầu (nếu cần thiết);
Bước 4: Ghi kết quả
Chú ý: Việc xóa số ‘0’ vô nghĩa ở đầu số kết quả còn lại có hay không còn tùy

thuộc vào đề bài. Tuy nhiên nếu phải xóa số ‘0’ vô nghĩa ở đầu thường thì bước
thứ 3 học sinh hay bỏ quên không chú ý tới vì vậy giáo viên phải gợi ý để học
sinh chú ý làm thêm bước này trước khi ghi kết quả, nói cách khác là học sinh
phải đọc kỹ đề bài. Ví dụ bài này ở test thứ 2 kết quả là ‘03’ tức là không xóa số
‘0’ vô nghĩa ở số kết quả, vậy không cần phải làm bước 3.
Chương trình tham khảo như sau:
program bai1d4;
const fi='xoaso.inp';
fo='xoaso.out';
var st: ansistring;
i,j,n,k: longint;
kt: boolean;
f1, f2 : text;
BEGIN
assign(f1, fi); reset(f1);
assign(f2, fo); rewrite(f2);
readln(f1,st); readln(f1,k);
for i:=1 to k do
begin
kt:= true;
for j:= 1 to length(st)-1 do
if st[j] > st[j+1] then
begin
delete(st,j,1);
kt:= false;
break;
end;
if kt then delete(st,length(st),1);
end;
writeln(f2,st);

close(f1); close(f2);
END.
Còn nếu phải xóa số ‘0’ vô nghĩa ở đầu giáo viên chỉ cần gợi ý học sinh viết
thêm câu lệnh: while (st[1]='0')and(length(st)>1) do delete(st,1,1); trước khi ghi
kết quả là xong. Để học sinh tư duy thêm trường hợp số còn lại lớn nhất giáo
viên đưa ra câu hỏi: Vậy muốn số còn lại là số lớn nhất thì làm thế nào?
Trang 19


Bài 2: SỐ NHỎ NHẤT.
Cho một số nguyên dương k và một xâu kí tự S . Xâu S chỉ gồm các kí tự là
các chữ cái Latinh từ ‘a’..’z’ và các chữ số từ ‘0’..’9’, trong đó có ít nhất k kí tự
là chữ số.
Yêu cầu: Hãy xóa bỏ các kí tự cần thiết trong xâu S để k kí tự còn lại tạo
thành một số có k chữ số và có giá trị nhỏ nhất, số tìm được đó cho phép có số 0
ở đầu.
Dữ liệu: Đọc vào từ tệp văn bản MIN.INP gồm 2 dòng:
- Dòng thứ nhất chứa số nguyên dương k(k < 10) k ;
- Dòng thứ hai chứa xâu S có độ dài nhỏ hơn 250 kí tự.
Kết quả: Ghi ra tệp MIN.OUT gồm một dòng ghi số tìm được thỏa mãn yêu cầu
đã nêu. [15]
Ví dụ:
MIN.INP
MIN.OUT
4
0108
307uv5x1y08mnp
Nhận xét: Khi gặp bài này học sinh này sẽ nhận thấy đây là bài toán ngược của
bài toán trên nên học sinh sẽ tính được số kí tự số cần xóa là: Độ dài của xâu số
(xâu tách được từ xâu đầu vào) - k (số kí tự số còn lại) và bài toán lại quay về

cách giải của bài toán 1 ở trên. Cần lưu ý cho học sinh là số tìm được đó cho
phép có số 0 ở đầu.
Học sinh có thể hình dung cấc bước cần làm như sau:
Bước 1. Đọc xâu và tách riêng thành xâu chỉ chứa kí tự chữ số;
Bước 2: Thực hiện xóa số (theo cách đã hướng dẫn ở trên);
Bước 3: Ghi kết quả
Giáo viên để học sinh tự viết chương trình và sau đó hướng dẫn học sinh hoàn
thiện nếu cần thiết.
Bài 3.
Cho xâu s gồm ít nhất 3 kí tự số. Xóa bỏ một số kí tự trong xâu s chỉ để lại 3 kí
tự số sao cho, vẫn giữ nguyên thứ tự của chúng tạo nên một số có giá trị lớn
nhất.
- Dữ liệu vào: từ tệp Bai3.inp gồm 1 dòng chứa xâu s
- Dữ liệu ra: Ghi ra tệp Bai3.out xâu s chứa 3 kí số còn lại tạo thành số lớn
nhất. [16]
Ví dụ:
Bai3.inp
Bai3.inp
124512Hoc tin8126123
863
Nhận xét: Khi gặp bài này học sinh này sẽ nhận thấy đây là bài toán tương tự
của bài toán 2 với k = 3, nên học sinh sẽ tính được số kí tự cần xóa là: Độ dài
của xâu số (xâu tách được từ xâu đầu vào) - 3 (số kí tự còn lại) và để số còn lại
là số lớn nhất thì học sinh chỉ cần đổi dấu ‘>’ thành dấu ‘<’ mỗi khi tìm kí tự cần
xóa, học sinh sẽ tự sửa lại chương trình của bài toán 2 để hoàn thiện chương
trình.
Trang 20


2.4. Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản thân, đồng

nghiệp và nhà trường

Trong các năm học vừa qua với việc “Lựa chọn một số dạng bài tập kiểu
xâu kí tự để bồi dưỡng cho học sinh đội tuyển môn Tin học ở trường THPT
Hoằng Hóa 3’’ như phần trên đã trình bày tôi đã thu được những kết quả bước
đầu đáng khích lệ. Với kiến thức và mức độ tư duy toán học ở mức trung bình
khá và khá như học sinh trong đội tuyển Tin học ở trường tôi, với ý thức chấp
hành giờ giấc nghiêm túc của học sinh cùng với hệ thồng bài tập được xây dựng
vừa sức với các em tôi đã rèn luyện để các nâng cao tư duy khi lập trình cũng
như rèn luyện tinh thần tự học ở các em để các em nỗ lực nâng cao kỹ năng lập
trình, Vì vậy các em đã đạt được kết quả trong các kỳ thi học sinh giỏi, có thể
giải chưa cao xong đó là một quá trình mà bản thân các em phải nỗ lực hết sức
mình. Kết quả của cách làm đó dược các đồng nghiệp trong nhóm Tin học ghi
nhận và đánh giá cao. Qua đó tôi rút ra một kinh nghiệm với bản thân khi dạy
học sinh đội tuyển môn Tin học mà mức độ tư duy của các em ở mức trung bình
khá và khá thì cách tốt nhất là chia nhỏ các bài tập kiểu xâu kí tự theo một dạng
nhỏ nào đó để các em dễ nắm bắt, dễ học và dễ ôn tập. Hy vọng với kinh nghiệm
nhỏ này các thầy, cô giáo ở các vùng, miền mà điểm tuyển sinh đầu vào thấp,
chất lượng học sinh không cao, không có nhiều đối tượng học sinh để lựa chọn
đội tuyển cho mình có thể tham khảo.
3. Kết luận, kiến nghị
- Một số kết luận:

Trong quá trình nghiên cứu tôi xin rút ra một số kết luận sau:
- Để bồi dưỡng học sinh giỏi đạt hiệu quả trước hết giáo viên phải thiết kế
được kịch bản bồi dưỡng tốt, xây dựng được hệ thống các chuyên đề bài tập phù
hợp với các học sinh trong đội tuyển hiện tại của mình.
- Thực sự tâm huyết với công việc bồi dưỡng học sinh giỏi.
- Giáo viên nên tham khảo thêm các đề thi học sinh giỏi của các tỉnh các
năm trước.

- Tham khảo nhiều sách báo, tài liệu có liên quan, học hỏi các đồng nghiệp
có nhiều kinh nghiệm trong công tác bồi dưỡng học sinh giỏi.
- Giáo viên phải khơi dậy niềm say mê, hứng thú của học sinh đối với môn
tin học, luôn phối hợp với giáo viên chủ nhiệm và gia đình để tạo được điều kiện
tốt nhất cho các em tham gia học tập.
- Kiến nghị:

- Đối với nhà trường BGH nên chú trọng hơn công tác khảo sát, lựa chọn
học sinh và phân bổ các đối tượng học sinh cho các môn để bồi dưỡng. Vì gần
như môn Tin học là môn được chỉ chọn được học sinh đội tuyển sau khi các môn
tự nhiên khác đã chọn, khi các môn khác loại ra có chọn được thì thời gian còn
lại để bồi dưỡng là rất ít.
- Đối với các cấp cũng nên ra các dạng đề thi phong phú, phù hợp với khả
năng và trình độ chung của học sinh trong tỉnh, các yêu cầu đặt ra trong các bài
của đề thi cần phải rõ ràng để tránh hiểu nhầm vấn đề.
Trang 21


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.
(Ký và ghi rõ họ tên)

Lê Văn Khánh

TÀI LIỆU THAM KHẢO
[1] Đề thi HSG lớp 12 môn tin học tỉnh Quảng Bình vòng 1 năm 2012-2013

[2] Đề thi HSG lớp 12 tỉnh Long An môn tin học bảng năm A năm 2012-2013
[3] Đề chọn đội tuyển HSG dự thi quốc gia tỉnh Đồng Tháp năm 2010-2011
[4] Tham khảo trên mạng Internet
Nguồn:
-
[5] Đề thi chọn HSG lớp 12 môn tin học bảng B, tỉnh bạc Liêu năm 2011-2012
[6] Đề thi chọn HSG lớp 12 môn tin học bảng A , tỉnh bạc Liêu năm 2011-2012
[7] Tham khảo trên mạng Internet
Nguồn:
-
[8], [9], [10], [11], [12], [13] ,[14] Tham khảo trên mạng Internet
Nguồn:
-
-
-
[15] Đề thi chọn HSG tỉnh lớp 11 tỉnh Nghệ An năm 2013-2014
[16] Đề thi chọn HSG lớp 12 tỉnh Bạc Liêu bảng A năm 2011-2012

Trang 22



×