1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(SKKN 2022) mở rộng bài tập kiểu xâu nhằm bồi dưỡng học sinh khá, giỏi

18 7 0

Đ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

Định dạng
Số trang 18
Dung lượng 184 KB

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

Nội dung

Mà vấn đề đặt ra là chúng ta phải tích cực tìm tòi, sáng tạo trong việc đưa ra những bài toán đó để giúp học sinh có được sự hứng thú, sáng tạo trong học tập để giải quyết vấn đề đưa ra.

Trang 1

1 MỞ ĐẦU

1.1 Lý do chọn đề tài

Nội dung tin học lập trình lớp 11 là một nội dung mới lạ, khó đối với đa số học sinh với nhiều khái niệm, thuật ngữ, cấu trúc dữ liệu mà học sinh mới được tiếp xúc lần đầu Chính vì vậy mà học sinh dễ mắc sai lầm khi lập trình giải quyết các bài toán Trong việc giảng dạy cho HS, ngoài việc giúp học sinh lĩnh hội những kiến thức cơ bản, người thầy còn phải biết kích thích tính tích cực, sự sáng tạo say

mê học hỏi trong học tập của các em Vì vậy đòi hỏi học sinh phải có ý thức về những mục tiêu đặt ra, tạo được động lực bên trong thúc đẩy bản thân các em hoạt động để đạt các mục tiêu đó Điều này được thực hiện trong dạy học không chỉ đơn giản bằng việc nêu rõ mục tiêu mà quan trọng hơn còn gợi động cơ trong học tập bằng việc đổi mới phương pháp dạy học

Là một giáo viên giảng dạy bộ môn này, theo tôi không phải cứ tìm được nhiều bài toán khó, bài toán hay để giảng dạy cho học sinh Mà vấn đề đặt ra là chúng ta phải tích cực tìm tòi, sáng tạo trong việc đưa ra những bài toán đó để giúp học sinh có được sự hứng thú, sáng tạo trong học tập để giải quyết vấn đề đưa ra Xuất phát từ thực tiễn giảng dạy tại trường THPT Hậu Lộc 4, tôi nhận thấy rằng để đạt hiệu quả cao trong mỗi phần học, tiết học cần có phương pháp, đưa ra được ý tưởng và đi xây dựng viết chương trình cách thiết kế bài giảng cho phù hợp với nội dung kiến thức, phương pháp và phương tiện dạy học cho từng học sinh Để qua mỗi phần học, tiết học, học sinh hứng thú với kiến thức mới, hiểu được kiến thức

đã học trên lớp và vận dụng vào thực tiễn

Trong các môn học ở bậc THPT thì Tin học lớp 11 được các em cho là môn học khó hiểu nhất Các em được làm quen với ngôn ngữ lập trình mới Turbo Pascal, C++ Trong ngôn ngữ lập trình này các em được làm quen với nhiều kiểu

dữ liệu mới, hiểu được các thuật toán cho một bài toán rồi mới đi xây dựng viết chương trình Quả thật đối với các em hết sức khó khăn, từ việc các em chỉ là người

sử dụng phần mềm có sẵn như: soạn thảo văn bản, phần mềm Excel, các phần mềm học tập, giải trí … thì các em lại phải tìm ra lời giải cho các bài toán, chỉ ra các bước cho máy tính thực hiện và viết chương trình để tạo ra các sản phẩm phần mềm cho người khác sử dụng

Qua quá trình giảng dạy Tin học khối 11, tôi nhận thấy dữ liệu kiểu xâu thường gặp rất nhiều trong các bài toán và vận dụng linh hoạt các thao tác xử lý trên kiểu dữ liệu này vào bài toán là không dễ Việc học sinh tìm hiểu về kiểu dữ liệu có cấu trúc nói chung và kiểu dữ liệu xâu nói riêng còn nhiều lúng túng Đặc biệt là dữ liệu vào kiểu xâu và những yêu cầu của bài toán liên quan đến dữ liệu kiểu xâu, học sinh thường không biết bắt đầu từ đâu để giải quyết vấn đề mà bài toán đưa ra Qua thực tế công tác gần 15 năm, qua học hỏi kinh nghiệm từ đồng nghiệp, với mong muốn phần nào giúp cho học sinh cũng như giáo viên trong việc tìm ra lời giải cho một số bài toán liên quan tới kiểu dữ liệu xâu dễ dàng hơn Để học sinh được rèn luyện các bài tập cơ bản, và từ đó mở rộng các bài toán nâng cao

về kiểu xâu dành cho học sinh khá giỏi sẽ cuốn hút học sinh, tạo hứng thú cho học

Trang 2

sinh khi học lập trình Vì vậy, tôi xin mạnh dạn giới thiệu đề tài sáng kiến kinh nghiệm mà mình nghiên cứu là: “Mở rộng các bài tập cơ bản về kiểu xâu cho học sinh khá, giỏi ” trong Tin học 11 mà tôi đã áp dụng có hiệu quả trong quá trình giảng dạy

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

- Giới thiệu cách khai báo và truy xuất đến kiểu dữ liệu xâu.

- Giới thiệu một số phép toán trên dữ liệu kiểu xâu, đồng thời cung cấp thêm

một số hàm, thủ tục chưa có trong bài 12 sách giáo khoa tin học 11

- 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 dạng và giải một số bài tập liên quan

- Sử dụng các ví dụ cụ thể trước hết để học sinh nắm được cú pháp, ý nghĩa của kiểu xâu Đồng thời giới thiệu thêm một số hàm, thủ tục xử lý xâu nhằm giúp các em học sinh xử lý được một số bài tập ứng dụng, tăng sự yêu thích đối với môn học được cho là khó và trừu tượng

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

Sử dụng ngôn ngữ lập trình C++ và Free Pascal để tiến hành nghiên cứu các bài toán trên kiểu dữ liệu xâu với đối tượng nghiên cứu là học sinh khối 11 của trường THPT Hậu Lộc 4

Hình thành được kỹ năng thực hành giải các bài tập cho học sinh và có được một hệ thống kiến thức với các dạng bài tập lập trình nâng cao theo độ khó dần về bài tập dữ liệu kiêu xâu

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

Hình thành ở học sinh kỹ năng phân tích, xử lý các vấn đề liên quan đến bài tập kiểu xâu

Để trình bày sáng kiến kinh nghiệm này, tôi đã sử dụng phối kết hợp nhiều phương pháp như: nghiên cứu tài liệu, sách, báo, thuyết trình, quan sát, tham khảo

ý kiến của cấp trên và đồng nghiệp, điều tra cơ bản, thực nghiệm so sánh, phân tích kết quả thực nghiệm phù hợp với môn học thuộc lĩnh vực Tin học

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

Trong bối cảnh toàn ngành GD-ĐT đang đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong học tập Điều 24.2 của Luật giáo dục đã 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 đặc điểm của từng lớp học, môn học; bồi dưỡ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” Như vậy, có thể khẳng định đổ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ố dạng bài tập cụ thể và nâng cao

Trang 3

Căn cứ vào mục tiêu của môn Tin học, là phải cung cấp những tri thức cơ bản, làm nền tảng để học sinh có thể tiếp tục đi sâu vào tìm hiểu và xây dựng khoa học Tin học hoặc tiếp thu những tri thức của các lĩnh vực kĩ thuật công nghệ tiên tiến, nhất là các lĩnh vực công nghệ thông tin Môn Tin học, cũng như mọi môn học khác, căn cứ vào mục tiêu trên để xác định ra nhiệm vụ cụ thể của môn học, tổ chức hoạt động đào tạo góp phần thực hiện mục tiêu giáo dục mà Đảng và nhà nước đề ra

Nếu học sinh được rèn luyện các kỹ năng cơ bản về bài tập thì việc mở rộng các bài toán cơ bản về kiểu xâu dành cho học sinh khá giỏi sẽ cuốn hút học sinh, tạo hứng thú cho học sinh khi học lập trình

2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm

Trước đây khi chưa áp dụng phương pháp giảng dạy bằng giáo án điện tử, hệ thống các bài tập, bài thực hành có nội dung liên hệ được với thực tiễn, học sinh luôn phản ánh với giáo viên rằng những bài tập về kiểu xâu thường trừu tượng và khó hiểu

Tin học là môn học đặc thù có nhiều kiến thức khó như lập trình pascal ở lớp

11, đây là kiến thức thi học sinh giỏi tỉnh nhưng thường bị xem nhẹ, bị xem là

“môn phụ” Học sinh và phụ huynh chưa mặn mà, chưa quan tâm đúng mực tới môn học nên việc lựa chọn và bồi dưỡng học sinh giỏi là vô cùng khó khăn Đứng trước một bài toán tin học, học sinh thường lúng túng và không biết tìm thuật toán của bài toán từ đâu và tìm như thế nào? Một số học sinh khá, giỏi thì có thói quen

là mò mẫm và thử nghiệm để tìm lời giải, điều đó có thể dẫn tới kết quả đúng hoặc sai hoặc chệch hướng giải quyết bài toán, hiệu suất để tìm thuật toán như thế là không cao, một số học sinh kém hơn thì không biết cách tìm thuật toán từ đâu và điều đó gây tâm lý chán nản cho các em Với tình hình ấy để giúp học sinh định hướng tốt hơn trong quá trình tìm thuật toán, trước khi có thể tự tìm được thuật toán tốt hơn thì người giáo viên cần tạo cho học sinh thói quen tìm thuật toán cho bài toán khó hơn từ các các bài toán cơ bản quen thuộc mà các em đã biết, khai thác các yếu tố đặc trưng của một số bài toán cơ bản để tìm thuật toán cho các bài toán nâng cao

Qua việc giảng dạy học sinh học lập trình lớp 11, tôi nhận thấy học sinh còn nhiều bỡ ngỡ khi tiếp cận với lập trình có cấu trúc cũng như kiểu dữ liệu có cấu trúc Với các thao tác duyệt xâu và các thao tác kiểm tra tính chất phần tử của xâu cần phải sử dụng cấu trúc lặp học sinh thường gặp nhiều khó khăn Và đó cũng là bước cơ bản để tạo tiền đề trong việc lựa chọn học sinh để bồi dưỡng học sinh giỏi với chuyên đề và bài tập kiểu xâu

2.3 Giải pháp đã sử dụng để giải quyết vấn đề

2.3.1 Giới thiệu kiến thức cơ bản về kiểu xâu

a Khai báo xâu:

- Xâu là một dãy kí tự thuộc bảng 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 gọi là xâu rỗng

Trang 4

- Để khai báo dữ liệu kiểu xâu ta sử dụng tên dành riêng String, tiếp theo là

độ dài lớn nhất của xâu

string tên_biến_xâu;

Ví dụ: string st1,st2;

string st[100];

- Có thể xem xâu là 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ừ 0

- Nếu không khai báo độ dài lớn nhất của xâu thì xâu sẽ nhận giá trị ngầm định là 255

- Ngoài ra có các kiểu khai báo khác của xâu như:

+ Shortstring: chính là String + longstring: là mảng ký tự có kiểu char Thông thường kiểu char có kích thước 16 bit nên mảng có kích thước tối đa 16 bit = 65535 ký tự

+ ansistring (chỉ có trong free pascal) có kích thước gần 2GB = 230 B

b Các thao tác xử lí xâu

- 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

VD: ‘hoc ’ + ‘sinh’ cho kết quả ‘hocsinh’

- 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

VD: ‘Ha Noi’ > ‘Ha Nam’

(111 kí tự) (97 kí tự)

+ Xâu B là đoạn đầu của xâu A

VD: ‘Xau ki tu’ > ‘Xau’

+ A=B nếu xâu A và B giống nhau hoàn toàn

VD: ‘tin’= ‘tin’, ‘tin’<> ‘TIN’

c Một số thủ tục xử lý xâu:

St.erase(vt,n) Xóa n kí tự của xâu St bắt đầu

từ vị trí vt

St= ‘Song Hong’ St.erase(1,5)= ‘Hong’

St2.Insert(vt ,st1) Chèn xâu st1 vào st2, bắt đầu ở

vị trí vt

St1= ‘1’; St2= ‘Hinh 2’ St2.Insert(6,st1)= ‘Hinh 1.2’

Str(value,s) Chuyển đổi giá trị kiểu số

(value) sang dạng xâu kí tự và gán cho biến s

VD: n:=‘2019’

str(n,s)= ‘2019’

val(s,value,code) đổi xâu kí tự s sang dạng số và

gán cho biến value, nếu biến đổi thành công thì code nhận giá trị bằng 0, ngược lại cho giá trị khác 0

VD: val(‘198’,value,code) lúc này code=0 và value=198

Trang 5

d Một số hàm:

1 S.substr(vt,n) Tạo xâu mới gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu s

2 Length(s) Cho giá trị là độ dài xâu s

3 Pos(s1,s2) Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2

4 Upcase(ch) Cho chữ cái in hoa ứng với chữ cái trong ch

5 Ord(ch) Cho mã của kí tự ch trong bảng mã ASCII

6 Chr(n) Cho kí tự có mã là n

7 Concat(s1,s2, ,sn) Cho xâu mới bằng cách nối đuôi các xâu s1,s2, ,sn lại với

nhau

Ví dụ:

TT Giá trị ch

2.3.2 Các dạng bài tập cơ bản về kiểu xâu

Bài tập 1: Nhập vào từ bàn phím một xâu gồm các chữ cái latin Hãy đếm xem

trong xâu có bao nhiêu kí tự ‘a’(không phân biệt chữ cái in hoa và in thường)

gợi ý: khởi tạo biến dem = 0 Duyệt từ đầu xâu đến cuối xâu, nếu gặp kí tự nào là a hoặc A thì tăng dem lên 1 Vì bài cho xâu không có dấu cách nên ta dùng cin nhập được

CT viết bằng ngôn ngữ C++

#include <bit/stdc++.h>

using namespace std;

string st;

int n, dem=0;

int main()

{

cin>> st;

n=st.length();

for(int i=0;i<n;i++)

if(st[i]==’a’//st[i]==’A’) dem++

cout<< dem;

return 0;

}

Trang 6

Bài tập 2: Nhập 1 xâu S từ bàn phím (S<=100), đưa ra màn hình xâu đảo ngược

của xâu đó (viết theo chiều ngược lại)

VD: Input: ‘Tinhoc’

Output: ‘cohniT’

GV nêu câu hỏi: làm thế nào để chúng ta có thể viết ngược lại xâu nhập vào?

* Ý tưởng:

- Để duyệt lần lượt các kí tự trong xâu S từ 1 đến hết (phần tử cuối cùng có chỉ số trùng với độ dài của xâu) ở các ví dụ và bài tập 1 chúng ta sử dụng vòng lặp biết trước for i:=1 to length(s) do …Vậy nếu chúng ta sử dụng vòng lặp lùi for i:=length(s) downto 1 do …thì có thể giải quyết được yêu cầu của bài toán không?

- GV gọi học sinh lên bảng viết chương trình, sau đó nhận xét và chạy thử chương trình học sinh viết, HS quan sát kết quả thực hiện chương trình trên màn hình máy chiếu (GV giải thích thêm vì sao xâu s trong bài tập này có độ dài tối đa

100 kí tự)

* Viết chương trình:

Program xaunguoc;

Var S: String[100]; i:Byte;

Begin

Write(‘Nhap xau S: ‘); Readln(S);

For i:=length(S) downto 1 do write(S[i]);

Write(‘Xau nguoc cua xau la: ‘, S);

Readln;

End

Bài tập 3: Nhập 1 xâu S từ bàn phím (S<=50), đưa ra màn hình xâu S nhưng mỗi kí

tự viết trên 1 dòng ngược lại với xâu S

VD: Input: ‘Tinhoc’

Output: c o

h

n i T

Đa số học sinh còn chưa nắm được dùng write và writeln khi nào, mục đích của bài tập này đưa ra nhằm củng cố cho học sinh sử dụng thành thạo write và writeln và

sự khác biệt của nó

Chương trình mà em học sinh đã sửa như sau:

Program baitap3;

Uses Crt;

Var S: String[50];

i:Byte;

Begin

Clrscr;

Write(‘Nhap xau S: ’);

Trang 7

Write(‘ketqua la:’);

For i:= length(S) downto 1 do writeln(S[i]:30);

Readln;

End

* GV đặt câu hỏi: Khi đưa ra màn hình xâu S nhưng mỗi kí tự viết trên 1 dòng Chương trình viết giống trên chỉ khác lệnh:

For i:=1 to length(S) do write (S[i]:15);

Khi chạy chương trình cho các em HS theo dõi kết quả trên màn hình máy chiếu

mà mình đã sửa thì các em ngạc nhiên và rất hào hứng: đơn giản chỉ sửa chương trình có ít mà đã có kết quả rất thú vị, các em thấy được tin học 11 không khó lắm GV: Vậy chúng ta có thể tô màu cho chữ được không? Chẳng hạn xâu S đưa ra có màu xanh hoặc đỏ hoặc mỗi kí tự có một màu khác nhau?

GV làm mẫu cho học sinh để các em thấy được kết quả cho các kí tự hiện ra có màu xanh lá Tất cả học sinh trong lớp đều thấy phấn chấn và hào hứng học tập

Chương trình bài tập 3 mở rộng

Program baitap3;

Uses Crt;

Var St: String[25];

i:Byte;

Begin

Write(‘Nhap xau S: ‘);

Readln(S);

Write(‘ketqua la:’);

Textcolor(2);

For i:= length(S) downto 1 do writeln(S[i]:15);

Readln;

End

2.3.3 Dạng bài tập nâng cao về biến đổi xâu

Việc biến đổi xâu được thực hiện trên mỗi kí tự trong xâu nên cần nắm rõ các hàm, thủ tục trên kiểu dữ liệu xâu để vận dụng một cách linh hoạt vào từng bài tập

cụ thể

Bài tập 1: Tìm số

Cho trước một xâu kí tự, trong đó có ít nhất 5 chữ số Hãy thực hiện xóa các

kí tự chữ số sao cho 5 kí tự cuối cùng tạo thành số lớn nhất

Dữ liệu vào: Cho trong tệp timso.inp

Dữ liệu ra: Ghi ra tệp timso.out

* Ý tưởng:

- Xóa các kí tự chữ cái xuất hiện trong xâu

Trang 8

- Thực hiện xóa các kí tự số chỉ giữ lại 5 số để tạo thành số lớn nhất bằng cách lần lượt đi tìm 4 chữ số lớn nhất có trong xâu còn lại

* Chương trình Timso như sau:

Program baitap5;

Const fi=’timso.inp’;

fo=’timso.out’;

Procedure xuli;

Var i,j,k:byte;

Begin

i:=1;

Repeat

If s[i] in [‘0’ ‘9’] inc(i) else delete(s,i,1);

Until i>length(s);

For i:=1 to 5 do

Begin

k:=i;

for j:=i to length(s)+i-5 do

if s[k]<s[j] then k:=j;

if k>i then delete(s,i,k-i);

end;

writeln(copy(s,1,5));

BEGIN

Assign(input,fi);reset(input);

Assign(output,fo);rewrite(output);

Read(s);

Xuli;

Close(input);

Close(output);

END

Bài tập 2: Rút gọn xâu

Cho xâu S1 chỉ gồm các chữ cái in thường với độ dài tối đa 250 kí tự Hãy viết chương trình để tạo ra xâu S2 từ xâu S1 bằng cách xóa các kí tự liên tiếp giống nhau trong xâu S1 và chỉ để lại một kí tự đại diện trong đoạn đó

Input: Đọc từ file văn bản XAU.INP chứa xâu S1 chỉ gồm các chữ cái in thường Output: Ghi ra file văn bản XAU.OUT là xâu S2 tìm được

Ví dụ:

* Ý tưởng:

- Duyệt từ đầu xâu đến cuối xâu, gặp hai kí tự liên tiếp khác nhau thì xóa đi một kí tự

- Ban đầu gán:i:=1; j:=2; {so sánh hai phần tử liên tiếp trong xâu}

Trang 9

- Khi kí tự đầu giống kí tự thứ 2: ta thực hiện xóa và dịch chuyển kí tự thứ hai

- Khi kí tự đầu khác kí tự thứ hai thì: i:=j; j:=j+1;

- Ta được xâu p là xâu sau khi đã xóa các kí tự trùng

* Viết chương trình:

Program rutgon;

Const fi=’trung.inp’;

fo=’trung.out’;

Var s,p:string;

i,j,n:integer;

BEGIN

Assign(input,fi); reset(input);

Assign(output,fo);rewrite(output);

P:=’’;

Read(s);

i:=1;

j:=2;

n:=length(s);

while j<n do

begin

while s[i]=s[j] do

begin

delete(s,j,1);

j:=j+1;

end;

while s[i]<>s[j] do

begin

p:=p+s[i];

i:=j;

j:=j+1;

end;

write(p);

close(input);

close(output);

END

Bài tập 3: Kí tự khác nhau

Cho xâu S (có độ dài vượt không quá 106) 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ự đó

* Ý tưởng:

- Với xâu có độ dài tối đa 106 ta sẽ sử dụng khai báo kiểu xâu ansistring

- Sử dụng mảng đánh dấu B[‘a’ ’z’] of longint để đếm số lần xuất hiện các

kí tự trong xâu S với B[ch]=d có nghĩa là kí tự ch xuất hiện d lần

Trang 10

- Lần theo các kí tự của mảng B ta được số lượng các kí tự khác nhau (tức số lượng phần tử có giá trị khác 0 trong mảng B) và tìm giá trị lớn nhất của mảng B ta

sẽ tìm được kí tự xuất hiện nhiều lần nhất

* Viết chương trình :

Program kitu;

Var s:ansistring;

B:array[‘a’ ’z’] of longint;

Procedure nhap;

Begin

Write(‘nhap xau s: ’);

Readln(s);

End;

Procedure xuli;

Var ch,kt:char;

i.max,dem:longint;

begin

for ch:=’a’ to ‘z’ do b[ch]:=0;

for i:=1 to length(s) do inc(b[s[i]]);

dem:=0; max:=0;

for ch:=’a’ to ‘z’ do

begin

if b[ch]<>0 then inc(dem);

if b[ch]> max then

begin

max:=b[ch];

kt:=ch;

end;

end;

writeln(‘so luong ki tu khac nhau: ’,dem);

writeln(‘ki tu xuat hien nhieu lan nhat la: ‘,kt,’,so lan xua hien ’,max);

end;

BEGIN

Nhap;

Xuli;

Readln;

END

2.3.4 Dạng bài tập về xâu Palindrome

Xâu Palindrome hay còn gọi là xâu đối xứng, có nghĩa một xâu khi đọc các

ký tự trong xâu từ trái sang phải cũng giống từ phải sang trái thì xâu đó được gọi là xâu Palindrome

Với những bài tập kiểm tra xâu Palindrome hay tìm kiếm xâu có tính chất Palindrome thì trước hết nên xây dựng hàm kiểm tra tính chất đối xứng của một xâu với độ phức tạp O(n), trên cơ sở đó chúng ta giải quyết những bài tập khó hơn

Ngày đăng: 05/06/2022, 10:15

HÌNH ẢNH LIÊN QUAN

5 Ord(ch) Cho mã của kí tự ch trong bảng mã ASCII 6Chr(n)Cho kí tự có mã là n - (SKKN 2022) mở rộng bài tập kiểu xâu nhằm bồi dưỡng học sinh khá, giỏi
5 Ord(ch) Cho mã của kí tự ch trong bảng mã ASCII 6Chr(n)Cho kí tự có mã là n (Trang 5)

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

w