Chào mừng học sinh thân yêu, chúc em học tốt!
GV: Hoa Oải Hương
Friday, April 03, 2020
KIỂM TRA BÀI CŨ


Câu 1: Em hãy cho biết mảng một chiều là gì? Có mấy
cách khai báo và cú pháp các cách khai báo đó như thế
nào?

Câu 2: Áp dụng khai báo trực tiếp biến mảng một chiều
M gồm 200 phần tử, các phần tử của mảng thuộc kiểu kí
tự.






Friday, April 03, 2020
KIỂM TRA BÀI CŨ




Đáp án:
Câu 1:
- Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu.
- Mảng một chiều được khai báo theo hai cách: trực tiếp
và gián tiếp.
+ Cú pháp khai báo trực tiếp:
Var : array[kiểu chỉ số] of ;
+ Khai báo gián tiếp:
Type = array[kiểu chỉ số] of ;
Var : ;
Câu 2: Var M: array[1..200] of char ;





Friday, April 03, 2020
VÍ DỤ

Cho biến dữ liệu sau:
A :













Biến A có phải là mảng một chiều không? Các phần tử của biến A thuộc kiểu dữ liệu nào?
A chính là mảng một chiều, các phần tử của A thuộc kiểu char (kiểu kí tự).
Viết chương trình nhập vào mảng A, ta phải nhập bao nhiêu lần?
M?ng A cĩ 6 ph?n t?, m?i l?n nh?p ch? m?t ph?n t? n�n d? nh?p m?ng A v�o ta ph?i th?c hi?n 6 l?n.
Friday, April 03, 2020
BÀI TOÁN
 Viết chương trình nhập họ tên của 50 học sinh trong lớp.












Em cĩ nh?n x�t gì v? b�i tốn tr�n n?u ta s? d?ng ki?u m?ng m?t chi?u d? nh?p d? li?u?
Nhận xét:
Việc nhập dữ liệu sẽ rất lâu, tốn
thời gian và phải thực hiện gõ rất
nhiều phím.
Chủ đề 4:
KIỂU DỮ LIỆU CÓ CẤU TRÚC
Bài 12: Kiểu xâu
GV: Nguyễn Thanh Tuyền
Tổ: Tin- Td- Qp
KIỂU XÂU
www.thpt-dongha-quangtri.edu.vn
Khái niệm xâu
Khai báo biến kiểu xâu
Các thao tác xử lí xâu
NỘI DUNG
A
1 2 3 4 5 6 7
Trong đó:
Khi tham chiếu đến kí tự thứ i của xâu ta viết A[i].
Ví dụ: A[5]=`H`.
? Tên xâu: A;
? Mỗi kí tự gọi là một phần tử của xâu;
Ví dụ:
? Độ dài của xâu (số kí tự trong xâu): 7;
H
A
1 2 3 4 5 6 7
Trong đó:
? Tên xâu: A;
? Mỗi kí tự gọi là một phần tử của xâu;
Ví dụ:
? Độ dài của xâu (số kí tự trong xâu): 7;
H
Khái niệm xâu:
Xâu là dãy kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu.
Số lượng kí tự trong một xâu được gọi là độ dài của xâu.
Xâu có độ dài bằng 0 gọi là xâu rỗng, viết là ‘’
1. Khai báo

Cú pháp:
Var : string[ độ dài lớn nhất của xâu];
Trong đó:
+ Var, string : Từ khóa
+ Độ dài lớn nhất của xâu (không vượt quá 255)
Ví dụ 1
. Khai báo biến xâu để lưu trữ họ tên học sinh:
Var hoten : String[30];
Ví dụ 2. Khai báo biến xâu để lưu trữ giới tính học sinh:
Var GT: String [5];
Chú ý: Trong mô tả xâu có thể bỏ qua phần khai báo độ dài lớn nhất của xâu,
khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255
Ví dụ 3. Var diachi:string;
a. Phép ghép xâu:
Ví dụ1:
‘Kieu’ + ‘Xau’

‘KieuXau’
- Kí hiệu là dấu (+)
2. Các thao tác xử lí xâu
- Phép ghép xâu, được sử dụng để ghép nhiều xâu thành một (có thể thực hiện phép ghép xâu đối với các hằng và biến xâu)
S:=‘LOP_11A9’

Ví dụ2:
S1:=‘LOP’ ;
S2:=‘_11A9’
S:= S1 + S2
b) Các phép so sánh:
* Các phép so sánh xâu: =, >, <, >=, <=, <> có thứ tự ưu tiên thực hiện thấp hơn phép ghép xâu.
* Quy tắc:
Ví dụ: ‘Ha Noi’
Hai xâu được coi là bằng nhau nếu như chúng giống nhau hoàn toàn
Xâu A > 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ụ: ‘Tin hoc’ = ‘Tin hoc’
Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A < B.
2. Các thao tác xử lí xâu
‘Ha Nam’
>
Ví dụ: ‘lop’
‘lop hoc’
<
c) Các thủ tục và hàm chuẩn xử lí xâu
S1=`1` S2=`Hinh .2`
Insert(s1,s2,6)
? `Hinh 1.2`
Chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt.
2. Insert(S1,S2,vt)
S = `Song Hong`
Delete(S,1,5)
? `Hong`
Xoá n kí tự của xâu S bắt đầu từ vị trí vt.
1. Delete(S,vt,n)
Ví dụ
ý nghĩa
Thủ tục
Ch=`a`
UPCase(ch) = `A`
Chuyển kí tự ch thành chữ hoa
4. UPCase(ch)
S1=`1` S2=`Hinh 1.2`
Pos(S1,S2) = 6
Cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2
3. Pos(S1,S2)
S = `Xin chao`
Length(S) = 8
Cho giá trị là độ dài của xâu S
2. Length(S)
Ví dụ
ý nghĩa
Hàm
S = `Tin hoc`
Copy(S,5,3)= `hoc`
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
1. Copy(S,vt,n)
3. Một số ví dụ
Nhập vào họ tên của hai học sinh, in ra màn hình họ tên dài hơn?
1
Các bước:
Thể hiện bằng pascal
1. Khai b¸o x©u
Var a,b: string;
2. NhËp x©u
BEGIN
Write(‘ Nhap xau ho ten thu nhat :’); Readln(a);
Write(‘Nhap xau ho ten thu hai :’); Readln(b);
3. Xö lÝ x©u
IF Length(a)>Length(b) Then write(a)
else write(b);
Readln;
END.
Nhập vào một xâu từ bàn phím, đưa ra màn hình xâu thu được bằng cách loại bỏ các dấu cách từ xâu đã cho?
2
Hãy nêu thuật toán để giải bài toán trên?
Ví dụ:
- Xâu ban đầu : `Mon Tin hoc`
- Kết quả ra màn hình : `MonTinhoc`
Thuật toán
B1. Khởi tạo xâu rỗng;
B2. Lần lượt duyệt qua tất cả các phần tử của xâu vừa nhập,
nếu phần tử được duyệt khác dấu cách thì bổ sung vào xâu rỗng.
Hãy viết chương trình dựa theo thuật toán bên.
1. Thực hiện so sánh các xâu sau:
‘Anh’ ‘Ban’
‘Lop 10C3 co Tuyen chu nhiem’ ‘Lop 10C3’
‘May tinh’ ‘May tinh’
2. Cho biết kết quả của biểu thức sau khi thực hiện phép toán sau:
Biết S:=‘ Chung tay’; S2:=‘ Viet Nam’
a. ‘CO’ + ‘RONA’
b. S+ ’ phong chong’ + ’ corona ’
c. Viết biểu thức ghép xâu để cho kết quả là:
‘Viet Nam Chung tay phong chong virus corona’
<
>
=
‘CORONA’
‘Chung tay phong chong corona ’
S2 + S + ‘ phong chong virus corona’
CỦNG CỐ
Hãy Nhớ!
Xâu là dãy kí tự trong bộ mã ASCII
 Var : string[Độ dài lớn nhất của xâu];
 Tham chiếu tới phần tử của xâu: [chỉ số]
 Các thao tác xử lí xâu:
Phép ghép xâu.
Phép so sánh xâu.
C¸c thñ tôc vµ hµm chuÈn xö lÝ x©u


Khái niệm xâu
Khai báo biến xâu
Thao tác xử lí xâu
KIỂU XÂU
nguon VI OLET