Hàm - thủ tục Luyện tập-kiểm tra Tóm tắt-ghi nhớ Bài 12 Sách giáo khoa... Hàm - thủ tục Luyện tập-kiểm tra Tóm tắt-ghi nhớ Bài 12 Sách giáo khoa... Hàm - thủ tục Luyện tập-kiểm tra Tó
Trang 1Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
Trang 2Mảng số: 3 5 9 7
Mảng kí tự: H H Ữ U T H Â N Ữ U T H Â N
Kiểu DL mới:
Các kiểu dữ liệu chuẩn
- 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
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Trang 32 Định nghĩa
Ví dụ:
Các xâu kí tự đơn giản:
- ‘SINH VIEN’ ; ‘a46<hd4?jh39mf’
-‘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 99
A:
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
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Sách giáo khoa
Trang 4Xâ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
A 7 T I N H O C
0 1 2 3 4 5 6 7
7
1
T
2
I N
3
A[ ]
A[ ] A[ ] A[ ] A[ ] A[ ] A[ ]
4 5
H
6
O
7
C 7
A 7 T I N H O C
0 1 2 3 4 5 6 71
T
2
I N
3 4 5
H
6
O
7
C
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
Trang 50 1 2 3 4 5 6 7 8 9
- Lưu ý:
S I N H V I E N
A:
Độ 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
0 1 2 3 4
C 1
0 1
D 0 0
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
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Sách giáo khoa
Trang 63 Khai báo
- Gián tiếp
TYPE <Ten_kieu_xau>= STRING[N];
VAR <Ten_bien_xau>: <Ten_kieu_xau>;
VAR <Ten_bien_xau>: 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;
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
Trang 7Bà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.
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 HoaPhan 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
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Sách giáo khoa
Trang 83 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ạ:
0 1 2 3 4 5 6 7
0 1 2 3 4
0 1 2 3
7 +
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
Trang 9b 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 <B
Ví dụ1 :
‘tinhoc’ ? ‘tinhoc’
Minh hoạ:
0 1 2 3 4 5 6
0 1 2 3 4 5 6
=
=> ‘tinhoc’ = ‘tinhoc’
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Sách giáo khoa
Trang 10Ví dụ 2:
‘TRE EM’ ? ‘TRE CON’ 6 T R E E M
T
T
=
R
R
=
E
E
= =
E
C
69 67
>
=> ‘TRE EM’ > ‘TRE CON’
Ví dụ 3:
‘HOA’ ? ‘HOA HONG’
3 H O A
0 1 2 3 4 5 6 7 8
H
H
=
O
O
=
A
A
=
=> ‘HOA’ < ‘HOA HONG’
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
#
Trang 114 Các hàm và thủ tục chuẩn:
a)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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
t i n h o c n h a t r u o n g
9
15
15 6
0 1 2 3 4 5 6
7
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Sách giáo khoa
Trang 124 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
0 1 2 3
-0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
I B M - 4 8 6
10 7
P C
-0 1 2 3 4 5 6 7 8 9 10
5
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
Trang 134 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ạ:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
t i n h o c n h a t r u o n g
0 1 2 3 4 5 6 7 8 9
9
9
n h a t r u o n g
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Sách giáo khoa
Lưu ý:
Nếu vt >=length(St) thì xâu tạo thành là xâu rỗng
Trang 144 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ạ:
0 1 2 3 4 5 6 7 8 9 10 11 12 13
N = 0
2
4
u u u u
u
k ieu <>=
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
Lưu ý:
Nếu xâu St1 không có trong xâu St2 thì cho kết quả là 0
Trang 154 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’
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Sách giáo khoa
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
Trang 16I Đị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ớ
Kiểm tra bài cũ
Nội dung bài học
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
1 Giới thiệu
Kiếu dữ liệu xâu
2 Định nghĩa
3 Khai báo
4 Các thao tác
xử lý xâu
5 Hàm - thủ tục
Luyện tập-kiểm tra
Tóm tắt-ghi nhớ
Bài 12
Sách giáo khoa
-Từ khóa;
- Tên biến;
- Độ dài lớn nhất của xâu.
Thủ tục Ý nghĩa Ví dụ
Delete(st,vt,n) Xóa n kí tự của biến xâu st bắt đầu từ vị trí vt. S = ‘Song Hong’
Delete(S,5,5) S = ’Hong’ Insert(s1,s2,vt) Chèn xâu s1 vào xâu s2, bắt đầu ở vị trí vt. S1 = ’1’, S2 = ’Hinh 2’Insert(s1,s2,6)
S2 =’Hinh 1.2’
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 Copy(S,5,3) = ‘hoc’S = ‘Tin hoc’ Length(S) Cho giá trị là độ dài xâu S Length(S) = 7S = ‘Tin hoc’
Pos(S1,S2) Cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2. S=’ABCDBCE’ Pos(‘BC’,S) = 2
Pos(‘G’,S)=0 Upcase(ch) Cho chữ cái in hoa ứng với chữ cái trong ch Upcase(ch) = ‘A’ch = ’a’