Bài giảng:
Tiết 29 – 30
Bài 12: KIỂU XÂU
Chương trình Tin học, lớp 11
Nhóm tin học
Điện thoại di động: 0973178007
Trường THPT Mường Chà
huyện Mường Chà, tình Điện Biên
Tháng 1/2015
Dữ liệu trong bài toán không chỉ có kiểu số mà còn có cả kiểu phi số - dạng
kí tự.
Dữ liệu như thế ta gọi là kiểu xâu.
Ví dụ:
‘Tin hoc’ ‘THPT Muong Cha’
Vậy thế nào là kiểu
xâu?
Sử dụng kiểu xâu như
thế nào?
Chúng ta sẽ tìm hiểu trong bài học này.
1/22/2015
1/22/2015
Nhóm: Tin học
Nhóm: Tin học
Trường THPT Mường Chà
Trường THPT Mường Chà
1. Một số khái niệm:
1. Một số khái niệm:
Xâu: là dãy kí tự trong bộ mã ASCII.
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.
o
Là bộ mã cơ sở gồm 255 kí tự mà chúng ta đã học ở
chương trình lớp 10.
Bộ mã ASCII là
gì?
o
Ví dụ: Xâu ‘Tin hoc’ thì các kí tự như:
Xâu ‘Tin hoc’ có 7 kí tự thì độ dài của xâu bằng 7
o
Xâu có chứa khoảng trống ‘ ‘ có độ dài bằng 1
o
Xâu không có kí tự ‘’ có độ dài bằng 0
1/22/2015
1/22/2015
3
3
Trường THPT Mường Chà
Trường THPT Mường Chà
‘T’, ‘i’,
‘n’,
‘ ’, ‘h’,
‘o’,
‘c’ Là các phần tử của xâu.
Quy tắc, cách thức cho phép xác định:
o
Tên kiểu xâu;
o
Cách khai báo biến xâu;
o
Số lượng kí tự của xâu;
o
Các phép toán thao tác của xâu;
o
Cách tham chiếu tới phần tử của xâu.
T I N H O C
A =
Trong đó:
Khi tham chiếu đến phần tử thứ i
của xâu ta viết:
Tên xâu:
Mỗi kí tự gọi là:
Ví dụ
Độ dài của xâu (Số kí tự trong
xâu):
Ví dụ: A[5]=
‘H’.
A[i];
A[i];
A;
mỗi phần tử của xâu;
mỗi phần tử của xâu;
7;
7;
Tham chiếu đến phần tử của xâu:
<Tên biến xâu>[Chỉ số]
1. Một số khái niệm:
1. Một số khái niệm:
1/22/2015
1/22/2015
4
4
Trường THPT Mường Chà
Trường THPT Mường Chà
2. Khai báo
2. Khai báo
Var <tên biến xâu>:String[Độ dài lớn nhất của xâu];
Ý nghĩa của từ STRING?
STRING: tên kiểu xâu
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
nhận giá trị ngầm định là: 255.
Ví dụ: Var hoten: String[26];
1/22/2015
1/22/2015
5
5
Trường THPT Mường Chà
Trường THPT Mường Chà
Tên biến xâu
Độ dài của xâu
Var hoten: String;
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
a) Phép ghép xâu
Ví dụ:
‘Ha’ + ‘Noi ‘HaNoi’
‘Ha’ + ‘ Noi ‘Ha Noi’
Chương trình
Var st: string;
Begin
st:=‘Ha’ + ‘Noi’;
write(st);
readln
End.
Kết quả sẽ là:
‘HaNoi’
Phép ghép xâu là gì?
Phép ghép xâu: kí hiệu là
+, được sử dụng để ghép
nhiều xâu thành 1 xâu
1/22/2015
1/22/2015
6
6
Trường THPT Mường Chà
Trường THPT Mường Chà
b) Phép so sánh xâu
Ví dụ:
Var ss:boolean;
Begin
ss:=‘AB’ < ‘AC’;
write(ss);
readln
End.
Kết quả là: True
Còn các phép so sánh
nào nữa?
Các phép toán so sánh:
=,<>, <,<=,>,>=
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
7
7
Trường THPT Mường Chà
Trường THPT Mường Chà
* Quy ước:
- 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.
‘Tin hoc’ = ‘Tin hoc’
‘Ha N i’ ‘Ha N m’
b) Phép so sánh xâu
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
8
8
Trường THPT Mường Chà
Trường THPT Mường Chà
>
o aao
c) Các hàm và thủ tục chuẩn dùng để xử lí xâu
* Thủ tục DELETE
Cấu trúc chung:
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
Ví dụ:
Giá trị st Thao tác Kết quả
‘abcdef ’ Delete(st,5,2);
‘Phu Thanh’ Delete(st,1,4);
‘abcd’
‘Thanh’
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
9
9
Trường THPT Mường Chà
Trường THPT Mường Chà
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
10
10
* Thủ tục INSERT
Cấu trúc chung:
INSERT(s1, s2, vt)
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 Kết quả
‘PC‘ ‘ IBM’ Insert(s1,s2,4);
‘1’ ‘H .2’ Insert(s1,s2,3);
‘ IBPCM’
‘H 1.2’
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
11
11
Trường THPT Mường Chà
Trường THPT Mường Chà
c) Các hàm và thủ tục chuẩn dùng để xử lí xâu
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
12
12
* Hàm COPY
Cấu trúc chung:
COPY(S, vt, N)
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 Biểu thức
Kết quả
‘bai hoc thu 9’ Copy(s,9,5);
‘thu 9’
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
13
13
Trường THPT Mường Chà
Trường THPT Mường Chà
c) Các hàm và thủ tục chuẩn dùng để xử lí xâu
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
14
14
* Hàm LENGTH
Cấu trúc chung:
Cho giá trị là độ dài xâu S
LENGTH(S)
LENGTH là tên hàm
S là một biểu thức xâu ký tự
Ví dụ:
Giá trị s Biểu thức Kết quả
‘500 ki tu’ Length(s);
‘Lop 11B3’ Length(s);
9
8
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
15
15
Trường THPT Mường Chà
Trường THPT Mường Chà
c) Các hàm và thủ tục chuẩn dùng để xử lí xâu
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
16
16
* Hàm POS
Cấu trúc chung:
POS(S1,S2)
Cho 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)
‘abcdef’ Pos(‘k’,s2 )
3
0
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
17
17
Trường THPT Mường Chà
Trường THPT Mường Chà
c) Các hàm và thủ tục chuẩn dùng để xử lí xâu
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
18
18
* Hàm UPCASE
Cấu trúc chung:
UPCASE(ch)
Cho giá trị là chữ cái in hoa của ch
Ví dụ:
Giá trị ch Biểu thức Kết quả
‘d’ Upcase(ch)
‘E’ Upcase(ch)
‘D’
‘E’
3. Các thao tác xử lí xâu
3. Các thao tác xử lí xâu
1/22/2015
1/22/2015
19
19
Trường THPT Mường Chà
Trường THPT Mường Chà
c) Các hàm và thủ tục chuẩn dùng để xử lí xâu
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
20
20
Ví dụ 1:
Viết chương trình nhập vào họ tên của hai người vào 2 biến xâu và
đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau.
4. Một số ví dụ
4. Một số ví dụ
Hãy xác định dữ liệu
vào(Input) và dữ liệu
ra(Output) ?
Input: 2 xâu với họ tên của hai người.
Output: Đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa xâu
nhập sau.
Trong bài này cần sử dụng
hàm và thủ tục nào ?
Hàm cần sử dụng:
Hàm Length.
1/22/2015
1/22/2015
21
21
Trường THPT Mường Chà
Trường THPT Mường Chà
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
22
22
Ví dụ 1:
4. Một số ví dụ
4. Một số ví dụ
Ý tưởng:
o
Nhập vào 2 xâu a và b;
o
Tính độ dài của 2 xâu đó;
o
So sánh độ dài của 2 xâu nếu xâu a có độ dài lớn hơn xâu b thì
đưa ra màn hình xâu a ngược lại đưa ra màn hình xâu b.
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
23
23
Ví dụ 2:
Viết chương trình nhập vào từ bàn phím xâu s1, tạo xâu s2 gồm tất
cả các chữ số trong xâu s1 (giữ nguyên thứ tự xuất hiện của chúng) và
đưa kết quả ra ngoài màn hình.
Hãy xác định dữ liệu
vào(Input) và dữ liệu
ra(Output) ?
Input: xâu s1.
Output: Đưa ra màn hình xâu s2 gồm tất cả các chữ số trong xâu s1
(giữ nguyên thứ tự xuất hiện của chúng).
Trong bài này cần sử dụng
hàm và thủ tục nào ?
Hàm cần sử dụng:
Hàm Length.
4. Một số ví dụ
4. Một số ví dụ
1/22/2015
1/22/2015
24
24
Trường THPT Mường Chà
Trường THPT Mường Chà
1/22/2015
1/22/2015
Trường THPT Mường Chà
Trường THPT Mường Chà
25
25
Ý tưởng:
o
Nhập vào xâu s1;
o
Tạo xâu s2 rỗng, tính độ dài xâu s1;
o
Tìm từ kí tự đầu tiên đến kí tự cuối cùng của xâu s1, nếu có kí
tự nào >= ‘0’ và <= ‘9’ thì ghi vào xâu s2;
o
Đưa ra màn hình xâu s2.
Ví dụ 2:
4. Một số ví dụ
4. Một số ví dụ