1. Trang chủ
  2. » Thể loại khác

Sáng kiến kinh nghiệm phương pháp giải một số dạng bài tập về kiểu dữ liệu xâu trong Đề thi hsg môn tin học

32 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phương pháp giải một số dạng bài tập về kiểu dữ liệu xâu trong đề thi hsg môn tin học
Trường học Trường Đại Học Sư Phạm Hà Nội
Chuyên ngành Tin học
Thể loại Báo cáo
Thành phố Hà Nội
Định dạng
Số trang 32
Dung lượng 270,44 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học MỤC LỤC TÀI LIEU THAM KHẢO.. Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để t

Trang 1

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

MỤC LỤC

TÀI LIEU THAM KHẢO

BAO CAO KET QUA NGIIEN CUU, UNG DUNG SANG KI

1.1 Tả do chọn đề t

1⁄4.Phương pháp thực hiện TH HH HH HH HH T14 ghê Hư 4

6 NGÀY SÁNG KIÊN ĐƯỢC ÁP DỤNG LÂN BẦU 2e 5

1 Lý thuyết vẻ kiểu xâu eessseeeessanisuntnsssunssseensesensssssecseeeenssanvisussnssaessineeesee 6

1.3 Các thao tác xứ lý XÂU: ninh HH eereerieraeriru

2 Các dạng bài tập kiểu xâu ¬

Dang 2: Đêm số lần xuất hiện của các kí tự trong xâu - 15

Dạng 3: Mã hóa và giất mã à àinereirererrerrrrereroeoee TỂ

Dang 4: Xéa va thay thé

9 CAC DIEU KIEN CAN THIET DE AP DUNG SANG KIEN: - 30

Trang 2

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

TAT LIRU THAM KHẢO

1.Sách giáo khoa tin hoe 11 1Iồ Sĩ Đảm chủ biên

2 Sách giáo viên Lin hoe 11 Hé ST Pam chủ biên

3 Sách bài tập tin học lớp 11

4 Một số đề thị học sinh giỏi tỉnh Vĩnh Phúc

5 Một số sáng kiến kinh nghiệm và ý kiến của đồng nghiệp

6 Một số trang web trên Internet

ba

Trang 3

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

BẢO CÁO KẾT QUÁ

NGHIEN CUU, UNG DUNG SANG KIEN

1 LOI GIOL THIEU

1.1 Li do chon dé tai

Môn tin học đặc biệt là nội dung tin học lập trỉnh là một môn học khá là mới lạ

đối với học sinh phổ thông nôn đa số các cm rất bỡ ngỡ khi tiếp cận nội môn học này

'1rong thực tiễn dữ liệu vào của các bài toán đều liên quan đến các kiểu dữ liệu

khác nhau, để tiện cho việc lập trình và xử lý đữ liệu chúng ta thường đưa đữ liệu đó

về các dạng kiểu dữ liệu chuẩn hoặc kiểu dữ liễu có cầu trúc, một trong những kiểu đữ

liệu đó là kiểu xâu

Qua quá trình tham gia giáng dạy môn tin học tại trường THPT Đồng Đậu và bỗi

dưỡng học sinh giỏi tôi nhân thấy dữ liêu kiểu xâu gặp rất nhiều trong các bài toán

nhưng đề học sinh có thé van dụng lĩnh hoạt các thao tác xử lý trên kiểu dữ liệu này vào bài toán không phải là dễ

Voi mong muốn hệ thống các bài toán dưới dạng một số dạng bải tập thường gặp

giúp cho giáo viễn và học sinh phần nảo nhận dang va giái một số bài tập liên quan tới

kiểu đữ liệu xâu dé đàng hơn, tôi xin đưa ra “PHƯƠNG PHÁP GIẢI MỘT SỐ DẠNG

BÀI TẬP VŨ KIÉU DỮ LIỆU XÂU TRONG DB TIH HỌC SINII GIỎI MÔN TT

HỌC”

1.2 Mục tiêu nghiên cứu

a_ Để tải thực hiện nhằm giúp cho giáo viễn cũng như học sinh hệ thống lại các

kiến thức về các thao tác trên kiểu dữ liêu xâu từ đó áp dụng cho các bài toán

cụ thể

ø_ Giới thiêu một số phép toán trên kiểu dữ liêu xâu đặc biệt phần nảy có cung, cấp thêm một số hảm, thú tục chưa được giới thiệu trong bài 12 sách giáo khoa

Trang 4

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

tin học 11, đổng thời đưa ra một sé vi dụ tương ứng để học sinh dễ dàng sử

dụng

a_ Hệ thống các bài toán đưới dạng một số dang bải tập thường gặp giúp cho giáo

viên và học sinh phần nảo nhận đạng và giải một sé bai tập liền quan

s2 Giúp học sinh không còn nhằm chắn với môn tin học nói chưng và kiểu đữ liệu xâu nói riêng,

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

Học sinh: học sinh học chương trình cơ bản và học sinh đội tuyển học sinh giỏi

o Tham khảo ‡ kiến của cấp Trên và đồng nghiệp

2 TEN SANG KIEN:

“PHUONG PHAP GIAI MOT SO DANG BAI TAP VE KIBU DU LIU XAU

TRONG DE THI HOC SINH GIOI MON TIN Hac”

3 TAC GLA SANG KIEN:

© Ho va tén: Bai Thị Phương

© Dia chi tac gid sang kién: TIIPT Dang Dau

2 Số diện thoại:0383797818

© _E mail: buithiphuongc3dongdau.vinhphuc.edu.vn

Trang 5

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

4 CHỦ DẦU TƯ TẠO RA SÁNG KIÊN

5 LĨNH VỰC ÁP DỰNG SÁNG KIÊN

Để tai được sử dụng để vận dụng giải các bài toán về kiểu đữ liệu xâu trong sách

bài tập tin học lớp 11 và trong các đề thí học sinh giỏi tỉnh môn tin học

Khi vẫn dung dé tai dé giải các bài toán về kiểu dữ liệu xâu giúp

©_ llẹc sinh sau khi được giới thiệu một cách hệ thông các dang bài tập về xâu

và quy trình giải quyết từng dạng dã có thể nhận biết yêu cầu của bài toán và

cách thức giải quyết chủng một cách hiệu quả

© 1Tình thành ở 1IS kỹ năng phân tích, xử lý các vấn đề liên quan đến bài lập

kiểu xâu, sử dụng thành thao vỏng lắp biết trước, thủ tục chuẩn vào/ra đơn

giản, bước đầu lâm quen với L số chương trình con đạng thủ tục tạo điều kiện

thuận lợi cho việc tiếp thu kiến thức về cách viết chương trình có cầu trúc

o_ Mở rộng một số bài tập kiểu xâu dé hoc sinh thấy được ứng dụng quan trọng của kiểu dữ liệu xâu trong lập trình

6 NGAY SANG KIEN BUQC AP DUNG LAN BAU HOAC AP DUNG THU

Đề tải được áp dụng vào ngày 20 tháng 02 năm 2019

7 MÔ TẢ BẢN CHÁT CỦA SÁNG KIÊN:

NỘI DUNG SÁNG KIÊN CHIƯƠNG I: CƠ SỞ LÍ LUẬN CỦA ĐÈ TÀI

Trong bối cảnh toàn ngành GD-ĐT đang nỗ lực đổi mới phương pháp day học theo

hưởng phát huy tính tích cực chủ đông của học sinh trong hoạt đông học tập Điều 24.2

của Luật giáo duc đã nêu rõ: “Phương pháp giáo dục phố thông phải 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 đặu điểm của từng lớp học,

môn học, bồi đưỡng phương, pháp tự học, rẻn luyện kỹ năng vận dụng, kiến thức vào

thực tiễn, tác động đến tình cảm, đem lại niễm vui, hứng thú học tập cho học sinh ”

Nhu vậy, chúng ta có thể thấy định hướng dỗi mới phương pháp đạy học dã dược khẳng

5

Trang 6

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

định, không còn là vân đề tranh luận Cốt lõi của việc đổi mới phương pháp dạy học ở

trường phổ thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen

học tập thụ động Với một số nội dung trong để tải này, học sinh có thể tự học, tự rẻn

luyện thông qua một số bài tập, dạng bài tập cụ thể

CHƯƠNG II: THỤ

TRẠNG CỦA VẤN ĐỂ NGHIÊN CỨU Qua thực tế giảng day ở trường THPT Đồng Đậu tôi nhận thây khi học đến chương

trình tin học lớp 11 đa số học sinh đều cho rằng đây là môn học khó nhất trong các môn

học, nhiễu em còn sợ môn học này

Khi học sinh học bài học Bài 12 “Kiểu xâu”, học sinh đã có rất nhiều khó khăn,

nhằm lẫn trong việc xử lý đữ liệu vì các em đang quen với các bài toán xử lý đữ liệu

kiểu số, các bài toán quen thuộc như tính tổng hoặc tích của 1 dãy số thoả mãn điều

kiện nào đó

Khi gặp các bài toán phải sử dụng kiểu dữ liệu lớn nhiều cm lúng lừng Việc giải các

bài toán với kiểu đữ liệu lớn thực sự cần thiết cho các em khi làm các bài toán lập trình trong chương trình Tin học phổ thông nói riêng và việc giải quyết các bài toán thực tế

nói chung

CIIUONG I: NOI DUNG CUA BE TAI

1 Lý thuyết về kiểu xâu

1.1 Khái niệm

© 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

a Số lượng kí tự trong xâu gọi là độ dài xâu

o_ Xâu có độ dài bằng 0 gọi là xâu rỗng

ø Có

ổ ooi xâu là măng một chiều, mỗi kí tự trong xâu là một phần tử, được

6

Trang 7

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

đánh chỉ số bắt đầu tử 1 J2o vậy, để tham chiếu đến phần tử của xâu ta viết

<tên biến xâu>|chỉ số của kí tur],

Ví dụ: s = “Tin hoe' Muốn truy cập dén ki tu ‘i? thi viét 82] = ‘7’;

1.2 Khai báo

Var <tên biến xâu> : sưảng | độ dâu lớn nhất của xâu |,

Vi đụ: var hoten : sring|30],

Chủ ý: Dộ dài lớn nhật của xâu có thé bỏ qua Khi đó độ đài lớn nhất của xâu

sẽ nhận giá trị ngầm định lả 255 Ví dụ var s : sưing;

1.3 Các thao tác xử lý xâu:

1.31 Phép ghép xân

Kí hiệu là dấu (+), dược sử dựng dễ ghép nhiều xâu thành một Có thể thực

hiện phép ghép xâu đôi với các hằng va biến xâu

> Xâu A là lớn hơn xâu B nếu như 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

Vi dụ: “207' > 2007”,

Trang 8

Phương pháp giải mdl.sé dang bai tap vé kigu dit héu xâu trong để thi HSŒ mãn lin học

> Nếu A và la cde xâu có độ dải khác nhau và A là đoạn đầu của

B thi A nhé hon B

Vi du: ‘Tin’ < ‘Tin hoc’

> Hai xâu được coi la bằng nhau nếu như chúng giống nhau hoàn

Gia tri st Thao tac Két qua

VY “Hinh 2” Inseri(s],s2,6), | ‘Hinh 1.2’

Ham copy (s, vt, 2) Tao xdu gômn kí tự liên tiếp bắt đầu từ vị trí vt của xâu s

Giá trị s Thao tic Kết quả

“Tin hoe’ copy(s, t, 3), “Tin?

“Bai hoc thu 9" Copy(s,9,5); ‘thu 9°

Trang 9

Phương pháp giải mdl.sé dang bai tap vé kigu dit héu xâu trong để thi HSŒ mãn lin học

sè: Hàm lengt(s) Cho giá trị là độ dài xâu s

sề Hăm pòy (S1, s2) Cho vì

*# Hàm:

s* Thú bạc chuyễn xâu sang số vai (wy v, cj Chuyển xâu s thành giá trị số lưu vào

cơng

v, e là vị trí gây ra lỗi trong quả trình chuyển dỗi, e — 0 thi chuyển déi thả

1234 Val(s,i ¡= 1234, c=0

Giả trị s Thao tac Kết quả

upeuse(ch) Cho chit cai m hoa img voi chif cai trong ch

Trang 10

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

s* Thủ tục chuyến số sang xâu str(x, s) Chuyển giá trị kiểu số x thành chuỗi

biểu diễn nó lưu trong s

1234 Sus); §='1234 11:0:2 Su(x.s); 8-1110

2 Các dạng hải tập kiểu xâu

2.1 Dang 1: Kiém tra x4u théa man tinh chat nào đó

Phương pháp chung của dạng này là sử dụng các thao tác xử lý xâu vảo tùng yêu cầu cụ thể, thường vận dung câu lệnh for to do để đưyệt các phần tử của xâu

Bài 1(sgkỳ: Nhập vào hai xâu họ tôn và dua ra màn hành xâu có độ dài đài hơn Nếu

bai xâu có độ dài bằng nhau thi dua ra xdu nhdp sau,

* Ý tông: để lấy độ dài xâu sử dụng ham length(s), So sánh độ dài của hai xâu bằng

* Ý gỡng: Kí tự đầu tiên của xâu a all]

kỉ tự cuối củng của xâu b: b[length(b)]

Trang 11

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

ay fedng: Muén dua x4u ra theo thir ty nguge Iai thi phai di ti cudi xâu đến kí tự liên

cuỗi => duyệt bằng câu lệnh (or downto do đưa ra từng kí tự gúa s

For i-—length(s) downto 1 do write(s[ip);

Bai 4(sgk): Kidm tra xem xdu cd la xan d6i xứng không?

_Xâu đối xứng là xâu mà đọc từ cuối xâu ngược lên cũng giẵng đọc từ đầu xâu đến cuối

* Cách 1: Tạo l xâu đáo ngược từ xâu ban đầu (Cách tạo giếng Bai 3) => So sánh hai

xâu, nêu bằng nhau thị đối xứng ngược lại thi không đối xứng

{ Tạo xâu b đảo ngược từ xâu a}

for i:~ length(a) downto 1 do b:-b+ali}:

if a= b then write(“Xau doi xung’) else write(‘xau khong doi xung’);

* Cách 2: Nhận xót nếu x4u # déi xứng thì

a[1]—a[n] ( Gann — length(a));

a[2] =a[n-1]

a[3| —a[n-2]

tổng quát lên a[i[ — a[n-i-1] véii chay tr 1 dén n div 2

Sử dụng biến KT để KT tính đối xứng của z

Doan chương trình thực hiện kiểm tra đối xửng

KT:= true;

for i— 1 lo ndiv 2 do if ali] <> a[n-i4] | then KT-— false,

if KT then write(*Xau doi xung’) else (*xau khong, doi xung’),

11

Trang 12

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

Bài 5 (Hài 4.42 sách bài tập): Xâu W viên đá quý có kích turớc giống nhau

(Š<=N<—120), mỗi viên cỏ mỘt màu các màu được đánh số từ 1 đến 9 Người ta lắp

khỏa đeo vào vị trí sao cho khi mỡ vòng ta dược một dây đủ quỷ có tính chất: không

phụ thuộc vào việc cẩm đầu dây nào bên tay phải và đầu kia bên tay trái, !a đều được

một chuỗi hạt giống nhau, tức là viên đủ thứ ¡ từ trải sang luôn cỏ màu j không phụ

thuộc vào cách cầm

Vi du Xâu S 222222335533

Cách đặt khỏa thứ ï: 2 2 2 3 3 š 5 3 3 2 2 2

Cách đặt khóa thứ 11: 5 3 3 2 22222 3 3 5

Xác định số vị tri khác nhau có thể mắc khóa thảo lắp vòng

* Phân tích dễ: Thực chất để yêu cầu xác định xem có bao nhiêu xâu con được tạo dây

đủ từ các kí tự có trong xâu s và có chiều đải đúng bằng chiều đải xâu ban đầu

* Ÿ grống: Sử lý đữ liệu vòng tròn bằng cách nhân đôi xâu ban đầu, kiểm tra từng xâu

con có độ dài bằng N bắt đầu từ vị trí ¡ (CI— 1,2 N) có là xâu đối xứng không, Nếu

đối xứng thì tăng biến đếm

* Doan chương trình

{ Hàm kiểm tra tính đối xứng của một xâu}

Function DX ( s2:string) : boolean;

Trang 13

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

Chú ý: với học sinh đại trả chưa học đến chương trinh con thi trong phn thin chuong

trình sẽ kiểm tra tính đối sứng cúa s3 như trong hàm viết ở trên

Bai 6 (Dé thí hsg lớp 1U năm 2010 - 2011) Hwa ra xâu con đối xứng có độ đài đài

nhất

Bai nay có hai cách dễ làm là sử dụng quy hoạch dộng và duyệt bình thường, nhưng

xuất phát từ thực tế giảng dạy học sinh trường THPT Dng Dậu khó hình dung được

bằng cách quy hoạch động nên ở đây tôi sử dụng cách duyệt và kiểm tra tính đối xửng

thông thường Để tối ưu lời giải các bạn có thể tìm hiểu thêm cách sử dụng quy hoạch

động cho bài toán trên

* Ý arững: Tạo các xâu con có độ đài là 2, 3, đằng thời kiểm tra luôn xâu con đỏ có

đôi xứng không? Nếu đối xứng thì so sánh độ dải của xâu con đó với giá trị max trước

đó, nếu lớn ham thì gắn lại max

* Đoạn chương trình

n:=length(); max:=l,

for k:-] yn —1 do

Trang 14

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

end,

write(x),

Bai 7(Bai 4.25 sách bài tập) Xâu S chỉ bao gồm ngoặc mở '(' và ngoặc đóng ')' Xâu

4 xác định một cách đặt ngoặc đúng, nếu thỏa mãn các điều kiện:

© SỐ ngoặc mở — số ngoặc đóng

© Nếu duyệt từ trải sang phải thì số lượng ngoặc mở luôn luôn lớn hơn hoặc bằng số

lượng ngoặc đông

Vi dy, xdu '((0())))” xác định một cách đặt ngoặc đúng Còn xâu '(00))(0)7 là một

cách đặi ngoặc sat

Viết doạn chương trình kiểm tra xem xâu s có xác dịnh một cách dặt ngoặc đúng hay

không?

* Ý tổng: Dang bién đ với giá trị ban đầu = 0; Duyệt từ trái qua phải gặp đầu ngoặc

mé thi ting d lén 1, pap dấu ngoặc dong thỉ giảm d một dơn vị Biểu thức ngoặc là sai

khi gap d= -1 hoặc hết biểu thức ngoặc d vẫn lớn hơn 0;

đ~0; kt:— true;

for i:= | to length(s) do

Trang 15

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

begin

i[s[i|—'Œ then inc(đ) clsc dec(đ);

1Ÿ d<0 then bepin kt:— false; breakk, end;

end;

1F d>0 then kt:—false;

Tâài 8( ĐỀ thi hsg lớp 11 năm 2012— 2013) Cho xâu § độ dài không quá 250 chỉ gồm

các kí tự ngoặc đóng và ngoặc mỡ Xác định số cặp chi sé (p, q) sao che p<q va s[p]

=a[p+1] = (2 s[q] = slq+1] = )'

* Ý trông: Vì p < q nên sử dụng một vòng lặp [or duyệt từ đầu xâu đến độ đài xâu —

2 và một vòng for duyệt từ cuối xâu đến p+1, kiểm tra điểu kiện đề bài cho có thỏa

mãn không, nếu thỏa min thi ting biến đếm

#* Đoạn chương trình

đ:=0;

for i—1 to length(s}-2 do

for ]:-length(s) downto i+] do

if (s[isfi! 1]) and @[ï†ES[j! L) and @[TE'C) and @[ï|EY

Trang 16

Phương pháp giải một số đạng bài tập về kiếu đữ liệu xâu trong để thi HSGŒ mãn tin học

Bài 1(bài 10 sgk): Viét chuong trình nhập vào từ bàn phím một xâu kí tự 3 có độ dài

không quá 100 Hãy cho biết có bao nhiêu chữ số xuất hiện trong xâu 8 Thong báo

kết quả ra màn hình

ay tưởng: DI từ đầu xâu đến cuối xâu, kiểm tra lần lượt từng ki tự có năm trong

khoảng từ “0° dến '9* không? Nếu nằm thì tăng biển dếm lên ]

* Doan chương trình

dem —0,

for i:—1 ta length(s) do

if (s[i]>—°0") and (s[i]}<—"9") then

dem:~dem | 1, writeln(‘Co ',dem, ` chủ so xuat hien trong xau 4”):

Bai 2 { Bài 7.14 sách bài tap): Cho sd nguyên N ở hệ 10 đưới đạng xâu Š không quá

30 chữt số và không có số () ở dầu Thống kê của N được xây đựng như sau:

- Tính tân số xuất hiện các chữ số của N

- Viết liên tiếp tắn số và chữ số theo thứ tự tăng dân của các chữ số khác nhau trong

w

Vĩ đụ, với N=353 ta có lẫn số xuất hiện của 3 là 2, của 5 là 1 Như vậy thông kê sẽ viết

là 2815

* Phân tích đẻ: Bài ? phát triển từ bài 1 Ở bài trên là chỉ thông báo có bao nhiều chữ

sổ, nhưng 6 bai nay lai cu Thể là mỗi chữ số xuất hiện bao nhiêu lần,

* Ý trăng:

- Khởi tạo một mắng d với chỉ số là các ký tự chữ sô từ “0” đến “9

16

Ngày đăng: 08/05/2025, 13:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm