Sau ñoù cheøn vaøo xaâu S taïi vò trí ñaàu tieân moät cuïm kí töï ‘Kiem tra HKII ’ vaø in keát quaû ra maøn hình. Ví duï:[r]
(1)CHỦ ĐỀ 5:
Xâu ký tự (String) Pascal
Xâu gì? Để xử lý chuỗi văn bản, Pascal đưa kiểu liệu gọi xâu ký tự định nghĩa từ khóa STRING Xâu ký tự liệu bao gồm dãy ký tự bảng mã ASSCII
I./ Cách khai báo: + khai báo gián tiếp:
Type <tên kiểu string> =string[độ dài xâu]; Var <tên biến> : <tên kiểu string>;
Ví dụ:
Type tenhs=string[25]; Var hoten: tenhs + khai báo trực tiếp
Var <tên biến>: STRING[độ dài xâu]; Ví dụ:var hoten :string[25];
Xâu ký tự nhớ chiếm số byte số ký tự cực đại khai báo cộng với byte chứa số ký tự có xâu Độ dài tối đa xâu ký tự 255
- Cách nhập/xuất: Cách đọc hay viết kiểu STRING tương tự kiểu liệu khác, ta sử dụng thủ tục READ, WRITE
Ví dụ: Readln(st); Writeln(st);
- Truy cập phần tử xâu ký tự: tương tự mảng chiều: thông qua tên biến kiểu STRING số
Ví dụ:
St := 'Le Thanh Lam'; write(st[4]);
-> Kết quả: cho chữ T
II./ Các thao tác xâu ký tự:
1./ Phép gán
Giống phép gán kiểu vô hướng khác, phép gán chuỗi lệnh gắn biến với biểu thức ký tự để cặp dấu nháy đơn ‘ ’
Cú pháp:
<Tên biến>:=’biểu thức ký tự’ st1:=’Le’; st2:=’Thanh’;
2/ Phép cộng xâu:
(2)st1:=’Le’; st2:=’Thanh’; St=st1 + st2; -> KQ: ‘Le Thanh’
3/ Phép so sánh:
Hai xâu ký tự so sánh với phép so sánh =, >, <…
Nguyên tắc so sánh thực sau, chúng đem ký tự tương ứng với để so sánh, xâu có ký tự có số thứ tự bảng mã ASCII lớn xâu lớn
Hai xâu ký tự gọi chúng hồn tồn giống (có độ dài nhau) Ví dụ: ‘FILENAME’ = ’FILENAME ‘
4/ Các thủ tục hàm chuẩn xử lý xâu ký tự
a Hàm length(st): cho độ dài thực xâu ký tự ví dụ: st:=’le thanh’ LENGTH(st) cho
b/ Thủ tục DELETE(st, pos, num): xóa num ký tự xâu st kể từ vị trí pos Ví dụ: st= ‘FILENAME’
Delete(st,5,4) lúc st cho ‘FILE’
c/ Thủ tục INSERT(obj, st, pos): Thủ tục cho kết cách chèn xâu ký tự có tên Obj vàoxâu st vị trí pos, ký tự đứng sau pos dời vềphía sau xâu ký tự obj Ví dụ: obj:= ‘Thanh ‘
st:=’Le Lam’;
INSERT(obj,st,4) lúc st=’Le Thanh Lam’;
d/ Thủ tục STR(value, st): Thủ tục thực việc chuyển đối giá trị kiểu số(value) sang dạng xâu ký tự gán cho biến st
Ví dụ: n só nguyên có giá trị: n:=150; STR(n:5,st) cho kết xâu st là: st=’ 150’;
e/ Thủ tục VAL(st, value,code) đối xâu ký tự st sang dạng số gán cho biến value, biến đối thành cơng code nhận giá trị ngược lại cho giá trị khác khơng
Ví dụ: VAL(‘123’,value,code) lúc code nhận giá trị value=123 f/ Hàm COPY(st, pos, num): chép xâu st, num ký tự vị trí pos, Ví dụ: st=’Le Thanh Lam’
COPY(st,4,5) = ‘Thanh’;
(3)Ví dụ: CONCAT(‘Le ’,’Thanh ‘, ‘Lam’) = ‘Le Thanh Lam’;
h/ Hàm POS(st1,st2): hàm cho ta vị trí tìm thấy xâu s1 xâu s2 Ví dụ: POS(‘Lam’,‘Le Thanh Lam’) = 10;
BÀI TẬP KIỂU XÂU (STRING)
Bài 1:
Trong Pascal phép ghép xâu kí hiệu dấu cộng (+), sử dụng để ghép nhiều xâu thành
Ví dụ: ‘Soc’ + ‘ ‘ + ‘Trang’ ‘Soc Trang’
VCT nhập vào xâu S1 xâu S2 Trả kết xâu S3, S3 tạo cách lấy S1 + S2
Ví dụ:
Nhap xau S1= Soc Nhap xau S2= Trang Xau S3 la: Soc Trang Bài 2:
Trong Pascal để in xâu đảo ngược xâu ban đầu ta sử dụng vòng lặp lùi (For ….Downto…do)
Ví dụ: ‘Soc Trang’ ‘gnarT coS’
VCT nhập vào xâu S In xâu S hình theo thứ tự đảo ngựơc Ví dụ:
Nhap xau S= Soc Trang
Xau dao cua S la: gnarT coS
Bài 3:
Trong Pascal thủ tục Delete(st,vt,n) thực việc xóa n kí tự biến xâu st vị trí vt
Ví dụ: st:= ‘Soc Trang’ Delete(st,1,4) ‘Trang’
VCT nhập vào xâu S Xóa bỏ khoảng trắng thừa bên trái xâu S in kết hình
Ví dụ:
Nhap xau S= Soc Trang
Xau S sau xoa la: Soc Trang Bài 4:
Trong Pascal thủ tục Delete(st,vt,n) thực việc xóa n kí tự biến xâu st vị trí vt Ví dụ: st:= ‘Soc Trang’ Delete(st,1,4) ‘Trang’
VCT nhập vào xâu S Xóa bỏ khoảng trắng thừa bên phải xâu S in kết hình
Ví dụ:
(4)Xau S sau xoa la: Soc Trang Bài 5:
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 vị trí cụm kí tự ‘Kiem tra HKII ’ in kết hình
Ví duï:
Nhap xau S= mon Tin hoc
Xau S sau chen la: Kiem tra HKII mon Tin hoc
Bài 6:
Trong Pascal hàm Copy(s,vt,n) tạo xâu gồm n kí tự liên tiếp vị trí vt Ví dụ: s:= ‘Bai hoc thu 9’ Copy(s,9,5) ‘Thu 9’
VCT nhập vào xâu S số nguyên dương n Tạo xâu S1 gồm n kí tự liên tiếp vị trí xâu S
Ví dụ:
Nhap xau S= hoang dieu Nhap n = 5
Xau S1 la: hoang Bài 7:
Trong Pascal hàm Length(s) cho giá trị độ dài xâu S Ví dụ: s:= ‘500 ki tu’ Length(s)
VCT nhập vào xâu S Cho biết xâu S có độ dài chẵn hay lẻ Ví dụ:
Nhap xau S = 500 ki tu Xau S co dai le Bài 8:
Trong Pascal hàm Pos(s1,s2) cho vị trí xuất xâu s1 xâu s2
Ví dụ:
s1:= ‘Trang‘ ; s2:=’Soc Trang’ s1:= ‘Dieu‘ ; s2:=’Soc Trang’
Post(s1,s2) Post(s1,s2)
VCT nhập vào xâu S1 xâu S2 Cho biết xâu S1 có nằm xâu S2 không? Ví dụ:
Nhap xau S1 = Trang Nhap xau S2 = Soc Trang Xau S1 co nam xau S2 Bài 9:
Trong Pascal hàm Upcase(ch) cho chữ in hoa ứng với chữ ch
Ví dụ:
(5)ch:= ‘D’ Upcase(ch) ‘D’ VCT nhập vào kí tự Ch Đổi kí tự Ch thành kí tự in hoa Ví dụ:
Nhap ki tu Ch = a
Ki tu Ch sau doi la: A Bài 10:
VCT nhập vào xâu S Đổi xâu S thành xâu in hoa Ví dụ:
Nhap xau S = Soc Trang Xau S sau doi la: SOC TRANG
Baøi 11:
VCT nhập vào xâu S Cho biết S có kí tự số Ví dụ:
Nhap xau S = Soc1 Trang8 Xau S co ki tu la so
Baøi 12:
VCT nhập vào xâu S Cho biết S có kí tự chữ thường (‘a’’z’) Ví dụ:
Nhap xau S = Soc1 Trang8 Xau S co ki tu la chu thuong Baøi 13:
VCT nhập vào xâu S Cho biết S có kí tự chữ hoa (‘A’’Z’) Ví dụ:
Nhap xau S = Soc1 Trang8 Xau S co ki tu la chu hoa
Baøi 14:Viết chương trình nhập vào xâu X, thực 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 kí tự ch Đếm xem xâu có kí tự giống ch Ví dụ : x = hello
a) độ dài 5, olleh
b) Nhập ch = e, kết có chữ e
Bài 15:Viết chương trình nhập vào xâu X, thực yêu cầu sau a) In độ dài xâu vừa nhập, In hoa tất kí tự xâu
b) Tạo xâu Y bao gồm kí tự số xâu X Ví dụ : x = hello 11a13
a) độ dài 11 b) y = 1113
(6)b) Tạo xâu Y bao gồm nguyên âm X Ví dụ : x = banh tan
a) độ dài 14, Banh Tan Thanh b) y = aaa
Baøi 17:Viết chương trình nhập vào xâu họ tên X, thực yêu cầu sau
a) Xoá bỏ khoảng trắng thừa xâu ( Khoảng trắng đầu, cuối, hai từ có khoảng trắng khoảng trắng thừa)
b) Tách họ khỏi họ tên, in kết để kiểm tra Ví dụ : x = _ _ _ banh tan
a) banh tan b) họ : = banh
Bài 18:Viết chương trình nhập vào xâu X, thực yêu cầu sau a) In xâu vừa nhập, in độ dài xâu vừa nhập
b) Thay tất cụm từ anh thành cụm từ em Ví dụ : anh em ong anh
a) độ dài = 18