BỘ GIÁO DỤC VÀ ĐÀO TẠO
Bài giảng
KIỂU DỮ LIỆU XÂU
Chương trình Tin học, Lớp 11
TRƯỜNG TRUNG HỌC PHỔ THƠNG CHUN LÊ QUÝ ĐÔN
Thành phố Điện Biên Phủ, Tỉnh Điện Biên
Bài toán đặt vấn đề:
Nhập vào họ tên của hai học sinh, in ra màn hình họ tên dài hơn?
A
T
H
U
Y
B
N
G
U
Y
A
E
N
Hãy xác định
kiểu dữ liệu
của hai biến
A,B?
N
H
H
A
1. Khái niệm
Xâu là dãy các kí tự trong bộ mã ASCII.
Ví dụ:
A
T
I
N
1
2
3
H
4
O
5
6
C
7
Trong đó:
- Tên xâu: A;
- Mỗi kí tự gọi là một phần tử của xâu;
- Độ dài của xâu (số kí tự trong xâu): 7;
- Khi tham chiếu đến kí tự thứ i của xâu ta viết A[i].
Ví dụ: A[5]=‘H’.
2. Khai báo kiểu dữ liệu xâu (trong Pascal)
Var <tên biến> : String[độ dài lớn nhất];
Ví dụ: Var hoten: String[26];
- Khi khai báo xâu có thể bỏ qua phần khai báo [độ dài
lớn nhất], khi đó độ dài lớn nhất của xâu sẽ nhận giá trị
ngầm định là 255.
Ví dụ: Var chuthich :String;
3. Các thao tác xử lí xâu
a. Biểu thức xâu: Là biểu thức trong đó các tốn hạng là các biến
xâu, biến kí tự.
* Phép ghép xâu: kí hiệu “+” dùng để ghép nhiều xâu thành một xâu
Ví dụ:
‘ Dien’ + ‘ Bien’
‘Dien Bien’
* Phép so sánh: =,<>, <,<=,>,>=
* Quy ước:
- Xâu rỗng là xâu ‘’
- Xâu A = B nếu chúng giống hệt nhau.
- Xâu A > B nếu:
+ Kí tự đầu tiên khác nhau giữa
chúng ở xâu A có mã ASCII lớn hơn ở
xâu B.
+ Xâu B là đoạn đầu của xâu A.
Ví dụ
‘Tin hoc’ = ‘Tin hoc’
‘Dien Bien’ > ‘DienBien’
‘Xau’ < ‘Xau ki tu’
b. Các thủ tục và hàm chuẩn xử lí xâu
THỦ TỤC
1. Delete(S,vt,n)
2. Insert(S1,S2,vt)
Ý NGHĨA
VÍ DỤ
Xố n kí tự của xâu S
bắt đầu từ vị trí vt.
S = ‘Dien Bien’
Delete(S,1,5)
‘Bien’
Chèn xâu S1 vào xâu S2
bắt đầu từ vị trí vt.
S1=‘1’ S2=‘Hinh .2’
Insert(s1,s2,6)
’Hinh 1.2’
HÀM
1. Copy(S,vt,n)
2. Length(S)
Ý 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
Cho giá trị là độ dài của
xâu S
VÍ DỤ
S = ‘Tin hoc’
Copy(S,5,3)= ‘hoc’
S = ‘Xin chao’
Length(S) = 8
3. Pos(S1,S2)
Cho vị trí xuất hiện đầu
tiên của xâu S1 trong
xâu S2
S1=‘1’ S2=‘Hinh 1.2’
Pos(S1,S2) = 6
4. UpCase(ch)
Chuyển kí tự ch thành
chữ hoa
Ch=‘a’
UPCase(ch) = ‘A’
4. Một số ví dụ
1 Nhập vào họ tên của hai học sinh, in ra màn hình họ tên dài hơn?
CÁC BƯỚC:
1. Khai báo xâu
2. Nhập xâu
3. Xử lí xâu
THỂ HIỆN BẰNG PASCAL
Var a,b: string;
BEGIN
Write(‘ Nhap xau ho ten thu nhat :’); Readln(a);
Write(‘Nhap xau ho ten thu hai :’); Readln(b);
IF Length(a)>Length(b) Then write(a)
else write(b);
Readln;
END.
2
Nhập vào hai xâu từ bàn phím, kiểm tra xem kí tự đầu tiên
của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai
khơng?
CÁC BƯỚC:
1. Khai báo xâu : A,B
2. Nhập xâu
Dựa vào các
bước bên, hãy
hoàn thiện
chương trình?
3. Xử lí xâu, trong đó:
Kí tự đầu tiên của xâu A:
A[1]
Kí tự cuối cùng của xâu B: B[x] trong đó X là độ dài của xâu B
Hãy nhớ!
‘Xin chao cac ban!’
Var S : string[30]
S[1] = ‘X’
Xâu là dãy các kí tự trong bộ mã
ASCII.
Khai báo: tên xâu, độ dài lớn
nhất của xâu.
Tham chiếu phần tử của xâu:
Tên xâu[chỉ số]
Các thao tác xử lí thường dùng:
+ Phép ghép xâu, so sánh xâu;
+ Các thủ tục và hàm chuẩn.
Câu 1. Trong ngơn ngữ lập trình pascal, thủ
tục chèn xâu S1 vào xâu S2 bắt đầu từ vị trí
vt được viết.
A) Insert(vt, S1,S2)
B) Insert(S1,S2,vt)
C) Insert( S1,vt,S2)
D) Insert(S2,S1,vt)
Đáp án của bạn chính xác -Đáp án của bạn chưa chính xác
Đáp án của bạn chính xác
Đáp án của bạn chưa chính xác
Click chuộtCâutiếp tục của bạn là:
để trả tục
-- Click chuột để tiếp tục
Click chuộtCâutiếp lời của bạn là:
để trả lời
Click chuột để tiếp tục
CâuBạn lời chưa chính xác
Câu trả đã trả lời đúng
trả lời chưa đúng
đã trả
Câu trảBạnđúng lờichính xác
Câu trả lời đúng
lời
Bạn phải trả lời câu hỏi này
Bạn phải trả lời câu hỏi này
OK
Làm lại
Câu 2. Trong ngơn ngữ lập trình pascal,
xâu có ký tự tối đa.
A) 8 ký tự
B) 256 ký tự
C) 16 ký tự
D) 255 ký tự
Đáp án của bạn chính xác -Đáp án của bạn chưa chính xác
Đáp án của bạn chính xác
Đáp án của bạn chưa chính xác
Click chuộtCâutiếp tục của bạn là:
để trả tục
-- Click chuột để tiếp tục
Click chuộtCâutiếp lời của bạn là:
để trả lời
Click chuột để tiếp tục
CâuBạn lời chưa chính xác
Câu trả đã trả lời đúng
trả lời chưa đúng
đã trả
Câu trảBạnđúng lờichính xác
Câu trả lời đúng
lời
Bạn phải trả lời câu hỏi này
Bạn phải trả lời câu hỏi này
OK
Làm lại
Câu 3. Trong ngơn ngữ lập trình pascal, hàm
Upcase(ch) cho biết kết quả là:
A) Chữ cái in hoa tương ứng với ch
B) Xâu ch gồm toàn chữ hoa
C) Xâu ch toàn chữ thường
D) Biến xâu ch thành chữ thường
Đáp án của bạn chính xác -Đáp án của bạn chưa chính xác
Đáp án của bạn chính xác
Đáp án của bạn chưa chính xác
Click chuộtCâutiếp tục của bạn là:
để trả tục
-- Click chuột để tiếp tục
Click chuộtCâutiếp lời của bạn là:
để trả lời
Click chuột để tiếp tục
CâuBạn lời chưa chính xác
Câu trả đã trả lời đúng
trả lời chưa đúng
đã trả
Câu trảBạnđúng lờichính xác
Câu trả lời đúng
lời
Bạn phải trả lời câu hỏi này
Bạn phải trả lời câu hỏi này
OK
Làm lại
Quiz
Your Score {score}
Max Score {max-score}
Number of Quiz {total-attempts}
Attempts
Question Feedback/Review Information Will
Question Feedback/Review Information Will
Appear Here
Appear Here
Continue
Review Quiz