Tải bản đầy đủ (.docx) (16 trang)

Sử dụng một số bài tập cơ bản để củng cố bài 12 kiểu xâu trong sách giáo khoa tin học 11

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 (323.73 KB, 16 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
TRƯỜNG THPT NGA SƠN

SỬ DỤNG MỘT SỐ BÀI TẬP CƠ BẢN ĐỂ CỦNG CỐ
BÀI 12 “ KIỂU XÂU” TRONG SÁCH GIÁO KHOA
TIN HỌC 11

Họ tên:
Nguyễn Văn Hải
Chức vụ:
Giáo viên
SKKN thuộc bộ môn: Tin học

THANH HOÁ NĂM 2021


MỤC LỤC
NỘI DUNG
1. Mở đầu...................................................................................................
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..............................................................
2. Nội dung sáng kiến kinh nghiệm..........................................................
2.1 Cơ sở lý luận ..................................................................................
a. Khái niệm về xâu
b. Khai báo xâu
c. Tham chiếu đến phần tử của xâu
d. Phép toán, thủ tục, hàm xử lí xâu
e. Hàm, thủ tục xâu bổ sung
g. Mở rộng khai báo độ dài xâu


2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm....
2.3 Các giải pháp giải quyết vấn đề..............................................
2.3.1 Các bài tập cơ bản về xâu................................................
2.3.2 Các bài tập sử dụng khai báo ansistring trong Free Pascal
2.4 Kết quả thu được........................................................................
3.Kết luận, kiến nghị.........................................................................
3.1 Kết luận.....................................................................................
3.2 Kiến nghị...................................................................................

1

TRANG

2
2
3
3
3
3
3
3
3
4
4
5
5
5
6
6
10

13
14
14
14


1. MỞ ĐẦU
1.1. Lí do chọn đề tài.
Sự phát triển như vũ bão của khoa học công nghệ - kỹ thuật hiện đại đã đặt giáo
dục vào thử thách mới, đó là nhằm đào tạo ra thế hệ tương lai vừa có phẩm chất,
vừa phải có năng lực tiếp cận khoa học hiện đại để hội nhập với xu thế chung của
xã hội. Hiện nay, Đảng và Nhà nước rất chú trọng vấn đề này, đặc biệt là trong các
trường phổ thông.
Luật số: 43/2019/QH14 – Luật Giáo dục, điều 29.4: Mục tiêu của giáo dục phổ
thông: “Giáo dục trung học phổ thông nhằm trang bị kiến thức công dân; bảo đảm
cho học sinh củng cố, phát triển kết quả của giáo dục trung học cơ sở, hoàn thiện
học vấn phổ thơng và có hiểu biết thơng thường về kỹ thuật, hướng nghiệp; có điều
kiện phát huy năng lực cá nhân để lựa chọn hướng phát triển, tiếp tục học
chương trình giáo dục đại học, giáo dục nghề nghiệp hoặc tham gia lao động, xây
dựng và bảo vệ Tổ quốc.” [1].
Điều 30.3: Yêu cầu về nội dung, phương pháp giáo dục phổ thơng: “Phương pháp
giáo dục phổ thơng phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh
phù hợp với đặc trưng từng môn học, lớp học và đặc điểm đối tượng học sinh; bồi
dưỡng phương pháp tự học, hứng thú học tập, kỹ năng hợp tác, khả năng tư duy
độc lập; phát triển toàn diện phẩm chất và năng lực của người học; tăng cường
ứng dụng cơng nghệ thơng tin và truyền thơng vào q trình giáo dục.” [1].
Như vậy, giáo dục phổ thông không chỉ đào tạo thế hệ học sinh học được cái gì?
biết được cái gì? mà còn phải vận dụng được những cái đã học, đã biết vào thực tế
cuộc sống. Do đó, để thực hiện tốt mục tiêu về đổi mới căn bản, tồn diện GD&ĐT
giáo viên cần có nhận thức đúng về bản chất của đổi mới phương pháp dạy học

theo định hướng phát triển năng lực người học và một số biện pháp đổi mới
phương pháp dạy học theo hướng này.
Với sự phát triển mạnh mẽ của công nghệ thơng tin đã có những đóng góp trong
việc đổi mới phương pháp dạy học ở nhà trường. Tin học đặc biệt là Pascal là môn
học mới ở trường phổ thông nên học sinh còn nhiều bỡ ngỡ khi tiếp cận với môn
học này.
Trong quá trình giảng dạy học, người thầy ngoài việc giúp học sinh nắm được
những kiến thức cơ bản nhất thì còn phải kích thích được tính tích cực tự học, sáng
tạo, chủ động của học sinh qua mỗi bài học sinh cảm thấy thích thú với kiến thức
mới và những ứng dụng thực tế và cuộc sống.
Việc học ngôn ngữ lập trình Pascal giúp các em hiểu được cấu trúc hoạt động
của máy tính điện tử từ đó định hướng đam mê về tin học, nghề nghiệp của các em
lựa chọn.
[1]: Luật số: 43/2019/QH14 – Luật Giáo dục

2


Trong thực tế khi lập trình hay khi xử lý dữ liệu vào các bài toán chúng ta thường
đưa dữa liệu đó về các kiểu dữ liệu chuẩn (nguyên, thực, ký tự, logic) hoặc kiểu dữ
liệu có cấu trúc, một trong những kiểu dữ liệu có cấu trúc là xâu. Với mong muốn
giúp học sinh tìm ra lời giải cho các bài toán liên quan tới kiểu dữ liệu xâu dễ
dàng, giải quyết được một số bài tập về xâu, tôi mạnh dạn đưa ra sáng kiến : “ Sử
dụng một số bài tập cơ bản để củng cố bài 12 “kiểu xâu” trong sách giáo khoa
tin học 11”.
1.2. Mục đích nghiên cứu.
Đưa ra các khái niệm về xâu, các ví dụ cơ bản về xâu
1.3. Đối tượng nghiên cứu.
- Nghiên cứu : Kiểu dữ liệu xâu, các hàm và thủ tục của xâu và một số bài tập
về xâu

- Thực trạng học và làm bài tập môn Tin học của học sinh khối 11 tại trường
THPT Nga Sơn.
1.4. Phương pháp nghiên cứu.
- Phương pháp nghiên cứu lý thuyết.
- Phương pháp nghiên cứu thực tiễn.
- Phương pháp thực nghiệm sư phạm.
- Phương pháp thống kê toán học.
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1 .Cơ sở lí luận
Trong sáng kiến kinh nghiệm này xin được trình bày các khái niệm về xâu, các
hàm, thủ tục khi làm việc với xâu và một số bài tập để củng cố về xâu.
a.Khái niệm về xâu [2] :
- Xâu là một dãy các ký tự trong bộ mã ASCII , mỗi ký tự được gọi là một
phần tử của xâu. Số lượng ký tự trong xâu được gọi là độ dài xâu. Xâu có độ dài
bằng 0 được gọi là xâu rỗng.
- Có thể xem xâu là một mảng một chiều mà mỗi phần tử là một ký tự. Các kí
tự của xâu được đánh số thứ tự, thường bắt đầu từ 1.
- Tương tự như mảng, tham chiếu tới phần tử của xâu được xác định bởi tên
biến xâu và chỉ số được trong cặp ngoặc [ ]
b.Khai báo xâu [2] :
Để khai báo biến xâu ta sử dụng từ khóa String
Var <tên biến>: string[độ dài lớn nhất của xâu];
Ví dụ: var hoten: string[50];
Để khai báo xâu có độ dài lớn nhất ta có thể bỏ qua phần độ dài xâu và khai
báo như sau Var hoten: string;
[2]: Hồ Sĩ Đàm – SGK Tin học 11
3


c. Tham chiếu đến phần tử của xâu [2]:

Xâu là một mảng ký tự do đó để tham chiếu đến mỗi kí tự của xâu ta thực hiện
như sau: <tên biến xâu>[chỉ số phần tử];
d. Phép toán, thủ tục, hàm xử lí xâu [2] :
- Phép ghép xâu (phép cộng xâu): kí hiệu là dấu cộng (+), dùng để ghép
nhiều xâu thành một.
- Các phép so sánh <, <=, =, >=, >, <> có thứ tự thực hiện ưu tiên thấp hơn
phép ghép xâu và thực hiện việc so sánh hai xâu theo các quy tắc sau:
+ Xâu A > xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang
trong xâu A có mã ASCII lớn hơn.
+ Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì
xâu A < xâu B.
- Thủ tục Delete(st,vt,n): xóa đi n kí tự trong xâu st, bắt đầu từ vị trí vt
Giá trị st
Thao tác
Kết quả
'abcdef'
Delete(st,5,2)
'abcd'
- Thủ tục Insert(s1,s2,vt): chèn xâu s1 vào s2, bắt đầu ở vị trí vt.
Giá trị s1
Giá trị s2
Thao tác
Kết quả
'PC'
'IBM486'
Insert(s1,s2,4)
'IBMPC486'
- Hàm Copy(s,vt,n): tạo xâu mới n kí tự liên tiếp bắt đầu từ vị trí vt của xâu s.
Giá trị s
Thao tác

'IBMPC'
Copy(s,2,3)
- Hàm Length(s): cho giá trị là độ dài xâu s.

Kết quả
'BMP'

Giá trị s
Thao tác
Kết quả
'IBMPC'
Length(s)
5
- Hàm Pos(s1,s2): cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
Giá trị s1
Giá trị s2
Thao tác
Kết quả
'ab'
'cdabab'
Pos(s1,s2)
3
'ab'
'cd'
Pos(s1,s2)
0
- Hàm Upcase(ch): cho chữ cái in hoa ứng với chữ cái trong ch.
Giá trị ch
'c'


Thao tác
Upcase(ch)

[2]: Hồ Sĩ Đàm – SGK Tin học 11
4

Kết quả
3


e. Hàm, thủ tục xâu bổ sung [4]:
- Thủ tục Str(value, st): Biến đổi giá trị bằng số nguyên hoặc số thực Value thành
dãy các ký tự biểu diễn số đó.
Giá trị Value
123
1235.50

Thao tác
Str(value,st)
Str(value:1:2,st)

Kết quả xâu st
'123'
'1235.50'

- Thủ tục Val(st,value,code): Biến đổi xâu ký tự st (biểu diễn số nguyên hoặc số
thực) thành một số nguyên hoặc thực chứa trong value. Code là số nguyên để phát
hiện lỗi, nếu phép biến đổi mà đúng thì code có giá trị bằng 0, nếu sai do st không
biểu diễn đúng số nguyên hoặc số thực code sẽ nhận giá trị bằng vị trí của kí tự sai
trong xâu st.

Giá trị xâu st
Thao tác
Kết quả value
'1235'
Val(st,value,code)
1235
'123abc'
Val(st,value,code)
123
- Hàm Ord(ch): cho mã của kí tự ch trong bảng mã ASCII
Giá trị xâu ch
Thao tác
'a'
Ord(ch)
- Hàm Chr(n): cho kí tự với mã là n
Giá trị n
97

Thao tác
Chr(n)

Kết quả code
0
4
Kết quả
97
Kết quả
'a'

g. Mở rộng khai báo độ dài xâu :

Khi thực hành trên Turbo Pascal xâu khai báo có độ dài lớn nhất là 255.
Chương trình dịch này hiện nay ít sử dụng mà sử dụng sang chương trình dịch Free
Pascal. Chương trình dịch này cho khai báo xâu có độ dài lớn hơn. Cách khai báo
như sau :
Var <tên biến>: ansistring;
Kích thước khai báo kiểu ansistring là gần 2GB.
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Mặc dù hiện nay công tác dạy và học môn Tin học tại các trường phổ thông đã
được quan tâm, cơ sở vật chất được trang bị nhưng chất lượng học sinh vẫn chưa
thực sự được nâng cao.
[4]: Ngôn ngữ lập trình Pascal – Quách Tuấn Ngọc
5


Tại trường THPT Nga Sơn, phần lớn học sinh có ý thức học tập và hứng thú với
môn tin học. Các tiết học được sử dụng máy chiếu, phòng thực hành nhiều hơn
giúp cho học sinh học tập sinh động và trực quan hơn. Tuy nhiên có một thực tế mà
tơi và các đồng nghiệp trong nhóm còn nhiều băn khoăn, trăn trở đó là chất lượng
học sinh ở khối lớp 11 chưa cao. Các bài tập sử dụng về xâu học sinh giải quyết
chưa thực sự được nhiều, các em chưa áp dụng được cách sử dụng các hàm, thủ tục
của xâu để giải quyết các bài tốn. Đơi khi còn chưa nhận dạng các bài tập xâu để
làm việc với xâu. Do đó trong sáng kiến này tơi trình cách sử dụng các hàm, thủ tục
của xâu để học sinh làm quen và giải quyết được các bài tập cơ bản về xâu.
2.3. Các giải pháp để giải quyết vấn đề
2.3.1 Các bài tập cơ bản về xâu
a. Bài tập 1[2]: Viết chương trình nhập một xâu từ bàn phím. Đưa ra màn hình xâu
theo thứ tự ngược lại.
Program baitap1;
var s:string;
tg:char;

i:integer;
BEGIN
write('moi nhap xau '); read(s);
for i:=1 to length(s) div 2 do
begin
tg := s[i];
s[i]:= s[length(s)-i+1];
s[length(s)-i+1]:= tg;
end;
write(s);
readln;
readln;
END.
Giá trị xâu của s
Kết quả
'abc'
'cba'
Đây là bài tập trong sách giáo khoa tin học lớp 11, trong sách giáo khoa đã có cách
giải nhưng trong sáng kiến này tôi đưa cách giải khác để hướng dẫn học sinh hiểu
hơn về cách truy cập đến các phần tử của xâu và làm rõ hơn nữa về ý tưởng hoán
đổi giá trị của hai phần tử với nhau. Đây là một cách giải quyết để học sinh làm
việc với những bài toán phức tạp hơn sau này.
[2]: Hồ Sĩ Đàm – SGK Tin học 11

6


b. Bài tập 2[2]: Viết chương trình thực hiện nhập từ bàn phím một xâu. Đưa ra
màn hình xâu thu được bằng cách loại bỏ hết dấu cách trong xâu.
Program baitap2;

var s:string;
BEGIN
write('moi nhap xau '); read(s);
while pos(#32,s)>0 do delete(s,pos(#32,s),1);
write(s);
readln;
readln;
END.
Giá trị của xâu s
'
abc
'

Kết quả
'abc'

Bài tập trên là một cách giải khác trong sách giáo khoa tin học 11. Với xâu có độ
dài nhỏ hơn hoặc bằng 255 học sinh có thể sử dụng hàm pos để lấy các vị trí trong
xâu và quá trình này lặp lại cho đến khi không còn dấu cách (#32) trong xâu. Cách
giải này để củng cố học sinh về sử dụng hàm và thủ tục trong xâu.
c. Bài tập 3[2]: Viết chương trình nhập từ bàn phím một xâu ký tự s1, tạo xâu s2
gồm tất cả các chữ số trong xâu s1( giữ nguyên thứ tự xuất hiện của chúng) và đưa
kết quả ra màn hình.
Program baitap3;
var s1,s2:string;
i:integer;
BEGIN
write('moi nhap xau s1 '); read(s1);
s2:='';
for i:=1 to length(s1) do

if (s1[i]>='0') and (s1[i] <='9') then s2:=s2 +s1[i];
write(s2);
readln;
readln;
END.
Giá trị của xâu s1
Kết quả của xâu s2
'abc1234'
'1234'
[2]: Hồ Sĩ Đàm – SGK Tin học 11
7


Với bài tập trên học sinh được củng cố hơn nữa về cách truy cập đến các phần tử
của xâu, cách ghép xâu và hiểu hơn về giá trị của xâu có thể là các chữ cái hoặc giá
trị của xâu là ký tự số.
c. Bài tập 4[3]: Viết chương trình nhập vào một xâu họ tên từ bàn phím. Đưa ra
màn hình xâu họ tên chuẩn. Xâu họ tên chuẩn là xâu được loại bỏ hết dấu cách ở
đầu xâu và cuối xâu, hai từ cách nhau một dấu cách, các ký tự ở đầu mỗi từ được
viết in hoa.
Program baitap4;
var hoten:string;
i:integer;
BEGIN
write('moi nhap xau hoten : '); read(hoten);
//Xoa het dau cach dau xau
while hoten[1]=#32 do delete(hoten,1,1);
//Xoa het dau cach cuoi xau
while hoten[length(hoten)]=#32 do delete(hoten,length(hoten),1);
//Xoa hai dau cach lien ke

while pos(#32#32,hoten)>0 do delete(hoten,pos(#32#32,hoten),1);
//Dua tat ca cac chu cai ve in thuong
for i:=1 to length(hoten) do
if (hoten[i]>='A') and (hoten[i] <='Z') then
hoten[i]:= chr(ord(hoten[i])+32);
//Dua xau ve dang chuan
hoten:= #32 +hoten;
for i:=1 to length(hoten) -1 do
if (hoten[i]=#32) and (hoten[i+1] <>#32)
then hoten[i+1]:=upcase(hoten[i+1]);
delete(hoten,1,1);
write(hoten);
readln;
readln;
END.
Giá trị của xâu hoten
Kết quả của xâu chuẩn hoten
'
NGUYEN TRAN ANH '
'Nguyen Tran Anh'
'
dang hoai nam
'
'Dang Hoai Nam'
Bài tập trên giải quyết bài toán thường gặp trong cuộc sống là đưa xâu họ tên về
dạng chuẩn, học sinh sử dụng các công cụ của xâu để giải quyết bài toán này.
[3]: Một số bài tập tham khảo trên Internet
8



d. Bài tập 5[3]: Nam thường xuyên tham gia thi lập trình trên mạng. Vì đạt được
thành tích cao nên Nam được gửi tặng một phần mềm diệt virus. Nhà sản xuất phần
mềm cung cấp cho Nam một mã số là một số ngun dương N có khơng q 255
chữ số. Để cài đặt được phần mềm, Nam phải nhập vào mật khẩu của phần mềm.
Mật khẩu là một số nguyên dương M được tạo ra bằng cách tính tổng giá trị các
chữ số của N.
Yêu cầu: Hãy tìm số nguyên dương M.
Dữ liệu nhập:
- Số nguyên dương N được nhập từ bàn phím (1 ≤ N < 10255).
Dữ liệu xuất:
- Số nguyên dương M tìm được.
Program baitap5;
var n:string;
m,i,t:longint;
BEGIN
write('nhap n: '); read(n);
m:=0;
for i:=1 to length(n) do
if(n[i]>='0') and (n[i] <='9') then
begin
val(n[i],t);
m:= m+t;
end;
writeln(m);
readln;
readln;
END.
Giá trị của n
'1234'


Kết quả số nguyên m
10

Do học kiểu dữ liệu xâu nên bài tốn có thể giải quyết được với những số có độ dài
bằng 255, nếu khơng sử dụng kiểu dữ liệu xâu chúng ta chỉ giải quyết được với
những số lớn nhất kiểu longint đối với Turbo Pascal hoặc đối với những số kiểu dữ
liệu qword của Free Pascal. Hai kiểu dữ liệu này đều không thõa mãn yêu cầu của
bài toán.
[3]: Một số bài tập tham khảo trên Internet
9


2.3.2 Các bài tập sử dụng khai báo ansistring trong Free Pascal
a. Bài tập 1[3]: Cho xâu s (có độ dài không vượt quá 103) chỉ gồm các ký tự từ
'a' đến 'z'. Cho biết có bao nhiêu loại ký tự xuất hiện trong s và đưa ra một ký tự
xuất hiện nhiều nhất trong s cùng với số lần xuất hiện của ký tự đó.
Dữ liệu nhập:
- Xâu S nhập từ bàn phím có độ dài nhỏ hơn hoặc bằng 103
Dữ liệu xuất:
- Dòng 1 : Số lượng ký tự khác nhau trong xâu
- Dòng 2 : Ký tự xuất hiện nhiều nhất và cùng với số lần xuất hiện ký tự đó. Nếu
nhiều ký tự xuất hiện cùng nhau thì đưa ra ký tự có mã ASCII lớn nhất.
Program baitap1;
uses crt;
var s :ansistring;
kt:array['a'..'z'] of longint;
ch,luu:char;
i,demkt,max:longint;
BEGIN
clrscr;

write('moi nhap xau :'); read(s);
for ch:='a' to 'z' do kt[ch]:=0;
//Dem so ky tu trong xau s
for i:=1 to length(s) do
for ch:='a' to 'z' do
if ch= s[i] then kt[ch]:= kt[ch]+1;
demkt:=0; max:=0;
for ch:='a' to 'z' do
begin
if kt[ch]>0 then demkt:=demkt+1;
if max end;
writeln('So luong ky tu khac nhau trong xau : ',demkt);
writeln('Ky tu xuat hien nhieu nhat la :',luu,' voi so lan la : ',max);
readln;
readln;
END.
[3]: Một số bài tập tham khảo trên Internet

10


Bài toán trên áp dụng kiểu dữ liệu mảng một chiều và xâu để giải quyết bài toán.
Độ dài xâu lớn hơn 255 nên trong chương trình sử dụng kiểu khai báo xâu với
ansistring sẽ có độ dài xâu lớn hơn xâu khai báo kiểu string. Mảng ở đây được khai
báo đặc biệt hơn so với học sinh đã được học trong sách giáo khoa là mảng có chỉ
số là các ký tự. Qua bài toán học sinh sẽ thấy sự liên quan giữa kiểu xâu và kiểu
mảng một chiều, qua đó củng cố bài kiểu xâu và kiểu mảng.
a. Bài tập 2[3]: Cho một xâu S chỉ gồm các chữ cái in thường với độ dài tối đa
500 ký tự. Em hãy viết chương trình để tạo ra xâu mới từ xâu S bằng cách xóa các

ký tự liên tiếp giống nhau trong xâu S và chỉ để lại một kí tự đại diện trong đoạn
đó. Ví dụ xâu s là 'hhhhooocccsssiiinnnhhhh' sau khi biến đổi ta được xâu 'hocsinh'
Dữ liệu vào: Nhập dữ liệu từ bàn phím xâu S chỉ gồm các chữ cái in thường.
Kết quả : Đưa ra màn hình là xâu tìm được.
Program baitap2;
var s:ansistring;
i:longint;
BEGIN
write('nhap xau s'); read(s);
i:=1;
while iif s[i]=s[i+1] then delete(s,i,1)
else i:=i+1;
writeln('Xau moi : ', s);
readln;
readln;
END.

[3]: Một số bài tập tham khảo trên Internet
11


Bài tập trên được yêu cầu là xóa hết các ký tự giống nhau liền kề và để lại một
ký tự. Bằng cách sử dụng cấu trúc lặp while do và cấu trúc rẽ nhánh ta được kết quả
như đề bài yêu cầu. Qua bài tập trên học sinh sẽ cũng cố thêm về cách truy cập đến
các phần tử trong xâu, sử dụng thành thạo hơn nữa về thủ tục của xâu (delete) và
kiểu dữ liệu xâu ansistring cho những xâu có độ dài lớn hơn 255.
a. Bài tập 3[3]: Cho một xâu S chỉ gồm các ký tự từ a đến z. Một xâu kí tự có
thể "nén" theo cách sau: Một xâu con gồm n>1 kí tự giống nhau, chẳng hạn gồm n
kí tự 'a' sẽ được ghi thành na. Ví dụ xâu 'aaaabbcd' sẽ được nén thành '4a2bcd'. Hãy

viết chương trình nén xâu.
Dữ liệu vào : Nhập xâu s từ bàn phím có độ dài xâu thõa mãn từ 1 đến 500.
Kết quả xâu : Đưa ra màn hình xâu được nén
Program baitap3;
uses crt;
var s,kq:ansistring;
st:string;
ch:char;
d,i:longint;
BEGIN
clrscr;
write('nhap xau s :'); read(s);
d:=1; ch:=s[1]; kq:='';
s:=s+#32;
for i:=2 to length(s) do
if s[i]=s[i-1] then d:=d+1 else
begin
str(d,st);
if d<> 1 then kq:=kq+st+ch
else kq:=kq+ch;
d:=1;
ch:=s[i];
end;
writeln('Xau sau khi nen : ',kq);
readln;
readln;
END.

[3]: Một số bài tập tham khảo trên Internet
12



Bài tập nén xâu được giải quyết với việc học sinh sử dụng các kiểu dữ liệu phù
hợp. Học sinh kết hợp sử dụng khai báo xâu với độ dài lớn, sử dụng kiểu dữ liệu ký
tự char, sử dụng vòng lặp để đếm các ký tự giống nhau. Sau khi làm bài tập trên
học sinh sẽ củng cố nhiều về kiến thức xâu, cấu trúc lặp, cách truy cập làm việc đến
các phần tử xâu, cách sử dụng các thủ tục của xâu.
2.4. Kết quả thu được.
Trong quá trình trao đổi, thảo luận, trình bày học sinh được thể hiện khả năng
vận dụng, hiểu biết của mình nên các em tỏ ra hăng hái trong việc giơ tay phát biểu,
tranh luận. Đồng thời tiết học trở nên sinh động hơn, giáo viên khơng đóng vai trò
là người xây dựng lý luận mà học sinh là người chủ động để giải quyết các vấn đề.
Tiến hành trong giảng dạy ở các lớp, tôi nhận thấy sau khi được hướng dẫn học
sinh đã biết làm bài tập. Từ đó, kết quả kiểm tra, đánh giá đã có sự thay đổi theo
hướng tích cực, kết quả cụ thể ở lớp áp dụng dạy và lớp đối chứng như sau:
Tỉ lệ (%)/Lớp
Giỏi
Khá
Trung bình
Yếu
Kém

11E
(lớp dạy)
25
15
15
0
0


11G
(lớp đối chứng)
14
40
12
13
0

11H
(lớp dạy)
10
14
22
8
0

11I
(lớp đối chứng)
8
13
23
20
3

3. KẾT LUẬN, KIẾN NGHỊ
3.1. Kết luận
Sau khi vận dụng vào để củng cố bài học, hướng dẫn học sinh thực hiện, tôi nhận
thấy:
- Học sinh tiếp thu bài tốt hơn, các em đã làm được bài tập, chạy được chương trình
do đó tạo hứng thú trong học tập.

- Kết quả kiểm tra, đánh giá được nâng lên. Ở các lớp được hướng dẫn thực hiện, tỉ
lệ đạt khá giỏi tăng lên, không còn học sinh yếu kém hoặc tỉ lệ này còn rất thấp.
- Khi vận dụng vào hướng dẫn cho học sinh đòi hỏi bản thân phải tiếp cận nhiều tài
liệu để có nguồn tri thức phong phú, là điều kiện để tôi nâng cao tính tự học, nâng
cao kiến thức.
13


3.2. Kiến nghị
- Đối với đồng nghiệp cần tăng cường hướng dẫn học sinh làm nhiều bài tập, thực
hành để học sinh có kỹ năng về lập trình và giải quyết nhiều dạng bài toán.
- Đối với nhà trường cần quan tâm xây dựng cơ sở vật chất, thiết bị để việc giảng
dạy tin học đặc biệt là các giờ thực hành được thuận lợi.
- Đối với Sở Giáo dục, cần thường xuyên tập huấn về chuyên môn để giáo viên có
cơ hội được trao đổi, học hỏi chun mơn nghiệp vụ của giáo viên trong các trường
THPT khác nhau.
XÁC NHẬN CỦA THỦ TRƯỞNG
ĐƠN VỊ

Thanh Hóa, ngày 21 tháng 5 năm 2021
Tôi xin cam đoan đây là sáng kiến kinh
nghiệm của mình viết, không sao chép nội
dung của người khác.

Nguyễn Văn Hải

14


TÀI LIỆU THAM KHẢO

1
2
3
4

Luật số: 43/2019/QH14 – Luật Giáo dục
Hồ Sĩ Đàm - Sách giáo khoa tin học 11
Một số bài tập tham khảo trên Internet.
Ngôn ngữ lập trình Pascal – Quách Tuấn Ngọc

15



×