Bài 12. Kiểu xâu
Chia sẻ bởi Hoàng Hồng Ân |
Ngày 10/05/2019 |
111
Chia sẻ tài liệu: Bài 12. Kiểu xâu thuộc Tin học 11
Nội dung tài liệu:
Câu hỏi:
Cho chuỗi ký tự sau: ABCDEF.
Hãy khai báo một mảng một chiều để chứa các kí tự trên (Char).
C1: TYPE Mang = ARRAY [ 1 . . 6 ] OF Char;
VAR Chu : Mang;
C2: VAR Chu : ARRAY [ 1 . . 6 ] OF Char;
Trả lời :
Khai báo kiểu dữ liệu xâu.
Các thao tác xử lí xâu.
Một số ví dụ
1.Một số khái niệm.
2. Cách khai báo.
1. Cách tham chiếu
2. Phép ghép xâu
3. Phép so sánh
4. Các thủ tục chuẩn
KIỂU DỮ LIỆU XÂU
I. Khai báo kiểu dữ liệu xâu:
-Xâu là dãy các kí tự trong bảng ASCII. Một xâu có không quá 255 kí tự.
Ví dụ: ‘Tin hoc’
-Độ dài xâu là số lượng kí tự trong một xâu.
Ví dụ: Độ dài xâu trên là 7. (minh hoạ)
-Xâu rỗng là xâu có độ dài 0, được biểu diễn bằng cặp dấu nháy đơn.
1. Một số khái niệm:
KIỂU DỮ LIỆU XÂU
2. Cách khai báo:
a. Cách 1:
VAR : < Tên kiểu> ;
TYPE = STRING [ n ] ;
Từ khoá
Độ dài lớn nhất của xâu
không vượt quá 255 kí tự.
Ví dụ: TYPE Name = STRING[30];
VAR Ten1 : Name;
KIỂU DỮ LIỆU XÂU
Theo quy tắc đặt tên của TP
2. Cách khai báo:
b. Cách 2:
VAR : STRING [ n ];
Ví dụ: VAR ten1: STRING[10];
VAR Hoten : STRING[30];
KIỂU DỮ LIỆU XÂU
Chú ý: n là độ dài tối đa của xâu. Nếu không đưa n vào tức chỉ có STRING thì độ dài lúc này được mặc định là 255.
Ví dụ: VAR ten2: STRING;
II. Các thao tác xử lí xâu:
1. Cách tham chiếu đến một phần tử của xâu:
2. Phép ghép xâu: ( + )
S1+S2+…+Sn.
S1 = ’Hoa’
S2 = ’hong’
S1 + S2 =>
‘Hoa
hong’
Ví dụ:
KIỂU DỮ LIỆU XÂU
Ví dụ: Ten1[ 5 ], Ten1[ 1 ].
Tên biến [chỉ số]
3. Phép so sánh: =, <>, >, <, >=, <=.
KIỂU DỮ LIỆU XÂU
- Nếu không có cặp kí tự nào khác nhau thì có 2 trường hợp:
Hai xâu có độ dài bằng nhau thì bằng nhau.
Hai xâu có độ dài khác nhau thì xâu nào có độ dài lớn hơn sẽ lớn hơn.
So sánh lần lượt từng cặp kí tự của 2 xâu từ trái sang phải. (minh hoạ)
- Nếu gặp cặp kí tự khác nhau đầu tiên thì xâu nào có kí tự có mã số trong bảng mã ASCII lớn hơn là lớn hơn.
KIỂU DỮ LIỆU XÂU
3. Phép so sánh:
Ví dụ:
‘abcdik’
và
‘abh’
<
‘agh’
và
‘aghab’
<
4. Các thủ tục chuẩn:
Thủ tục Delete(st,vt,n);
ho
KIỂU DỮ LIỆU XÂU
Xoá trong xâu St từ trái sang phải đi n kí tự bắt đầu từ vị trí vt.
Ví dụ: St = ’tin hoc’
Delete(St,4,3);
St =’tin
c’
KIỂU DỮ LIỆU XÂU
Thủ tục Insert(S1,S2,vt);
S = ‘Abc’
St =
St = ‘def’
’
‘
Insert(S,St,2);
Ví dụ:
ef
Abc
d
Chèn xâu S1 vào xâu S2 tại vị trí vt.
Chú ý: Delete và Insert đều làm thay đổi xâu St
Ví dụ1:
Xâu S1: ‘em la’
S2: ‘hoc sinh gioi’
+ Cho biết độ dài của mỗi xâu?
+ Ghép hai xâu đó lại thi ta được xâu gì?
+ Thực hiện thủ tục DELETE(s2,4,5)
thì ta được xâu gì?
+ Chèn xâu s1 vào xâu s2 thì dùng thủ
tục gì và kết quả là gì?
KIỂU DỮ LIỆU XÂU
III. Một số ví dụ:
KIỂU DỮ LIỆU XÂU
Ví dụ2:
Viết chương trình nhập vào một xâu từ bàn phím. Đưa ra màn hình xâu sau khi đã xoá kí tự đầu xâu.
CHƯƠNG TRÌNH:
Var ST : STRING [30];
BEGIN
Write(‘NHAP VAO MOT XAU:’);
Readln(ST);
Delete ( St,1,1);
Write (‘XÂU SAU KHI DA XOA LA: ’, ST);
Readln ;
END.
MINH HOẠ
Biểu diễn xâu trong bộ nhớ:
Với một xâu có độ dài là n thì trong bộ nhớ dành ra n+1 byte để lưu trữ xâu đó. Trong đó byte đầu tiên chứa tổng số ký tự thực có trong xâu (bằng cách chứa kí tự có mã ASCII là độ dài hiện tại của xâu), các byte tiếp theo chứa các ký tự của xâu.
Ví dụ: Biểu diễn xâu sau trong bộ nhớ:
D
a
y
-
l
a
-
m
o
t
-
x
a
u
D
a
y
-
l
a
-
m
o
t
-
x
a
u
14
10
12
3
4
9
11
1
2
7
8
6
5
14
13
KIỂU DỮ LIỆU XÂU
KIỂU DỮ LIỆU XÂU
Ví dụ2:
Viết chương trình nhập vào một xâu từ bàn phím. Đưa ra màn hình xâu sau khi đã xoá các kí tự trắng dư thừa đầu xâu.
VAR St:String[10];
BEGIN
Write(‘Nhap vao mot xau: ’);
Readln(St);
While (St[1] = # 32 Do Delete(S1,1,1);
Realdln;
END.
5
Writeln (‘Xau sau khi xoa la:’, st);
Màn hình
Nhap vao mot xau:
Xau sau khi xoa la:
]
# 32
# 32
# 32
A
N
N
A
0
1
3
2
…
4
10
St
]
]
2
N
A
ENQ
ETX
STX
EOT
Củng cố bài:
Một số khái niệm.
2.Cách khai báo.
3.Cách tham chiếu.
4.Phép ghép xâu.
5. Phép so sánh.
6.Các thủ tục chuẩn.
KIỂU DỮ LIỆU XÂU
S = ‘Tin hoc’
7
6
5
4
3
2
1
KIỂU DỮ LIỆU XÂU
]
3. Phép so sánh: =, <>, >, <, >=, <=.
t
n
h
=
=> ‘tinhoc’ = ‘tinhoc’
i
c
6
t
n
i
c
6
h
o
o
KIỂU DỮ LIỆU XÂU
Ví dụ: xâu S1 = ‘tinhoc’
và xâu S2 = ‘tinHoc’
=> S1 > S2
Cho chuỗi ký tự sau: ABCDEF.
Hãy khai báo một mảng một chiều để chứa các kí tự trên (Char).
C1: TYPE Mang = ARRAY [ 1 . . 6 ] OF Char;
VAR Chu : Mang;
C2: VAR Chu : ARRAY [ 1 . . 6 ] OF Char;
Trả lời :
Khai báo kiểu dữ liệu xâu.
Các thao tác xử lí xâu.
Một số ví dụ
1.Một số khái niệm.
2. Cách khai báo.
1. Cách tham chiếu
2. Phép ghép xâu
3. Phép so sánh
4. Các thủ tục chuẩn
KIỂU DỮ LIỆU XÂU
I. Khai báo kiểu dữ liệu xâu:
-Xâu là dãy các kí tự trong bảng ASCII. Một xâu có không quá 255 kí tự.
Ví dụ: ‘Tin hoc’
-Độ dài xâu là số lượng kí tự trong một xâu.
Ví dụ: Độ dài xâu trên là 7. (minh hoạ)
-Xâu rỗng là xâu có độ dài 0, được biểu diễn bằng cặp dấu nháy đơn.
1. Một số khái niệm:
KIỂU DỮ LIỆU XÂU
2. Cách khai báo:
a. Cách 1:
VAR
TYPE
Từ khoá
Độ dài lớn nhất của xâu
không vượt quá 255 kí tự.
Ví dụ: TYPE Name = STRING[30];
VAR Ten1 : Name;
KIỂU DỮ LIỆU XÂU
Theo quy tắc đặt tên của TP
2. Cách khai báo:
b. Cách 2:
VAR
Ví dụ: VAR ten1: STRING[10];
VAR Hoten : STRING[30];
KIỂU DỮ LIỆU XÂU
Chú ý: n là độ dài tối đa của xâu. Nếu không đưa n vào tức chỉ có STRING thì độ dài lúc này được mặc định là 255.
Ví dụ: VAR ten2: STRING;
II. Các thao tác xử lí xâu:
1. Cách tham chiếu đến một phần tử của xâu:
2. Phép ghép xâu: ( + )
S1+S2+…+Sn.
S1 = ’Hoa’
S2 = ’hong’
S1 + S2 =>
‘Hoa
hong’
Ví dụ:
KIỂU DỮ LIỆU XÂU
Ví dụ: Ten1[ 5 ], Ten1[ 1 ].
Tên biến [chỉ số]
3. Phép so sánh: =, <>, >, <, >=, <=.
KIỂU DỮ LIỆU XÂU
- Nếu không có cặp kí tự nào khác nhau thì có 2 trường hợp:
Hai xâu có độ dài bằng nhau thì bằng nhau.
Hai xâu có độ dài khác nhau thì xâu nào có độ dài lớn hơn sẽ lớn hơn.
So sánh lần lượt từng cặp kí tự của 2 xâu từ trái sang phải. (minh hoạ)
- Nếu gặp cặp kí tự khác nhau đầu tiên thì xâu nào có kí tự có mã số trong bảng mã ASCII lớn hơn là lớn hơn.
KIỂU DỮ LIỆU XÂU
3. Phép so sánh:
Ví dụ:
‘abcdik’
và
‘abh’
<
‘agh’
và
‘aghab’
<
4. Các thủ tục chuẩn:
Thủ tục Delete(st,vt,n);
ho
KIỂU DỮ LIỆU XÂU
Xoá trong xâu St từ trái sang phải đi n kí tự bắt đầu từ vị trí vt.
Ví dụ: St = ’tin hoc’
Delete(St,4,3);
St =’tin
c’
KIỂU DỮ LIỆU XÂU
Thủ tục Insert(S1,S2,vt);
S = ‘Abc’
St =
St = ‘def’
’
‘
Insert(S,St,2);
Ví dụ:
ef
Abc
d
Chèn xâu S1 vào xâu S2 tại vị trí vt.
Chú ý: Delete và Insert đều làm thay đổi xâu St
Ví dụ1:
Xâu S1: ‘em la’
S2: ‘hoc sinh gioi’
+ Cho biết độ dài của mỗi xâu?
+ Ghép hai xâu đó lại thi ta được xâu gì?
+ Thực hiện thủ tục DELETE(s2,4,5)
thì ta được xâu gì?
+ Chèn xâu s1 vào xâu s2 thì dùng thủ
tục gì và kết quả là gì?
KIỂU DỮ LIỆU XÂU
III. Một số ví dụ:
KIỂU DỮ LIỆU XÂU
Ví dụ2:
Viết chương trình nhập vào một xâu từ bàn phím. Đưa ra màn hình xâu sau khi đã xoá kí tự đầu xâu.
CHƯƠNG TRÌNH:
Var ST : STRING [30];
BEGIN
Write(‘NHAP VAO MOT XAU:’);
Readln(ST);
Delete ( St,1,1);
Write (‘XÂU SAU KHI DA XOA LA: ’, ST);
Readln ;
END.
MINH HOẠ
Biểu diễn xâu trong bộ nhớ:
Với một xâu có độ dài là n thì trong bộ nhớ dành ra n+1 byte để lưu trữ xâu đó. Trong đó byte đầu tiên chứa tổng số ký tự thực có trong xâu (bằng cách chứa kí tự có mã ASCII là độ dài hiện tại của xâu), các byte tiếp theo chứa các ký tự của xâu.
Ví dụ: Biểu diễn xâu sau trong bộ nhớ:
D
a
y
-
l
a
-
m
o
t
-
x
a
u
D
a
y
-
l
a
-
m
o
t
-
x
a
u
14
10
12
3
4
9
11
1
2
7
8
6
5
14
13
KIỂU DỮ LIỆU XÂU
KIỂU DỮ LIỆU XÂU
Ví dụ2:
Viết chương trình nhập vào một xâu từ bàn phím. Đưa ra màn hình xâu sau khi đã xoá các kí tự trắng dư thừa đầu xâu.
VAR St:String[10];
BEGIN
Write(‘Nhap vao mot xau: ’);
Readln(St);
While (St[1] = # 32 Do Delete(S1,1,1);
Realdln;
END.
5
Writeln (‘Xau sau khi xoa la:’, st);
Màn hình
Nhap vao mot xau:
Xau sau khi xoa la:
]
# 32
# 32
# 32
A
N
N
A
0
1
3
2
…
4
10
St
]
]
2
N
A
ENQ
ETX
STX
EOT
Củng cố bài:
Một số khái niệm.
2.Cách khai báo.
3.Cách tham chiếu.
4.Phép ghép xâu.
5. Phép so sánh.
6.Các thủ tục chuẩn.
KIỂU DỮ LIỆU XÂU
S = ‘Tin hoc’
7
6
5
4
3
2
1
KIỂU DỮ LIỆU XÂU
]
3. Phép so sánh: =, <>, >, <, >=, <=.
t
n
h
=
=> ‘tinhoc’ = ‘tinhoc’
i
c
6
t
n
i
c
6
h
o
o
KIỂU DỮ LIỆU XÂU
Ví dụ: xâu S1 = ‘tinhoc’
và xâu S2 = ‘tinHoc’
=> S1 > S2
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Hoàng Hồng Ân
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)