SỞ GIÁO DỤC & ĐÀO TẠO TỈNH LẠNG SƠN
Cuộc thi thiết kế hồ sơ bài giảng điện tử E-Learning
Bài giảng
Tiết 1 - Bài 12
chương trình Tin hoc 11
Trường THPT chuyên Chu Văn An
Tháng 3/2012
Bài toán đặt vấn đề:
Nhập vào từ bàn phím họ tên của 2 người, in ra màn hình họ tên
dài hơn, nếu bằng nhau thì in ra họ tên nhập sau
A
P
H
A
N
B
N
G
u
y
Có thể sử dụng kiểu mảng 1 chiều
Sử
2 biếntửi, là
j để
đếm
màdụng
mỗi phần
một
kí số
tự lượng kí
tự trong mảng A và B. Ban đầu i, j
bằng 0. Mỗi lần nhập vào một kí tự của
A và B thì tăng i, j lên 1. So sánh i, j để
đưa ra kết quả.
a
e
N
n
H
m
Hãy xác định
kiểu
liệu của
Nếu dữ
ý tưởng
giải
hai biến
b
quyết
bài a,
toán?
y
Chương trình
Bài 12: KIỂU XÂU (tiết 1)
1
Khái niệm
2
Khai báo
3
Các thao tác xử lý xâu
4
Củng cố
5
Kiểm tra đánh giá
1. Khái niệm
X©u lµ d·y c¸c kÝ tù trong bé m· ASCII.
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Ví dụ: cho xâu A = ‘TIN HOC’
A
T
Trong đó:
1
i
2
n
3
4
H
5
o
6
c
7
Tên xâu: A;
Mỗi kí tự là một phần tử của xâu;
Độ dài xâu : Số lượng kí tự trong xâu: 7
Các phần tử trong xâu được đánh thứ tự từ 1
Tham chiếu tới kí tự thứ i của xâu A ta viết: A[i].
Ví dụ: A[5] = ‘H’
1. Khái niệm
X©u lµ d·y c¸c kÝ tù trong bé m· ASCII.
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Chú ý:
Xâu rỗng: là xâu có độ dài bằng 0, kí hiệu: ‘’
Dấu cách là một kí tự
Xâu là mảng 1 chiều mà mỗi phần tử là một kí
Các
tự thao tác xử lý trên mảng 1 chiều đều có
Một xâu có thể
thể áp dụng trên xâu.
không có kí tự
Xâu gồm 1 kí tự
nào không?
dấu cách có phải
là xâu rỗng?
Có thể coi xâu là
mảng 1 chiều
được không?
2. Khai báo
Cách 1: Khai báo độ dài lớn nhất của xâu
Var <danh sách biến> : String[<độ dài lớn nhất>];
Nội dung
1. Khái niệm
2. Khai báo
Trong đó: Độ dài lớn nhất của xâu không quá 255
Ví dụ:
Cách 2: Bỏ qua khai báo độ dài lớn nhất của xâu
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Var H: String[30];
Var <danh sách biến> : String;
Khi đó: Độ dài lớn nhất của xâu là 255
Ví dụ:
Var D: String;
Muốn biến X có thể nhận giá trị là xâu 'Chu Van An' thì
khai báo nào sau đây không thỏa mãn?
A) Var X: string[100];
B) Var X: string;
C) Var X: string[5];
D) Var X: string[255];
Đúng!
Đúng! Click
Click vào
vào bất
bất cứ
cứ
nơi
nơi nào
nào để
để tiếp
tiếp tục
tục
Hãy
Hãy thử
thử lại!
lại!
Sai!
Sai! Click
Click vào
vào bất
bất cứ
cứ nơi
nơi
nào
để
tiếp
tục
đểtrả
tiếp
tục
Bạn
phải
lời
câu
Bạnnào
phải
trả
lời
câu hỏi
hỏi
trước
trước khi
khi tiếp
tiếp tục
tục
Gửi
Gửi
Hủy
Hủy
3. Các thao tác xử lý xâu
Nội dung
3.1
Nhập/xuất
1. Khái niệm
3.2
Ghép xâu
3.3
So sánh xâu
3.4
Một số hàm chuẩn
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
3.5 Một số thủ tục chuẩn
3.1. Nhập/xuất
a) Nhập:
Readln(<tên biến xâu>);
Nội dung
Ví dụ: Nhập vào từ bàn phím 2 biến xâu a, b:
Write(‘nhap xau a: ’); Readln(a);
Write(‘nhap xau b: ’); Readln(b);
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
b) Xuất:
Việc xuất dữ liệu kiểu xâu giống như các kiểu dữ
liệu chuẩn khác
Ví dụ: In ra màn hình giá trị của 2 biến xâu a và b:
Writeln(‘xau a = ’,a,’ va xau b = ’,b);
3.2. Ghép xâu
Phép ghép xâu, kí hiệu là dấu cộng (+), dùng để ghép nhiều
xâu thành một theo thứ tự từ trái sang phải
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Ví dụ 1:
‘Ha’ + ‘-’ + ‘Noi’ = ‘Ha-Noi’
Ví dụ 2:
‘Noi’ + ‘-’ + ‘Ha’ = ‘Noi-Ha’
3.3. So sánh xâu
Các phép so sánh: =, <>, <, >, <=, >= có thứ tự ưu tiên thấp
hơn phép ghép xâu và thực hiện theo 3 quy tắc:
Nội dung
Quy tắc
1. Khái niệm
1. Xâu A bằng xâu B nếu chúng
giống nhau hoàn toàn
‘Tin hoc’
= ‘Tin hoc’
2. Nếu xâu A và xâu B có độ dài
khác nhau và A là đoạn đầu
của B thì A < B
‘Tin hoc’
< ‘Tin hoc 11’
3. Xâu A > xâu B nếu kí tự đầu
tiên khác nhau giữa chúng
kể từ trái sang trong A có
mã ASCII lớn hơn
‘Tin hoc’
> ‘Tieng Anh’
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Ví dụ
Bảng mã ASCII cơ sở
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Bảng mã ASCII đầy đủ
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
3.3. So sánh xâu
Chú ý:
1. Mã ASCII của các kí tự tuân theo thứ tự từ điển
2. Mã ASCII của kí tự in thường luôn lớn hơn mã ASCII in
Nội dung
hoa và lớn hơn kí tự in hoa tương ứng 32 đơn vị
3. Một số mã ASCII cần nhớ:
1. Khái niệm
‘A’ : 65
2. Khai báo
‘a’ : 97
3. Các thao tác
‘0’ : 48
xử lý xâu
‘ ‘ : 32
4. Củng cố
5. Kiểm tra
3.4. Một số hàm chuẩn
a) Length(S)
Trả về độ dài xâu S
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Ví dụ:cho xâu S = ‘Tin hoc’
S
T
1
length(S) = 7
i
2
n
3
4
h
5
o
6
c
7
3.4. Một số hàm chuẩn
b) Upcase(ch)
Trả về kí tự in hoa tương ứng với ch
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
Ví dụ:cho xâu S = ‘Tin hoc’
S
T
1
i
n
2
3
upcase(S[3]) = ‘N’
upcase(S[1]) = ‘T’
4. Củng cố
upcase(‘3’) = ‘3’
5. Kiểm tra
upcase(S[length(S)]) = ‘C’
4
h
o
c
5
6
7
3.4. Một số hàm chuẩn
c) Pos(S1,S2)
Trả về vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
Ví dụ:cho xâu S1 = ‘an’ và S2 = ‘chu van an’. Pos(S1,S2) = ?
S1
a
n
S2
c
h
u
a1
2
n
3
4. Củng cố
5. Kiểm tra
Pos(S1,S2) = 6
Pos(‘anh’,S) = 0
v
4
5
a
n
a6
n7
8
a
n
9
10
3.4. Một số hàm chuẩn
d) Copy(St,vt,n)
Trả về xâu con của xâu St, lấy từ vị trí vt, n kí tự liên tiếp
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Ví dụ: cho xâu S = ‘chu van an’ thì copy(s,5,3)= ?
S
c
h
u
1
2
3
v
4
copy(s,5,3) = ‘van’
copy(s,3,5) = ‘u van’
5
a
n
66
7
8
a
n
9
10
3.5. Một số thủ tục chuẩn
a) Delete(St,vt,n)
Xóa trong xâu St, từ vị trí vt, n kí tự liên tiếp
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Ví dụ: cho biết giá trị của S sau khi thực hiện đoạn lệnh:
S: = ‘chu van an’; delete(S,5,3);
S
c
h
u
1
2
3
S = ‘chu an’
v
4
5
a
n
6
7
58
a
n
69
710
3.5. Một số thủ tục chuẩn
b) Insert(S1,S2,vt)
Chèn xâu S1 vào xâu S2 từ vị trí vt
Nội dung
Ví dụ: cho biết giá trị của S2 sau khi thực hiện đoạn lệnh:
S1:=‘hoc’; S2: = ‘tin 11’; Insert(S1,S2,5);
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
S1
S2
h
o
1
2
3
t
i
n
1
2
3
S2 = ‘tin hoc11’
c
4
1
1
55
6
7
1
1
8
9
4. Củng cố
Nội dung
1. Khái niệm
2. Khai báo
3. Các thao tác
xử lý xâu
4. Củng cố
5. Kiểm tra
Các em hãy ôn lại kiến thức qua một số câu hỏi trắc
nghiệm sau!
Câu 1: Khai báo nào đúng cú pháp?
A) Var hoten : string;
B) Var dia chi : string[100];
C) Var ten = string[30];
D) Var ho = string(30);
Đúng!
Sai!
Đúng! Click
Click vào
vào bất
bất cứ
cứ
Sai! Click
Click vào
vào bất
bất cứ
cứ
nơi
tiếp
nơi
nơi nào
nào để
để
tiếp tục
tục
nơi nào
nào để
để tiếp
tiếp tục
tục
Your
Your answer:
answer:
You
did
not
You
did
not answer
answer
You
answered
this
You
answered
this
this
question
this
question
Hãy
thử
lại!
Bạn
trả
lời
hỏi
correctly!
Hãyphải
thử
lại!
Bạn
phải
trả
lời câu
câu
hỏi
correctly!
Gửi
Hủy
completely
The
correct
answer
is:
Gửi
Hủy
completely
The trước
correct
answer
is:
khi
tiếp
tục
trước khi tiếp tục
Câu 2: Xâu là dãy các kí tự trong bảng mã nào?
A) TCVN3
B) ASCII
C) Unicode
D) VNI
Đúng!
Sai!
Đúng! Click
Click vào
vào bất
bất cứ
cứ
Sai! Click
Click vào
vào bất
bất cứ
cứ nơi
nơi
nơi
tiếp
nào
nơi nào
nào để
để
tiếp tục
tục
nào để
để tiếp
tiếp tục
tục
Your
Your answer:
answer:
You
did
not
You
did
not answer
answer
You
answered
this
You
answered
this
this
question
this
question
Bạn
phải
trả
lời
hỏi
correctly!
The
correct
answer
is:
Bạn
phải
trả
lời câu
câu
hỏi
correctly!
The
correct
answer
is:
Gửi
Hủy
completely
Gửi
Hủy
completely
trước
khi
tiếp
tục
trước khi tiếp tục
Câu 3: Cho xâu a = 'Tin Hoc', kí tự a[3] có giá trị là:
A) 'n'
B) ' '
C) 'H'
D) Tin'
Đúng!
Sai!
Đúng! Click
Click vào
vào bất
bất cứ
cứ
Sai! Click
Click vào
vào bất
bất cứ
cứ nơi
nơi
nơi
tiếp
nào
nơi nào
nào để
để
tiếp tục
tục
nào để
để tiếp
tiếp tục
tục
Your
Your answer:
answer:
You
did
not
You
did
not answer
answer
You
answered
this
You
answered
this
this
question
this
question
Bạn
phải
trả
lời
hỏi
correctly!
The
correct
answer
is:
Bạn
phải
trả
lời câu
câu
hỏi
correctly!
The
correct
answer
is:
Gửi
Hủy
completely
Gửi
Hủy
completely
trước
khi
tiếp
tục
trước khi tiếp tục