Bài 12. Kiểu xâu

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Nguyễn Thanh Loan
Ngày gửi: 09h:05' 25-02-2008
Dung lượng: 1.6 MB
Số lượt tải: 357
Nguồn:
Người gửi: Nguyễn Thanh Loan
Ngày gửi: 09h:05' 25-02-2008
Dung lượng: 1.6 MB
Số lượt tải: 357
Số lượt thích:
0 người
Câu 1: Hãy nêu cách khai báo trực tiếp và gián tiếp mảng 1chiều?
Câu 2: Hãy chuyển cách khai báo mảng 1chiều sau từ dạng trực tiếp sang dạng gián tiếp?
Var ArrayInt : Array[1..100] of integer;
Câu 3: Trong ngôn ngữ lập trình Pascal, về mặt cú pháp, việc khai báo mảng 1 chiều nào sau đây là đúng:
Type 1chieu=array[1…100] of integer;
Type 1chieu=array[1-100] of integer;
Type 1chieu=array(1..100) of integer;
Type 1chieu=array[1..100] of integer;
Câu 1: - Cách khai báo trực tiếp:
Var: Array [kiểu chỉ số] of ;
- Cách khai báo gián tiếp:
Type = Array [kiểu chỉ số] of ;
Var: ;
Câu 2: Chuyển khai báo mảng 1chiều sau từ dạng trực tiếp sang dạng gián tiếp: Type B = Array[1..100] of integer;
Var ArrayInt : B ;
Câu 3: Trong ngôn ngữ lập trình Pascal, về mặt cú pháp, việc khai báo mảng 1 chiều nào sau đây là đúng:
Type 1chieu=array[1…100] of integer;
Type 1chieu=array[1-100] of integer;
Type 1chieu=array(1..100) of integer;
Type 1chieu=array[1..100] of integer;
* Một số khái niệm:
- Xâu là một dãy các kí tự trong bảng mã ASCII
* Ví dụ:
‘Bach Khoa’
‘KI SU’
‘2008 la nam Mau Ty’
- Mỗi kí tự gọi là một …………. của xâu
- Số lượng kí tự trong xâu được gọi là ……………………
- Xâu có độ dài bằng 0 được gọi là …………..
- Tham chiếu tới phần tử của xâu được xác định thông qua ............. của phần tử trong xâu.
- Chỉ số của phần tử của xâu thường được đánh số thứ tự bắt đầu từ 1
- Trong ngôn ngữ lập trình Pascal, để truy cập tới từng phần tử của xâu, ta viết:
[chỉ số ]
phần tử
độ dài của xâu
xâu rỗng
chỉ số
- [chỉ số ]
Ví dụ: Biến Hoten lưu trữ giá trị hằng xâu Vuong Quoc Vuong
Hoten [5] cho ta kí tự ‘g’ là kí tự thứ năm của biến xâu Hoten
1. Khai báo:
- Biến kiểu xâu có thể khai báo như sau:
Var : String [độ dài lớn nhất của xâu ];
- Ví dụ:
Var Ten : String [10 ];
Var Ho_dem : String [25 ];
Var Que : String;
- Chú ý:
- Nếu không khai báo độ dài tối đa của biến xâu thì độ dài ngầm định của xâu là 255.
- Độ dài lớn nhất của xâu là 255 kí tự.
- Hằng xâu kí tự được đặt trong cặp nháy đơn ‘’
1. Khai báo:
Var : String [độ dài lớn nhất của xâu ];
*. Bài tập áp dụng:
1/ Trong ngôn ngữ lập trình Pascal, xâu kí tự là:
Mảng các kí tự;
Dãy các kí tự trong bảng mã ASCII;
Tập hợp các chữ cái trong bảng chữ cái tiếng Anh;
2/ Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là đúng:
S: File of String; C. S: String;
B. S: File of char; D. Cả 3 câu trên đều đúng;
3/ Trong ngôn ngữ lập trình Pascal, xâu kí tự có tối đa:
8 kí tự; C. 16 kí tự;
B. 256 kí tự; D. 255 kí tự;
1. Khai báo:
Var : String [độ dài lớn nhất của xâu ];
2. Các thao tác xử lí xâu:
a. Phép ghép xâu:
Được sử dụng để ghép nhiều xâu thành 1 xâu;
‘Ha’
‘Ha Noi’
‘Noi’
+
Kí hiệu là dấu (+)
Có thể thực hiện phép ghép xâu với hằng và biến xâu.
* Ví dụ:
‘ nGuyen vaN A’
‘Nguyen Van A’
1. Khai báo:
Var : String [độ dài lớn nhất của xâu ];
2. Các thao tác xử lí xâu:
a. Phép ghép xâu:
Kí hiệu là dấu (+)
b. Phép so sánh:
<, <=, >, >=, =, <>
Pascal tự động so sánh lần lượt từng kí tự từ trái sang phải;
Xâu A lớn hơn xâu B nếu 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.
* Ví dụ:
‘AB’
‘AC’
<
‘ABC’
‘ABB’
>
Nếu A và B có độ dài khác nhau, A là đoạn đầu của B thì A* Ví dụ:
‘Ha Noi’
‘Ha Noi Viet Nam’
<
Hai xâu bằng nhau nếu chúng giống nhau hoàn toàn.
* Ví dụ:
‘Ha Noi’
‘Ha Noi’
=
1. Khai báo:
2. Các thao tác xử lí xâu:
*Một số thủ tục chuẩn trong xử lí xâu:
c. Delete (st,vt,n): xoá n kí tự của biến xâu st, bắt đầu từ vị trí vt
* Ví dụ:
‘ABCDEF’
Delete(st,4,3)
‘ABC’
‘HA NOI’
Delete(st,3,4)
‘HA’
1. Khai báo:
2. Các thao tác xử lí xâu:
*Một số thủ tục chuẩn trong xử lí xâu:
c. Delete (st,vt,n): xoá n kí tự của biến xâu st, bắt đầu từ vị trí vt
* Ví dụ:
‘LE MY’
‘N’
‘HA NOI’
d. insert(s1,s2,vt): chèn xâu s1 vào xâu s2, bắt đầu từ vị trí vt
insert(s1,s2,4 )
‘ HA ’
‘HA OI’
‘LE HA MY’
insert(s1,s2,4 )
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
Copy(st,4,11 )
Copy(st,1,3 )
‘TP HO CHI MINH’
‘HAI PHONG’
‘HAI’
‘HO CHI MINH’
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
length(st)
‘TP HO CHI MINH’
‘HAI PHONG’
9
14
f. length(St): cho giá trị độ dài xâu St
length(st)
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
pos(‘CHI’, S2)
‘TPHOCHIMINH’
‘HAI PHONG’
0
5
f. length(St): cho giá trị độ dài xâu St
g. pos(S1,S2,): cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2
pos(‘M’, S2)
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
upcase(ch)
‘h’
‘M’
M
H
f. length(St): cho giá trị độ dài xâu St
g. pos(S1,S2,): cho vị trí xuất hiện đầu tiên của S1 trong S2
h. upcase(ch): cho chữ cái viết hoa trong tương ứng với chữ cái thường trong ch
upcase(ch)
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
*Một số thủ tục chuẩn trong xử lí xâu:
Delete (st,vt,n): xoá n kí tự của biến xâu st, bắt đầu từ vị trí vt
insert(s1,s2,vt): chèn xâu s1 vào xâu s2, bắt đầu từ vị trí vt
copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
length(St): cho giá trị độ dài xâu St
pos(S1,S2,): cho vị trí xuất hiện đầu tiên của S1 trong S2
upcase(ch): cho chữ cái viết hoa trong tương ứng với chữ cái thường trong ch
Var : String [độ dài lớn nhất của xâu ];
I
E
U
X
A
U
K
2
3
4
5
6
7
1
Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào gọi là:
Xâu không; B, Xâu trắng;
C. Xâu rỗng; D. Không phaie xâu kí tự;
Trong ngôn ngữ lập trình Pascal, phần tử đầu tiên của xâu kí tự mang chỉ số là:
1;
B. 0;
C. Không có chỉ số
D. Do người lập trình khai báo;
Trong ngôn ngữ lập trình Pascal, thủ tục delete(a,b,c) thực hiện việc gì tròn các việc sau:
Xoá xâu kí tự c a kí tự bắt đầu từ vị trí b;
B. Xoá trong xâu a b kí tự từ vị trí c;
C. Xoá trong xâu c b kí tự bắt đầu từ vị trí a;
D. Xoá trong xâu b c kí tự bắt đầu từ vị trí a;
Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là sai:
S: String;
X1: String[100];
C. S: String[256];
D. X1: String[1];
Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả gì?
Độ dài xâu S khi khai báo;
B. Số kí tự hiện có của xâu S không tính các dấu cách;
C. Số kí tự của xâu S không tính dấu cách cuối cùng;
D. Số kí tự hiện có của xâu S ;
Trong ngôn ngữ lập trình Pascal, với xâu kí tự có các phép toán gì?
Cộng, trừ, nhân, chia;
B. Phép cộng và trừ;
C. Chỉ có phép cộng;
D. Phép ghép xâu và phép so sánh ;
Trong ngôn ngữ lập trình Pascal, hàm Upcase(Ch) cho kết quả là:
Chữ cái in hoa tương ứng với Ch;
B. Xâu Ch toàn chữ thường;
C. Xâu Ch toàn chữ in hoa;
D. Biến Ch thành chữ thường ;
Bài tập về nhà
Làm bài tập: 10/80- SGK
Câu 2: Hãy chuyển cách khai báo mảng 1chiều sau từ dạng trực tiếp sang dạng gián tiếp?
Var ArrayInt : Array[1..100] of integer;
Câu 3: Trong ngôn ngữ lập trình Pascal, về mặt cú pháp, việc khai báo mảng 1 chiều nào sau đây là đúng:
Type 1chieu=array[1…100] of integer;
Type 1chieu=array[1-100] of integer;
Type 1chieu=array(1..100) of integer;
Type 1chieu=array[1..100] of integer;
Câu 1: - Cách khai báo trực tiếp:
Var
- Cách khai báo gián tiếp:
Type
Var
Câu 2: Chuyển khai báo mảng 1chiều sau từ dạng trực tiếp sang dạng gián tiếp: Type B = Array[1..100] of integer;
Var ArrayInt : B ;
Câu 3: Trong ngôn ngữ lập trình Pascal, về mặt cú pháp, việc khai báo mảng 1 chiều nào sau đây là đúng:
Type 1chieu=array[1…100] of integer;
Type 1chieu=array[1-100] of integer;
Type 1chieu=array(1..100) of integer;
Type 1chieu=array[1..100] of integer;
* Một số khái niệm:
- Xâu là một dãy các kí tự trong bảng mã ASCII
* Ví dụ:
‘Bach Khoa’
‘KI SU’
‘2008 la nam Mau Ty’
- Mỗi kí tự gọi là một …………. của xâu
- Số lượng kí tự trong xâu được gọi là ……………………
- Xâu có độ dài bằng 0 được gọi là …………..
- Tham chiếu tới phần tử của xâu được xác định thông qua ............. của phần tử trong xâu.
- Chỉ số của phần tử của xâu thường được đánh số thứ tự bắt đầu từ 1
- Trong ngôn ngữ lập trình Pascal, để truy cập tới từng phần tử của xâu, ta viết:
phần tử
độ dài của xâu
xâu rỗng
chỉ số
-
Ví dụ: Biến Hoten lưu trữ giá trị hằng xâu Vuong Quoc Vuong
Hoten [5] cho ta kí tự ‘g’ là kí tự thứ năm của biến xâu Hoten
1. Khai báo:
- Biến kiểu xâu có thể khai báo như sau:
Var
- Ví dụ:
Var Ten : String [10 ];
Var Ho_dem : String [25 ];
Var Que : String;
- Chú ý:
- Nếu không khai báo độ dài tối đa của biến xâu thì độ dài ngầm định của xâu là 255.
- Độ dài lớn nhất của xâu là 255 kí tự.
- Hằng xâu kí tự được đặt trong cặp nháy đơn ‘’
1. Khai báo:
Var
*. Bài tập áp dụng:
1/ Trong ngôn ngữ lập trình Pascal, xâu kí tự là:
Mảng các kí tự;
Dãy các kí tự trong bảng mã ASCII;
Tập hợp các chữ cái trong bảng chữ cái tiếng Anh;
2/ Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là đúng:
S: File of String; C. S: String;
B. S: File of char; D. Cả 3 câu trên đều đúng;
3/ Trong ngôn ngữ lập trình Pascal, xâu kí tự có tối đa:
8 kí tự; C. 16 kí tự;
B. 256 kí tự; D. 255 kí tự;
1. Khai báo:
Var
2. Các thao tác xử lí xâu:
a. Phép ghép xâu:
Được sử dụng để ghép nhiều xâu thành 1 xâu;
‘Ha’
‘Ha Noi’
‘Noi’
+
Kí hiệu là dấu (+)
Có thể thực hiện phép ghép xâu với hằng và biến xâu.
* Ví dụ:
‘ nGuyen vaN A’
‘Nguyen Van A’
1. Khai báo:
Var
2. Các thao tác xử lí xâu:
a. Phép ghép xâu:
Kí hiệu là dấu (+)
b. Phép so sánh:
<, <=, >, >=, =, <>
Pascal tự động so sánh lần lượt từng kí tự từ trái sang phải;
Xâu A lớn hơn xâu B nếu 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.
* Ví dụ:
‘AB’
‘AC’
<
‘ABC’
‘ABB’
>
Nếu A và B có độ dài khác nhau, A là đoạn đầu của B thì A* Ví dụ:
‘Ha Noi’
‘Ha Noi Viet Nam’
<
Hai xâu bằng nhau nếu chúng giống nhau hoàn toàn.
* Ví dụ:
‘Ha Noi’
‘Ha Noi’
=
1. Khai báo:
2. Các thao tác xử lí xâu:
*Một số thủ tục chuẩn trong xử lí xâu:
c. Delete (st,vt,n): xoá n kí tự của biến xâu st, bắt đầu từ vị trí vt
* Ví dụ:
‘ABCDEF’
Delete(st,4,3)
‘ABC’
‘HA NOI’
Delete(st,3,4)
‘HA’
1. Khai báo:
2. Các thao tác xử lí xâu:
*Một số thủ tục chuẩn trong xử lí xâu:
c. Delete (st,vt,n): xoá n kí tự của biến xâu st, bắt đầu từ vị trí vt
* Ví dụ:
‘LE MY’
‘N’
‘HA NOI’
d. insert(s1,s2,vt): chèn xâu s1 vào xâu s2, bắt đầu từ vị trí vt
insert(s1,s2,4 )
‘ HA ’
‘HA OI’
‘LE HA MY’
insert(s1,s2,4 )
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
Copy(st,4,11 )
Copy(st,1,3 )
‘TP HO CHI MINH’
‘HAI PHONG’
‘HAI’
‘HO CHI MINH’
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
length(st)
‘TP HO CHI MINH’
‘HAI PHONG’
9
14
f. length(St): cho giá trị độ dài xâu St
length(st)
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
pos(‘CHI’, S2)
‘TPHOCHIMINH’
‘HAI PHONG’
0
5
f. length(St): cho giá trị độ dài xâu St
g. pos(S1,S2,): cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2
pos(‘M’, S2)
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
* Ví dụ:
e. copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
upcase(ch)
‘h’
‘M’
M
H
f. length(St): cho giá trị độ dài xâu St
g. pos(S1,S2,): cho vị trí xuất hiện đầu tiên của S1 trong S2
h. upcase(ch): cho chữ cái viết hoa trong tương ứng với chữ cái thường trong ch
upcase(ch)
2. Các thao tác xử lí xâu:
*Một số hàm chuẩn chuẩn trong xử lí xâu:
1. Khai báo:
*Một số thủ tục chuẩn trong xử lí xâu:
Delete (st,vt,n): xoá n kí tự của biến xâu st, bắt đầu từ vị trí vt
insert(s1,s2,vt): chèn xâu s1 vào xâu s2, bắt đầu từ vị trí vt
copy(St,vt,n): Sao chép từ xâu st n kí tự liên tiếp bắt đầu từ vị trí vt
length(St): cho giá trị độ dài xâu St
pos(S1,S2,): cho vị trí xuất hiện đầu tiên của S1 trong S2
upcase(ch): cho chữ cái viết hoa trong tương ứng với chữ cái thường trong ch
Var
I
E
U
X
A
U
K
2
3
4
5
6
7
1
Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào gọi là:
Xâu không; B, Xâu trắng;
C. Xâu rỗng; D. Không phaie xâu kí tự;
Trong ngôn ngữ lập trình Pascal, phần tử đầu tiên của xâu kí tự mang chỉ số là:
1;
B. 0;
C. Không có chỉ số
D. Do người lập trình khai báo;
Trong ngôn ngữ lập trình Pascal, thủ tục delete(a,b,c) thực hiện việc gì tròn các việc sau:
Xoá xâu kí tự c a kí tự bắt đầu từ vị trí b;
B. Xoá trong xâu a b kí tự từ vị trí c;
C. Xoá trong xâu c b kí tự bắt đầu từ vị trí a;
D. Xoá trong xâu b c kí tự bắt đầu từ vị trí a;
Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là sai:
S: String;
X1: String[100];
C. S: String[256];
D. X1: String[1];
Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả gì?
Độ dài xâu S khi khai báo;
B. Số kí tự hiện có của xâu S không tính các dấu cách;
C. Số kí tự của xâu S không tính dấu cách cuối cùng;
D. Số kí tự hiện có của xâu S ;
Trong ngôn ngữ lập trình Pascal, với xâu kí tự có các phép toán gì?
Cộng, trừ, nhân, chia;
B. Phép cộng và trừ;
C. Chỉ có phép cộng;
D. Phép ghép xâu và phép so sánh ;
Trong ngôn ngữ lập trình Pascal, hàm Upcase(Ch) cho kết quả là:
Chữ cái in hoa tương ứng với Ch;
B. Xâu Ch toàn chữ thường;
C. Xâu Ch toàn chữ in hoa;
D. Biến Ch thành chữ thường ;
Bài tập về nhà
Làm bài tập: 10/80- SGK







Trong phần kiểm tra bài cũ, câu 3, hình như tất cả đều sai tại vì "tên mảng" không được phép bắt đầu bằng số.
Còn nữa, trong phần giải ô chữ, đáp án cái câu thủ tục "delete(a,b,c) thực hiện việc gì" cũng sai nốt.