Cách so sánh 2 xâu trong pascal năm 2024

CHUYấN ĐỀ XÂU BỒI DƯỠNG HSG TIN HỌC

PHầN A. ĐặT VấN Đề

  1. Cơ sở khoa học và thực tiễn trong việc lựa chọn đề tài

Trong 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ểudữ liệu khỏc nhau, để tiện cho việc lập trỡnh và xử lý dữ liệu chỳng ta thờng đadữ 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ộttrong những kiểu dữ liệu chuẩn đú là kiểu xõu. Qua quỏ trỡnh tham gia giảng dạy và bồi dỡng học sinh giỏi chỳng tụinhậ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ụnglinh 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ễ.Với mong muốn phần nào giỳp học sinh cũng nh giỏo viờn trong việc tỡm ra lờigiả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, chỳng tụixin giới

Chuyờn đề bồi dỡng kiểu dữ liệu xõu

mà chỳng tụi đó ỏp dụng cú hiệuquả trong quỏ trỡnh giảng dạy.

II. Mục đớch, nhiệm vụ của việc thực hiện đề tài nghiờn cứu

Nhận thấy việc đa ra cỏc bài toỏn trờn kiểu dữ liệu xõu cựng phơng phỏpgiải chỳng bằng ngụn ngữ lập trỡnh nào đú

(hiện nay học sinh phổ thụng đang sử dụng ngụn ngữ lập trỡnh Pascal nờn cỏc vớ dụ và bài tập chỳng tụi giớithiệu sử dụng ngụn ngữ Free Pascal để minh họa)

là rất cần thiết nhằm giỳpcho 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ờnkiểu dữ liệu xõu và phõn dạng bài tập, từ đú ỏp dụng cho cỏc bài toỏn cụ thể.Chỳng tụi đề ra mục đớch, nhiệm vụ cụ thể của việc thực hiện đề tài:

- Giới thiệu cỏch khai bỏo và truy xuất đến kiểu dữ liệu xõu, trong phần này đề cập đến một kiểu dữ liệu xõu cú độ dài rất lớn phự hợp với thực tiễn cỏc bài toỏn mà cha đợc đề cập đến trong sỏch giỏo khoa là ansistring.

- 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 cha đợc giới thiệu trong bài 12 sỏch giỏokhoa tin học 11, đồng thời đa ra một số vớ dụ tơng ứng để học sinh dễ dàng sửdụng.- 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 chogiỏ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.- Giới thiệu một số bài tập ỏp dụng.

Vỡ thế, cấu trỳc nội dung gồm:

Mục I. Khai bỏo và truy xuất đến phần tử kiểu xõu. Mục II. Cỏc phộp hàm và thủ tục chuẩn trờn xõu Mục III. Cỏc dạng toỏn thờng gặp. Mục IV. Bài tập ỏp dụng.

III. Đối tợng, thời gian và phơng phỏp nghiờn cứu

1. Đối tợng nghiờn cứu

Bài viết SKKN "

Chuyờn đề bồi dỡng kiểu dữ liệu xõu

" cú đối tợngnghiờn cứu là

cỏc bài toỏn trờn dữ liệu kiểu xõu.

2. Thời gian nghiờn cứu

SKKN đợc thực hiện trong năm học 2013-2014

Cách so sánh 2 xâu trong pascal năm 2024

3. Phơng phỏp nghiờn cứu

Để hoàn thành SKKN này chỳng tụi sử dụng phối kết hợp nhiều phơng phỏp, trong đú phơng phỏp chủ yếu là nghiờn cứu tài liệu, tham khảo ý kiến của cấp trờn và đồng nghiệp.

Phần B. nội dung

Để xử lý các chuỗi văn bản, Pascal đưa ra một kiểu dữ liệu mớigọi là xâu ký tự và được định nghĩa bằng từ khóa STRING. Xâu ký tự làdữ liệu bao gồm một dãy các ký tự trong bảng mã ASSCII. Tuy nhiên độdài của String tối đa chỉ 255 mà thực tế thì ta thường gặp xâu có độ dàirất lớn cỡ hàng ngàn, vậy có cách nào để có thể khắc phục được điềuđó, chúng tôi xin trình bày một số nội dung mà chúng tôi đã tìm hiểu vàvận dụng có hiệu quả trong quá trình giảng dạy và bồi dưỡng đội tuyển.

  1. CÁCH KHAI BÁO VÀ TRUY XUẤT ĐẾN PHẦN TỬ XÂU1. Cách khai báo:

Var: STRING[độ dài của xâu]; - Xâu ký tự trong bộ nhớ nó chiếm số byte bằng số ký tự cực đạiđược khai báo cộng với byte đầu tiên chứa số ký tự hiện có của xâu. Độdài tối đa của xâu ký tự 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ểuchar có kích thước 16 bit nên mảng có kích thước tối đa 16 bit = 65535ký tự. + ansistring (chỉ có trong free pascal mà không có trongturbo pascal) có kích thước gần 2GB = 2

30

B nên thường được xem làvô hạn.

2. Cách nhập/xuất:

Cách đọc hay viết kiểu STRING cũng tương tự như các kiểu dữliệu khác, ta sử dụng các thủ tục READ, hoặc WRITE. Ví dụ: Readln(st); Writeln(st);

3. Truy cập từng phần tử của xâu ký tự:

Việc truy cập đến phần tử trong xâu tương tự mảng 1chiềuđược thông qua tên biến kiểu STRING và chỉ số của nó Ví dụ: St := 'Le Thanh Lam'; write(st[4]); -> Kết quả: cho ra chữ T.

II. CÁC THAO TÁC TRÊN XÂU KÝ TỰ1. Phép cộng xâu:

Ví dụ: st1:=’tin’; st2:=’ hoc’; St=st1 + st2; -> St = ‘tin hoc’

2. Phép so sánh:

Cách so sánh 2 xâu trong pascal năm 2024

Hai xâu ký tự có thể so sánh với nhau bằng các phép so sánh \=,\>, <… Nguyên tắc so sánh thực hiện như sau, chúng sẽ đem từng ký tựtương ứng với nhau để so sánh, xâu nào có ký tự có số thứ tự trongbảng mã ASCII lớn hơn thì xâu đó lớn hơn. Hai xâu ký tự được gọi là bằng nhau khi chúng hoàn toàn giốngnhau (có độ dài như nhau). Ví dụ: st1:=’tin’; st2:=’ hoc’; khi đó st1>st2

3. Các thủ tục và hàm chuẩn xử lý xâu ký tự

Hàm length(st)

: cho độ dài thực của xâu ký tự st Ví dụ: st:=’tin hoc’ thì LENGTH(st) cho bằng 7.b.

Hàm upcase(ch)

: Cho ký tự hoa của ký tự ch Ví dụ: ch:= 'a'; ch:= upcase(ch)

ch = 'A' Ví dụ: Viết đoạn chương trình nhập vào một xâu ký tự. Đổi xâu đósang chữ in hoa rồi in kết quả ra màn hìnhvar s,s1:string; i:integer;begin write('nhap xau s:'); readln(s); s1:=''; for i:=1 to length(s) do s1:=s1+ upcase(s[i]); write(s1); readln;end.c.

Hàm Ord(ch)

: Cho mã của ký tự ch trong bảng mã ASCII Ví dụ: ch:='a'; n:= Ord(ch)

n= 97d.

Hàm Chr(n)

: Cho ký tự có mã là n Ví dụ: Viết đoạn chương trình nhập vào một xâu ký tự. Đổi xâu đósang chữ thường rồi in xâu đó ra màn hình theo thứ tự ngược lại * Ý tưởng: Để thực hiện chuyển đổi ký tự ch ở dạng hoa sangdạng thường trước hết ta sử dụng hàm ord(ch) để lấy mã ký tự đó, sauđó sử dụng hàm chr(ord(ch)+32) để được ký tự thường của ký tự hoach (vì mã của ký tự hoa ch lệch mã ký tự thường tương ứng là 32 như:ord('A')=65, ord('a')=97)var s,s1:string; i:integer;begin write('nhap xau s:'); readln(s); s1:=''; for i:=1 to length(s) do if s[i] in ['A'..'Z'] then s1:=s1+ chr(ord(s[i])+32) else s1:=s1+s[i]; for i:\=length(s1) downto 1 do write(s1[i]);

Cách so sánh 2 xâu trong pascal năm 2024