Chương IV
Kiểu Dữ
Liệu Có
Cấu Trúc
Ta có khai báo một biến mảng một chiều tên là Lop
gồm 50 phần tử, mỗi phần tử của mảng thuộc kiểu
kí tự như sau:
Var Lop: array [1..50] of char ;
Yêu cầu: Nhập dữ liệu cho mảng trên. Giả sử dữ
liệu gồm các kí tự sau: TINHOC
Write( ‘Cho biet so luong phan tu cua mang:’ );
Readln(n);
For i:= 1 to n do
Readln (Lop[i]);
Baøi 12: Kieåu
Xaâu
* Một số khái niệm
- Xâu là dãy các kí tự trong bảng ASCII.
VD: ‘Tin hoc’ Hoặc ‘ ABC123’ ...
- Mỗi ký tự được gọi là một phần tử của xâu
- Số lượng ký tự trong một xâu được gọi là độ dài
của xâu
- Xâu có độ dài bằng 0 gọi là xâu rỗng và được ký
hiệu là ‘’
1/ Khai báo
Cú pháp:
Var
Var
biếnxâu>:
xâu>: string
string [độ
[độ dài
dài lớn
lớn nhất
nhất của
của
xâu];
xâu];
Trong đó:
String: là từ khóa dùng để khai báo biến kiểu dữ liệu xâu
Tên biến xâu: do người lập trình đặt
Độ dài lớn nhất của xâu: không quá 255 kí tự
Vd: Var Hoten: string [40];
Lưu ý: Trong khai báo có thể bỏ qua phần độ dài lớn nhất. Lúc đó
độ dài lớn nhất ngầm định là 255
Vd: Var Hoten: string ;
Cách tham chiếu đến một phần tử của xâu:
a. Cú pháp
b. Ví dụ:
<Tên biến xâu>[chỉ số]
Cho xâu Hoten = ‘SOC TRANG’
1
Hoten
2
3
S O C
4
5
6
7
8
9 … 30
T
R A N G
Tham chiếu đến phần tử thứ 5:
Hoten[5]= ‘T’
2/ Các thao tác xử lí Xâu
a. Phép ghép xâu
Ký hiệu là: dấu +
Ý nghĩa: Được sử dụng để ghép nhiều xâu thành 1.
Lưu ý: Ta có thể thực hiện phép ghép xâu đối với các hằng và các biến
xâu
Vd: Giả sử ta có xâu s1= ‘Pascal’
‘Tin’ + ‘Hoc’
‘Tin’ + ‘ ‘ +
‘Hoc’
‘Tin’ + ‘Hoc’ + S1
‘TinHoc’
‘Tin Hoc’
‘TinHocPascal’
b. Phép so sánh
Ký hiệu : >, <, <>, =, >=, <=
Ý nghĩa: Dùng để so sánh hai xâu
Việc so sánh 2 xâu được thực hiện theo các quy tắc sau:
* 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
< ‘Em’
Vd: ‘Anh’
* Nếu A và B là các xâu có độ dài khác nhau và A là đoạn
đầu của B thì A nhỏ hơn B
<
Vd: ‘Tin hoc’
‘Tin hoc Pascal’
* Hai xâu được coi là bằng nhau nếu như chúng giống
nhau hoàn toàn =
Vd: ‘Tin hoc’
‘Tin hoc’
c. Thủ tục Delete( st, vt, n)
Ý nghĩa: 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
Ví dụ
Giá trị st
Thao tác
Kết quả
‘abcdef’
Delete(st,5,2)
‘abcd’
‘Tinhoc’
Delete(st,4,3)
‘Tin’
d. Thủ tục Insert( s1, s2, vt)
Ý nghĩa: Thực hiện việc chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt
Ví dụ
Giá trị s1
Giá trị s2
Thao tác
‘PC’
‘IBM486’
Insert(s1,s2,4)
‘Hoc’
‘Tin Pascal’ Insert(s1,s2,4)
Kết quả
‘IBMPC486’
‘TinHoc Pascal’
e. Hàm copy( S, vt, N)
Ý nghĩa: Tạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S
Ví dụ
Giá trị S
‘abcdef’
‘Tin hoc’
Thao tác
Copy(S,2,3)
Copy(S,5,3)
Kết quả
‘bcd’
‘hoc’
f. Hàm length(S)
Ý nghĩa: Trả về giá trị là độ dài xâu S
Ví dụ
Giá trị S
‘abcdef’
Thao tác
Length(S)
Kết quả
6
g. Hàm Pos(s1, s2)
Ý nghĩa: Trả về giá trị là vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2
Ví dụ
Giá trị S2
Biểu thức
Kết quả
‘abcdef’
Pos(‘cd’, s2)
3
‘Tin hoc’
Pos (‘hoc’, s2)
5
h. Hàm upcase(ch)
Ý nghĩa: Cho chữ cái in hoa ứng với chữ cái trong ch
Ví dụ
Giá trị ch
‘d’
Biểu thức
Upcase(ch)
Kết quả
‘D’
Khai báo nào sau đây là đúng?
A) Var x: string [25];
B) Var x: string [300];
C) Var x=string [40];
D) Var x: string 40;
Bạn
Bạn phải
phải trả
trả lời
lời câu
câu hỏi
hỏi
trước
trước khi
khi tiếp
tiếp tục
tục
Bạn
Bạn đã
đã trả
trả lời
lời đúng.
đúng. Hãy
Hãy
nháy
nháy chuột
chuột để
để tiếp
tiếp tục
tục
Rất
Rất tiếc
tiếc bạn
bạn đã
đã trả
trả lời
lời sai.
sai.
Hãy
Hãy nháy
nháy chuột
chuột để
để tiếp
tiếp tục
tục
Chọn
Bỏ chọn
Hãy cho biết độ dài của xâu S với S= 'TP Soc
Trang'
A) 10
B) 12
C) 3
D) 15
Bạn
Bạn phải
phải trả
trả lời
lời câu
câu hỏi
hỏi
trước
trước khi
khi tiếp
tiếp tục
tục
Bạn
Bạn đã
đã trả
trả lời
lời đúng.
đúng. Hãy
Hãy
nháy
nháy chuột
chuột để
để tiếp
tiếp tục
tục
Rất
Rất tiếc
tiếc bạn
bạn đã
đã trả
trả lời
lời sai.
sai.
Hãy
Hãy nháy
nháy chuột
chuột để
để tiếp
tiếp tục
tục
Chọn
Bỏ chọn
Cho xâu S= 'TP Soc Trang' . Khi muốn tham
chiếu đến phần tử thứ 6 trong xâu S ta viết:
A) S[C]
B) S(6)
C) S[6]
D) Tất cả đều sai
Bạn
Bạn phải
phải trả
trả lời
lời câu
câu hỏi
hỏi
trước
trước khi
khi tiếp
tiếp tục
tục
Bạn
Bạn đã
đã trả
trả lời
lời đúng.
đúng. Hãy
Hãy
nháy
nháy chuột
chuột để
để tiếp
tiếp tục
tục
Rất
Rất tiếc
tiếc bạn
bạn đã
đã trả
trả lời
lời sai.
sai.
Hãy
Hãy nháy
nháy chuột
chuột để
để tiếp
tiếp tục
tục
Chọn
Bỏ chọn
Củng cố
Your Score {score}
Max Score {max-score}
Number of Quiz {total-attempts}
Attempts
Question
Question Feedback/Review
Feedback/Review Information
Information
Will
Will Appear
Appear Here
Here
Continue
Review Quiz
Xin cảm ơn
quý thầy cô
và các em
đã theo dõi
GV:VÕ NGỌC LƯƠNG