Bài 12. Kiểu xâu
Chia sẻ bởi Nguyễn Ngọc Hợi |
Ngày 10/05/2019 |
73
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:
SỞ GD – ĐT QUẢNG TRỊ
TRƯỜNG THTP TRIỆU PHONG
Giới thiệu kiếu dữ liệu xâu
Mảng số:
Mảng kí tự:
Giới thiệu kiểu dữ liệu xâu
H Ữ U T H Â N
Kiểu DL mới:
Các kiểu dữ liệu chuẩn
- Kiểu nguyên
- Kiểu thực
- Kiểu lôgic
- Kiểu kí tự
Dữ liệu có cấu trúc
Làm thế nào để khai báo biến lưu trữ họ và tên của một học sinh? ( Ví dụ: HỮU THÂN)
Var A: array[1..7] of char
Quá trình nhập xuất dữ liệu phải truy xuất đến từng phần tử của mảng để nhập xuất từng kí tự.
Nhập xuất dữ liệu trên một biến
2. Định nghĩa
Ví dụ:
Các xâu kí tự đơn giản:
‘SINH VIEN’ ; ‘a46‘LOP 11B1 CO 22 HOC SINH’
Ví dụ: Lưu trử một xâu ‘SINH_VIEN’ như sau:
‘ S I N H _ V I E N ’
‘1 2 3 4 5 6 7 8 9
9
9
S
I
N
H
_
V
I
E
N
Biểu diễn xâu trong bộ nhớ:
Với một xâu có n kí tự, 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ự có trong xâu , các byte tiếp theo chứa các ký tự của xâu.
Xâu là dãy các kí tự trong bộ mã ASCII.
Trong đó:
Mỗi kí tự được gọi là một phần tử của xâu;
Xâu A có kí tự nên có phần tử
Phần tử thứ
Có giá trị là:
Độ dài xâu là số lượng kí tự có trong xâu;
Tham chiếu đến phần tử của xâu theo quy tắc: Ten_bien_xau[chi_so]
Định nghĩa
7
?
?
7
1
T
2
I
N
3
4
5
H
6
O
7
C
7
1
T
2
I
N
3
4
5
H
6
O
7
C
- Lưu ý:
Độ dài lớn nhất của xâu là 255;
Độ dài bé nhất của xâu là 0; (gọi là xâu rỗng).
Chỉ số của biến xâu được đánh số bắt đầu từ 0, phần tử đầu tiên chứa giá trị là độ dài của biến xâu.
Hằng xâu luôn được đặt trong hai dấu nháy đơn
Vd: A=‘SINH VIEN’
B=‘1234’ C=‘ ’ D=‘’
9
Những vấn đề cần quan tâm đối với kiểu xâu
+ Khai báo biến xâu.
+ Nhập, xuất dữ liệu cho biến xâu.
+ Tham chiếu đến các phần tử của xâu.
`
3. Khai báo
- Gián tiếp
TYPE= STRING[N];
VAR: ;
VAR: STRING[N];
- Trực tiếp
Lưu ý:
Có thể bó qua phần khai báo độ dài, khi đó độ dài lớn nhất cúa xâu sẽ nhận giá trị ngầm định là 255;
Ví dụ:
- TYPE Ho_ten=STRING[30];
VAR A: Ho_ten;
- VAR Que_quan:STRING[100];
Ví dụ:
VAR Ghi_chu: STRING;
Bài 1: Viết chương trình nhập và xuất một biến xâu?
Type Hoten=String[30];
Var A:Hoten;
Begin
Write(‘Nhap ho ten: ‘);
Readln(A);
Write(‘Ho ten la: ‘,A);
Readln;
End.
Nhap ho ten: _
Ho ten la:
Phan Thi Hoa
Phan Thi Hoa
Bài 2: Viết chương trình truy xuất đến phần tử thứ 2, 4,6 của một xâu có độ dài là 5?
{
}
HUONG
Var S:string [5];
Begin
Write(‘Nhap xau S: ‘); Readln(S);
Writeln(‘PT thu 2: ‘, S[2]);
Writeln(‘PT thu 4: ‘, S[4]);
Writeln(‘PT thu 6: ‘, S[6]);
Readln;
End.
Nhap xau S:_
PT thu 2: U
PT thu 4: N
Error 76: Constant out of range
3. Các phép toán trên xâu kí tự
a. Phép ghép
Kí hiệu là dấu cộng (+);
Ý nghĩa: ghép nhiều xâu thành một;
Có thể thực hiện phép ghép đối với các hằng và các biến xâu.
Ví dụ:
‘Kieu’ + ‘Xau’ = ‘KieuXau’
Minh hoạ:
4
3
K
i
e
u
X
a
u
7
K
i
e
u
X
a
u
7
+
b. Phép so sánh (=, <>, <, >, <=, >=)
Hai xâu giống nhau hoàn toàn thì bằng nhau.
So sánh hai xâu, nếu như kí tự đầu tiên khác nhau kể từ trái sang của xâu nào có mã ASCII lớn hơn thì lớn hơn.
Nếu A là đọan đầu của B thì AVí dụ1 :
‘tinhoc’ ? ‘tinhoc’
Minh hoạ:
6
t
i
n
h
o
c
6
t
i
n
h
o
c
=
=> ‘tinhoc’ = ‘tinhoc’
Ví dụ 2:
‘TRE EM’ ? ‘TRE CON’
T
T
=
R
R
=
=
E
E
=
=
E
C
69
67
>
=> ‘TRE EM’ > ‘TRE CON’
Ví dụ 3:
‘HOA’ ? ‘HOA HONG’
H
H
=
O
O
=
A
A
=
=> ‘HOA’ < ‘HOA HONG’
#
`
4. Các hàm và thủ tục chuẩn:
Thủ tục DELETE
Cú pháp: DELETE(St, vt, n)
Ý nghĩa: Xoá n ký tự từ xâu St bắt đầu từ vị trí vt.
Ví dụ: St = ‘tinhocnhatruong’
Delete(St,7,9)
=> St = ‘tinhoc’
Minh hoạ:
Lưu ý:
Nếu vt bắt đầu từ 0 hoặc nằm ngoài độ dài của xâu thì câu lệnh trên khi thực hiện không xoá ký tự nào cả.
Nếu n > độ dài của xâu và vt= 1 thì sẽ xóa hết kí tự trong xâu.
9
15
-
=
6
15
6
7
4. Các hàm và thủ tục chuẩn:
b) Thủ tục INSERT
Cú pháp: INSERT(St1, St2, vt)
Ý nghĩa: Chèn xâu St1 vào xâu St2 bắt đầu từ vị trí vt.
Ví dụ:
St1 = ‘PC-’ St2 = ‘IBM-486’
Insert(St1, St2, 5)
=> St2 = ‘IBM-PC-486’
Minh hoạ:
Lưu ý:
Nếu vt <=1 thì xâu st1 được chèn vào trước xâu st2.
Nếu vt >=length(st2) thì xâu st1 được chèn vào cuối xâu st2.
3
7
+
=
10
10
7
P
C
-
P
C
-
5
4. Các hàm và thủ tục chuẩn:
c) Hàm COPY
Cú pháp: COPY(St, vt, n):
Ý nghĩa: Tạo một xâu gồm n ký tự liên tiếp được lấy trong xâu St bắt đầu từ vị trí vt.
Ví dụ: St = ‘tinhocnhatruong’
S:=Copy(St, 7, 9)
=> S = ‘nhatruong’
Minh hoạ:
15
n
h
a
t
r
u
o
n
g
9
9
n
h
a
t
r
u
o
n
g
Lưu ý:
Nếu vt >=length(St) thì xâu tạo thành là xâu rỗng.
4. Các hàm và thủ tục chuẩn:
d) Hàm POS
Cú pháp: POS(St1, St2)
Ý nghĩa: Cho vị trí xuất hiện đầu tiên của xâu St1 trong xâu St2.
Ví dụ: St1 = ‘u’ St2 = ‘kieudulieuxau’
N := Pos(St1, St2)
=> N = 4
Minh hoạ:
N
=
0
2
4
1
3
4
u
u
u
u
u
k
<>
=
i
e
u
Lưu ý:
Nếu xâu St1 không có trong xâu St2 thì cho kết quả là 0.
4. Các hàm và thủ tục chuẩn
e) Hàm LENGTH
Cú pháp: LENGTH(St)
Ý nghĩa: Cho giá trị là độ dài của xâu St.
Ví dụ:
N := Length(‘cac thao tac xu ly xau’)
=> N = 22
f) Hàm UPCASE
Cú pháp: UPCASE(Ch):
Ý nghĩa: Cho giá trị là ký tự in hoa ứng với ký tự Ch.
Chú ý: Ch ở trên là kiểu ký tự (Char).
Ví dụ: Ch := Upcase(‘a’) Ch := Upcase(‘E’) => Ch = ‘A’ => Ch = ‘E’
Lưu ý:
Hàm Upcase chỉ có tác dụng đối với một kí tự, không có tác dụng đối với một xâu.
I. Định nghĩa: Xâu là dãy các kí tự trong bộ mã ASCII.
II. Khai báo biến xâu:
III. Các thao tác xử lý xâu:
1. Phép ghép xâu:
2. Phép toán so sánh: <, <=, =, >=, >, <>
3. Các hàm, thủ tục chuẩn:
Tóm tắt-ghi nhớ
Từ khóa;
Tên biến;
Độ dài lớn nhất của xâu.
TRƯỜNG THTP TRIỆU PHONG
Giới thiệu kiếu dữ liệu xâu
Mảng số:
Mảng kí tự:
Giới thiệu kiểu dữ liệu xâu
H Ữ U T H Â N
Kiểu DL mới:
Các kiểu dữ liệu chuẩn
- Kiểu nguyên
- Kiểu thực
- Kiểu lôgic
- Kiểu kí tự
Dữ liệu có cấu trúc
Làm thế nào để khai báo biến lưu trữ họ và tên của một học sinh? ( Ví dụ: HỮU THÂN)
Var A: array[1..7] of char
Quá trình nhập xuất dữ liệu phải truy xuất đến từng phần tử của mảng để nhập xuất từng kí tự.
Nhập xuất dữ liệu trên một biến
2. Định nghĩa
Ví dụ:
Các xâu kí tự đơn giản:
‘SINH VIEN’ ; ‘a46
Ví dụ: Lưu trử một xâu ‘SINH_VIEN’ như sau:
‘ S I N H _ V I E N ’
‘1 2 3 4 5 6 7 8 9
9
9
S
I
N
H
_
V
I
E
N
Biểu diễn xâu trong bộ nhớ:
Với một xâu có n kí tự, 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ự có trong xâu , các byte tiếp theo chứa các ký tự của xâu.
Xâu là dãy các kí tự trong bộ mã ASCII.
Trong đó:
Mỗi kí tự được gọi là một phần tử của xâu;
Xâu A có kí tự nên có phần tử
Phần tử thứ
Có giá trị là:
Độ dài xâu là số lượng kí tự có trong xâu;
Tham chiếu đến phần tử của xâu theo quy tắc: Ten_bien_xau[chi_so]
Định nghĩa
7
?
?
7
1
T
2
I
N
3
4
5
H
6
O
7
C
7
1
T
2
I
N
3
4
5
H
6
O
7
C
- Lưu ý:
Độ dài lớn nhất của xâu là 255;
Độ dài bé nhất của xâu là 0; (gọi là xâu rỗng).
Chỉ số của biến xâu được đánh số bắt đầu từ 0, phần tử đầu tiên chứa giá trị là độ dài của biến xâu.
Hằng xâu luôn được đặt trong hai dấu nháy đơn
Vd: A=‘SINH VIEN’
B=‘1234’ C=‘ ’ D=‘’
9
Những vấn đề cần quan tâm đối với kiểu xâu
+ Khai báo biến xâu.
+ Nhập, xuất dữ liệu cho biến xâu.
+ Tham chiếu đến các phần tử của xâu.
`
3. Khai báo
- Gián tiếp
TYPE
VAR
VAR
- Trực tiếp
Lưu ý:
Có thể bó qua phần khai báo độ dài, khi đó độ dài lớn nhất cúa xâu sẽ nhận giá trị ngầm định là 255;
Ví dụ:
- TYPE Ho_ten=STRING[30];
VAR A: Ho_ten;
- VAR Que_quan:STRING[100];
Ví dụ:
VAR Ghi_chu: STRING;
Bài 1: Viết chương trình nhập và xuất một biến xâu?
Type Hoten=String[30];
Var A:Hoten;
Begin
Write(‘Nhap ho ten: ‘);
Readln(A);
Write(‘Ho ten la: ‘,A);
Readln;
End.
Nhap ho ten: _
Ho ten la:
Phan Thi Hoa
Phan Thi Hoa
Bài 2: Viết chương trình truy xuất đến phần tử thứ 2, 4,6 của một xâu có độ dài là 5?
{
}
HUONG
Var S:string [5];
Begin
Write(‘Nhap xau S: ‘); Readln(S);
Writeln(‘PT thu 2: ‘, S[2]);
Writeln(‘PT thu 4: ‘, S[4]);
Writeln(‘PT thu 6: ‘, S[6]);
Readln;
End.
Nhap xau S:_
PT thu 2: U
PT thu 4: N
Error 76: Constant out of range
3. Các phép toán trên xâu kí tự
a. Phép ghép
Kí hiệu là dấu cộng (+);
Ý nghĩa: ghép nhiều xâu thành một;
Có thể thực hiện phép ghép đối với các hằng và các biến xâu.
Ví dụ:
‘Kieu’ + ‘Xau’ = ‘KieuXau’
Minh hoạ:
4
3
K
i
e
u
X
a
u
7
K
i
e
u
X
a
u
7
+
b. Phép so sánh (=, <>, <, >, <=, >=)
Hai xâu giống nhau hoàn toàn thì bằng nhau.
So sánh hai xâu, nếu như kí tự đầu tiên khác nhau kể từ trái sang của xâu nào có mã ASCII lớn hơn thì lớn hơn.
Nếu A là đọan đầu của B thì A
‘tinhoc’ ? ‘tinhoc’
Minh hoạ:
6
t
i
n
h
o
c
6
t
i
n
h
o
c
=
=> ‘tinhoc’ = ‘tinhoc’
Ví dụ 2:
‘TRE EM’ ? ‘TRE CON’
T
T
=
R
R
=
=
E
E
=
=
E
C
69
67
>
=> ‘TRE EM’ > ‘TRE CON’
Ví dụ 3:
‘HOA’ ? ‘HOA HONG’
H
H
=
O
O
=
A
A
=
=> ‘HOA’ < ‘HOA HONG’
#
`
4. Các hàm và thủ tục chuẩn:
Thủ tục DELETE
Cú pháp: DELETE(St, vt, n)
Ý nghĩa: Xoá n ký tự từ xâu St bắt đầu từ vị trí vt.
Ví dụ: St = ‘tinhocnhatruong’
Delete(St,7,9)
=> St = ‘tinhoc’
Minh hoạ:
Lưu ý:
Nếu vt bắt đầu từ 0 hoặc nằm ngoài độ dài của xâu thì câu lệnh trên khi thực hiện không xoá ký tự nào cả.
Nếu n > độ dài của xâu và vt= 1 thì sẽ xóa hết kí tự trong xâu.
9
15
-
=
6
15
6
7
4. Các hàm và thủ tục chuẩn:
b) Thủ tục INSERT
Cú pháp: INSERT(St1, St2, vt)
Ý nghĩa: Chèn xâu St1 vào xâu St2 bắt đầu từ vị trí vt.
Ví dụ:
St1 = ‘PC-’ St2 = ‘IBM-486’
Insert(St1, St2, 5)
=> St2 = ‘IBM-PC-486’
Minh hoạ:
Lưu ý:
Nếu vt <=1 thì xâu st1 được chèn vào trước xâu st2.
Nếu vt >=length(st2) thì xâu st1 được chèn vào cuối xâu st2.
3
7
+
=
10
10
7
P
C
-
P
C
-
5
4. Các hàm và thủ tục chuẩn:
c) Hàm COPY
Cú pháp: COPY(St, vt, n):
Ý nghĩa: Tạo một xâu gồm n ký tự liên tiếp được lấy trong xâu St bắt đầu từ vị trí vt.
Ví dụ: St = ‘tinhocnhatruong’
S:=Copy(St, 7, 9)
=> S = ‘nhatruong’
Minh hoạ:
15
n
h
a
t
r
u
o
n
g
9
9
n
h
a
t
r
u
o
n
g
Lưu ý:
Nếu vt >=length(St) thì xâu tạo thành là xâu rỗng.
4. Các hàm và thủ tục chuẩn:
d) Hàm POS
Cú pháp: POS(St1, St2)
Ý nghĩa: Cho vị trí xuất hiện đầu tiên của xâu St1 trong xâu St2.
Ví dụ: St1 = ‘u’ St2 = ‘kieudulieuxau’
N := Pos(St1, St2)
=> N = 4
Minh hoạ:
N
=
0
2
4
1
3
4
u
u
u
u
u
k
<>
=
i
e
u
Lưu ý:
Nếu xâu St1 không có trong xâu St2 thì cho kết quả là 0.
4. Các hàm và thủ tục chuẩn
e) Hàm LENGTH
Cú pháp: LENGTH(St)
Ý nghĩa: Cho giá trị là độ dài của xâu St.
Ví dụ:
N := Length(‘cac thao tac xu ly xau’)
=> N = 22
f) Hàm UPCASE
Cú pháp: UPCASE(Ch):
Ý nghĩa: Cho giá trị là ký tự in hoa ứng với ký tự Ch.
Chú ý: Ch ở trên là kiểu ký tự (Char).
Ví dụ: Ch := Upcase(‘a’) Ch := Upcase(‘E’) => Ch = ‘A’ => Ch = ‘E’
Lưu ý:
Hàm Upcase chỉ có tác dụng đối với một kí tự, không có tác dụng đối với một xâu.
I. Định nghĩa: Xâu là dãy các kí tự trong bộ mã ASCII.
II. Khai báo biến xâu:
III. Các thao tác xử lý xâu:
1. Phép ghép xâu:
2. Phép toán so sánh: <, <=, =, >=, >, <>
3. Các hàm, thủ tục chuẩn:
Tóm tắt-ghi nhớ
Từ khóa;
Tên biến;
Độ dài lớn nhất của xâu.
* 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ẻ: Nguyễn Ngọc Hợi
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)