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

NỘI DUNG ÔN THI HSG_TIN HỌC

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 (127.74 KB, 6 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>CHỦ ĐỀ 5: </b>


<b>Xâu ký tự (String) trong Pascal</b>



Xâu là gì? Để xử lý các chuỗi văn bản, Pascal đưa ra một kiểu dữ liệu mới gọ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.


<b>I./ Cách khai báo:</b>


<b>+ khai báo gián tiếp:</b>


<b>Type </b><tên kiểu string> =string[độ dài của xâu];
<b>Var </b><tên biến> : <tên kiểu string>;


<b>Ví dụ: </b>


<b>Type</b> tenhs=string[25];
<b>Var</b> hoten: tenhs
<b>+ khai báo trực tiếp</b>


<b>Var <tên biến>: STRING[độ dài của xâu];</b>
<b>Ví dụ:var</b> hoten :string[25];


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.


- 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.


<b>Ví dụ:</b>
Readln(st);


Writeln(st);


- Truy cập từng phần tử của xâu ký tự:<i> tương tự mảng 1 chiều</i>: 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.


<b>II./ Các thao tác trên xâu ký tự:</b>



<b>1./ Phép gán</b>



Giống như phép gán trong kiểu vô hướng khác, phép gán chuỗi là lệnh gắn một biến với một biểu
thức ký tự để trong cặp dấu nháy đơn ‘ ’


<b>Cú pháp: </b>


<b><Tên biến>:=’biểu thức ký tự’</b>
st1:=’Le’; st2:=’Thanh’;


<b>2/ Phép cộng xâu:</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

st1:=’Le’; st2:=’Thanh’; St=st1 + st2;
-> KQ: ‘Le Thanh’


<b>3/ Phép so sánh:</b>




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ự trong bả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 hồn tồn giống nhau (có độ dài như nhau).
Ví dụ: ‘FILENAME’ = ’FILENAME ‘


<b>4/ Các thủ tục và hàm chuẩn xử lý xâu ký tự</b>



<b>a. Hàm length(st):</b> cho độ dài thực của xâu ký tự
ví dụ: st:=’le thanh’ thì LENGTH(st) cho bằng 8.


<b>b/ Thủ tục DELETE(st, pos, num):</b> xóa num ký tự trong xâu st kể từ vị trí pos
Ví dụ: st= ‘FILENAME’


Delete(st,5,4) lúc đó st cho ra là ‘FILE’


<b>c/ Thủ tục INSERT(obj, st, pos):</b> Thủ tục cho kết quả bằng cách chèn xâu ký tự có tên là Obj
vàoxâu st tại vị trí pos, những ký tự đứng sau pos sẽ được dời vềphía sau của xâu ký tự obj.
Ví dụ: obj:= ‘Thanh ‘


st:=’Le Lam’;


INSERT(obj,st,4) lúc đó st=’Le Thanh Lam’;


<b>d/ Thủ tục STR(value, st):</b> Thủ tục này thực hiện việc chuyển đối giá trị kiểu số(value) sang
dạng xâu ký tự và gán cho biến st.



Ví dụ: n là một só nguyên có giá trị: n:=150;
STR(n:5,st) sẽ cho kết quả xâu st là: st=’ 150’;


<b>e/ Thủ tục VAL(st, value,code)</b> đối một xâu ký tự st sang dạng số và gán cho biến value, nếu
biến đối thành cơng thì code sẽ nhận giá trị bằng 0. ngược lại thì cho giá trị khác khơng


Ví dụ: VAL(‘123’,value,code) lúc này code sẽ nhận giá trị bằng 0 và value=123
<b>f/ Hàm COPY(st, pos, num):</b> sao chép trong xâu st, num ký tự tại vị trí pos,
Ví dụ: st=’Le Thanh Lam’


COPY(st,4,5) = ‘Thanh’;


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Ví dụ: CONCAT(‘Le ’,’Thanh ‘, ‘Lam’) = ‘Le Thanh Lam’;


<b>h/ Hàm POS(st1,st2):</b> hàm cho ta vị trí tìm thấy đầu tiên của xâu s1 trong xâu s2.
Ví dụ: POS(‘Lam’,‘Le Thanh Lam’) = 10;


<b>BÀI TẬP KIỂU XÂU (STRING)</b>



<b>Bài 1:</b>


Trong Pascal phép ghép xâu kí hiệu là dấu cộng (<b>+</b>), được sử dụng để ghép nhiều xâu thành
một.


<b>Ví dụ:</b> ‘Soc’ + ‘ ‘ + ‘Trang’  ‘Soc Trang’


VCT nhập vào xâu S1 và xâu S2 . Trả về kết quả là xâu S3, S3 được tạo bằng cách lấy S1
+ S2


<b>Ví dụ:</b>



Nhap xau S1= <b>Soc</b>
Nhap xau S2= <b>Trang</b>
Xau S3 la: <b>Soc Trang</b>
<b>Bài 2:</b>


Trong Pascal để in ra xâu đảo ngược của xâu ban đầu ta sử dụng vịng lặp lùi <i>(For</i>
<i>….Downto…do)</i>


<b>Ví dụ:</b> ‘Soc Trang’  ‘gnarT coS’


VCT nhập vào xâu S. In xâu S ra màn hình nhưng theo thứ tự đảo ngựơc
<b>Ví dụ:</b>


Nhap xau S= <b>Soc</b>
<b>Trang</b>


Xau dao cua S la:
<b>gnarT coS</b>


<b>Bài 3:</b>


Trong Pascal thủ tục Delete(st,vt,n) thực hiện việc xóa n kí tự của biến xâu st bắt đầu từ vị trí
vt.


<b>Ví dụ:</b> st:= ‘Soc Trang’  Delete(st,1,4)  ‘Trang’


VCT nhập vào xâu S. Xóa bỏ các khoảng trắng thừa bên trái xâu S và in kết quả ra màn
hình



<b>Ví dụ:</b>


Nhap xau S= <b>Soc Trang</b>


Xau S sau khi xoa la: <b>Soc Trang</b>
<b>Bài 4:</b>


Trong Pascal thủ tục Delete(st,vt,n) thực hiện việc xóa n kí tự của biến xâu st bắt đầu từ vị trí vt.
<b>Ví dụ:</b> st:= ‘Soc Trang’  Delete(st,1,4)  ‘Trang’


VCT nhập vào xâu S. Xóa bỏ các khoảng trắng thừa bên phải xâu S và in kết quả ra màn
hình


<b>Ví duï:</b>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Xau S sau khi xoa la: <b>Soc Trang</b>
<b>Bài 5:</b>


Trong Pascal thủ tục Insert(s1,s2,vt) chèn xâu s1 vào xâu s2, bắt đầu ở vị trí vt.


Ví dụ:


s1:= ‘ PC ‘


s2:=’IBM486’ Insert(s1,s2,4)  ‘IBM PC 486’


VCT nhập vào xâu S. Sau đó chèn vào xâu S tại vị trí đầu tiên một cụm kí tự ‘Kiem tra
HKII ’ và in kết quả ra màn hình


<b>Ví dụ:</b>



Nhap xau S= <b>mon Tin hoc</b>


Xau S sau khi chen la: <b>Kiem tra HKII mon </b>
<b>Tin hoc</b>


<b>Bài 6:</b>


Trong Pascal hàm Copy(s,vt,n) tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt.
<b>Ví dụ:</b> s:= ‘Bai hoc thu 9’  Copy(s,9,5)  ‘Thu 9’


VCT nhập vào xâu S và số nguyên dương n. Tạo xâu S1 gồm n kí tự liên tiếp nhau bắt đầu
từ vị trí đầu tiên của xâu S


<b>Ví dụ:</b>


Nhap xau S= <b>hoang dieu</b>
Nhap n = <b>5</b>


Xau S1 la: <b>hoang</b>
<b>Bài 7:</b>


Trong Pascal hàm Length(s) cho giá trị là độ dài xâu S.
<b>Ví dụ:</b> s:= ‘500 ki tu’  Length(s)  9


VCT nhập vào xâu S. Cho biết xâu S có độ dài chẵn hay lẻ
<b>Ví dụ:</b>


Nhap xau S = <b>500 ki tu</b>
Xau S co do dai le


<b>Bài 8:</b>


Trong Pascal hàm Pos(s1,s2) cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2


Ví dụ:


s1:= ‘Trang‘ ; s2:=’Soc Trang’
s1:= ‘Dieu‘ ; s2:=’Soc Trang’


Post(s1,s2)  5
Post(s1,s2)  0


VCT nhập vào xâu S1 và xâu S2. Cho biết xâu S1 có nằm trong xâu S2 không?
<b>Ví dụ:</b>


Nhap xau S1 = <b>Trang</b>
Nhap xau S2 = <b>Soc Trang</b>
Xau S1 co nam trong xau S2
<b>Bài 9:</b>


Trong Pascal hàm Upcase(ch) cho chữ cái in hoa ứng với chữ cái trong ch.


Ví dụ:


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

ch:= ‘D’ Upcase(ch)  ‘D’
VCT nhập vào một kí tự Ch. Đổi kí tự Ch thành kí tự in hoa
<b>Ví dụ:</b>


Nhap ki tu Ch = a



Ki tu Ch sau khi doi la: A
<b>Bài 10:</b>


VCT nhập vào xâu S. Đổi xâu S thành xâu in hoa
<b>Ví dụ:</b>


Nhap xau S = <b>Soc Trang</b>
Xau S sau khi doi la: <b>SOC </b>
<b>TRANG</b>


<b>Baøi 11:</b>


VCT nhập vào xâu S. Cho biết trong S có bao nhiêu kí tự là số
<b>Ví dụ:</b>


Nhap xau S = <b>Soc1 Trang8</b>
Xau S co 2 ki tu la so


<b>Baøi 12:</b>


VCT nhập vào xâu S. Cho biết trong S có bao nhiêu kí tự là chữ thường (‘a’’z’)
<b>Ví dụ:</b>


Nhap xau S = <b>Soc1 Trang8</b>
Xau S co 6 ki tu la chu thuong
<b>Baøi 13:</b>


VCT nhập vào xâu S. Cho biết trong S có bao nhiêu kí tự là chữ hoa (‘A’’Z’)
<b>Ví dụ:</b>



Nhap xau S = <b>Soc1 Trang8</b>
Xau S co 2 ki tu la chu hoa


<b>Baøi 14:</b>Viết chương trình nhập vào một xâu X, thực hiện yêu cầu sau
a) In độ dài xâu vừa nhập, In xâu theo thứ tự ngược lại


b) Nhập một kí tự bất kì ch. Đếm xem trong xâu có bao nhiêu kí tự giống ch
Ví dụ : x = hello


a) độ dài 5, olleh


b) Nhập ch = e, kết quả có 1 chữ e


<b>Bài 15:</b>Viết chương trình nhập vào một xâu X, thực hiện yêu cầu sau
a) In độ dài xâu vừa nhập, In hoa tất cả các kí tự trong xâu


b) Tạo ra xâu Y bao gồm các kí tự số của xâu X
Ví dụ : x = hello 11a13


a) độ dài 11
b) y = 1113


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

b) Tạo ra xâu Y bao gồm các nguyên âm của X
Ví dụ : x = banh tan thanh


a) độ dài 14, Banh Tan Thanh
b) y = aaa


<b>Bài 17:</b>Viết chương trình nhập vào một xâu họ tên X, thực hiện yêu cầu sau



a) Xoá bỏ các khoảng trắng thừa trong xâu ( Khoảng trắng ở đầu, cuối, giữa hai từ có hơn
một khoảng trắng là các khoảng trắng thừa)


b) Tách họ ra khỏi họ tên, in kết quả để kiểm tra
Ví dụ : x = _ _ _ banh tan thanh


a) banh tan thanh
b) họ : = banh


<b>Baøi 18:</b>Viết chương trình nhập vào một xâu X, thực hiện yêu cầu sau
a) In xâu vừa nhập, in độ dài xâu vừa nhập


b) Thay thế tất cả các cụm từ anh thành cụm từ em
Ví dụ : anh em con ong anh


a) độ dài = 18


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×