Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Bai12 kieuxau
1. LÂM THANH PHỤNG4/26/2018
WELCOME TO MY CLASS!
Go Vap High School
Informatics 11
________________________
Teacher: PhamThiBichTuong
Email: bichtuong2312@gamil.com
4. Nội dung
Khái niệm xâu
Khai báo xâu
Các thao tác xử lí xâu
Một số ví dụ
4/26/2018 4
(Tiết 1)
5. 1. Khái niệm xâu
Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là
phần tử của xâu. Số lượng kí tự trong 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.
Ví dụ:
Xâu S: ‘TINHOC’
- Có 6 phần tử → có độ dài là 6
- Chỉ số phần tử trong xâu thường được đánh số là 1.
- Tham chiếu đến phần tử của xâu được xác định bởi tên biến
xâu và chỉ số đặt trong cặp ngoặc [ và ]
Được viết như sau: <Tên biến xâu>[chỉ số]
VD: S[1] = ‘T’
S[5] = ‘O’ 5
T I N H O C
1 2 3 4 5 6
6. 2. Khai báo
Có hai cách
cách 1:
Var <tên biến> : string [độ dài lớn nhất của xâu];
Ví dụ: var hoten: string[30];
cách 2:
Var <tên biến> : string;
Ví dụ: var hoten: string;
• Lưu ý: trong mô tả xâ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.
Độ 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 ‘’.4/26/2018 6
7. 3. Các thao tác xử lí xâu
a. 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 xâu.
Có thể thực hiện phép ghép xâu đối với các hằng và biến xâu.
Ví dụ :
s1: ‘lop’ s2: ’11B5’
Phép ghép xâu:
s1 + s2 → ‘lop11B5’
s1 + ‘ ’ + s2 → ‘lop 11B5’
4/26/2018 7
8. 3. Các thao tác xử lí xâu
b. Phép so sánh
Sử dụng các phép so sánh =, <>, >, >=, <, <= và thực hiện theo
quy tắc:
+ Xâu a lớn hơn xâu b nếu như 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ụ :
‘anh’ ‘Anh’
‘anh’ ‘em’
>
<
4/26/2018 8
9. 3. Các thao tác xử lí xâu
b. Phép so sánh
Sử dụng các phép so sánh =, <>, >, >=, <, <= và thực hiện theo
quy tắc:
+ 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 là nhỏ hơn b
Ví dụ : ‘hoc tin’ ‘hoc tin hoc’
‘may tinh cua toi’ ‘may tinh’
<
>
4/26/2018 9
10. 3. Các thao tác xử lí xâu
b. Phép so sánh
Sử dụng các phép so sánh =, <>, >, >=, <, <= và thực hiện theo
quy tắc:
+ Hai xâu được coi là bằng nhau nếu chúng giống nhau hoàn
toàn
Ví dụ : ‘tin hoc’ ‘tin hoc’
‘may tinh’ ‘may tinh’
=
=
4/26/2018 10
11. Cần có thao tác gì
để chỉnh sửa xâu A
thành xâu B ?
AneyugnA
B A nneyugN
n
1 2 3 4 5 6 7 8 9
n
1 2 3 4 5 6 7 8 9 10
12. Thủ tục DELETE(St, vt, n)
• Xoá n kí tự của xâu St bắt đầu từ vị trí vt
Ví dụ 1:
St= ‘ABCDEF’
Delete(St,5,1);
Kết quả: St = ‘ABCDF’
C. CÁC THỦ TỤC XỬ LÝ XÂU:
3. Các thao tác xử lí xâu
13. Thủ tục INSERT(S1, S2, vt)
Ví dụ 1:
St1: ‘EFG’ St2: ‘ABCDHIKL’
E F G
1 2 3
A B C D H I K L
1 2 3 4 5 6 7 8
A B C D H I K L
E GF
Kết quả: St2 = ‘ABCDEFGHIKL’
1 2 3 4 5 6 7 8 9 10 11
Chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt
Insert(St1,St2,5);
3. Các thao tác xử lí xâu
14. ĐẶT VẤN ĐỀ
NỘI DUNG BÀI MỚI
CỦNG CỐ
• Thủ tục: Delete
• Thủ tục: Insert
• Hàm Copy
• Hàm Length
• Hàm Pos
• Hàm UpCase
Hàm COPY(S, vt, n)
• Tạo một xâu gồm n ký tự liên tiếp bắt đầu từ vị
trí vt của xâu S
Ví dụ 1:
St: ‘ABCDEFGHK’
Copy(St,5,5);
1 2 3 4 5 6 7 8 9
A B C D E F G H K
Copy
E F G KH
Kết quả St = ‘EFGHK’
15. Hàm LENGTH(S)
Ví dụ :
S: ‘ABC DEF’;
D: Length(S);
A B C D E F
1 2 73 654
Kết quả: D = 7
Cho giá trị là độ dài của xâu S
16. 5. Hàm POS(St1, St2)
A B C D E F
1 2 3 654
- Cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2
Ví dụ 1:
S2: ‘ABCDEF’
Kết quả: 3
Pos(CD,S2);
17. • Cho chữ cái in hoa ứng với chữ cái trong ch
6. Hàm UPCASE(Ch)
Upcase(Ch)
U p C a s e
1 2 3 4 5 6
Upcase(st[1])Upcase(st[2])Upcase(st[3])Upcase(st[4])Upcase(st[5])Upcase(st[6])
1 2 3 4 5 6
U p C a s e
P A S E
Kết quả: Ch = ‘A’
Ch: ‘a’
St
18. • Thủ tục: Delete
• Thủ tục: Insert
• Hàm Copy
• Hàm Length
• Hàm Pos
• Hàm UpCase
Copy(S, vt, n)
Insert(S1, S2, vt)
Delete(St, vt, n)
Pos(S1, S2)
Length(S)
Upcase(ch)
Các hàm và thủ tục xử lý xâu:
H·y
nhí!
21. • Nhập vào từ bàn phím một xâu. Kiểm tra xâu
đó có phải là xâu đối xứng hay không. Xâu
đối xứng có tính chất: đọc nó từ phải sang trái
cũng thu được kết quả giống như đọc từ trái
sang phải (còn được gọi là xâu palindrome).
4/26/2018 21
I.Bài tập 1
Xác định bài toán:
Input: Nhập họ tên của hai người vào hai biến xâu
Output: Đưa ra màn hình xâu dài hơn, nếu bằng nhau
thì đưa ra xâu nhập sau.
22. Ví dụ
• Xâu đối xứng: ABCBA, AAA,ABCCBA…
• Xâu không đối xứng: ABC, ABCDBA
4/26/2018 LÂM THANH PHỤNG 22
23. Program bt1;
Uses crt;
Var i, x: byte;
a, p: string;
BEGIN
write(‘Nhap vao xau:’);
readln(a);
x:= length(a);
p:= ‘’;
for i: = x downto 1 do
p := p + a[i];
if a = p then
write(‘La xau doi xung’)
else
write(‘Xau khong doi xung’);
readln
END.
Nhập xâu
Khai báo xâu
Xử lý xâu
25. b)Hãy viết lại chương trình trên, trong đó không dùng
biến xâu p
Ví dụ:
-So sánh các kí tự ở vị trí 18, 27,… nếu có kí tự
khác nhau thì không phải là xâu đối xứng. Bởi vậy
dùng biến Logic để ghi nhận sự phát hiện này
4/26/2018 25
A B C D D C B A
1 2 3 4 5 6 7 8
26. Program bai1b;
Uses crt;
Var a : string;
i,x : byte;
Kt : Boolean;
Begin
Clrscr;
Write(' Nhap vao xau: '); readln(a);
x:=length(a); Kt:=true; {khoi tao va coi xau la doi xung}
For i:=1 to x div 2 do {so sanh cap ki tu doi xung}
begin
If a[i]<> a[x-i+1] then Kt:=false;
end;
If Kt then write('doi xung') else write('khong doi xung');
readln;
End.
27. Bài tập
• Bài tập 2: Viết chương trình nhập vào từ bàn
phím một xâu. Thay thế tất cả các cụm kí tự
‘anh’ bằng cụm kí tự ‘em’.
• VD: ‘anh yeu truong anh’
• -> ‘em yeu truong em’
4/26/2018 27
Xác định bài toán:
Input: Nhập vào một xâu từ bàn phím
Output: Xuất ra kết quả đã Thay thế tất cả các
cụm kí tự ‘anh’ bằng cụm từ ‘em’.
28. Uses crt;
Var s: string;
i: byte;
Begin
Clrscr;
Write('Nhap xau s:');
Readln(s);
While Pos('anh',s) <> 0 do
Begin
i:=pos(‘anh’,s);
Delete(s,i,3);
Insert('em',s,i);
End;
writeln(‘xau da thay the:’,S);
readln
End.
Khai báo xâu
Nhập xâu
Xử lý xâu
29. • Xác định bài toán:
Input: Nhập vào một xâu từ bàn phím.
Output: Đưa ra màn hình xâu ở dạng in hoa.
4/26/2018 LÂM THANH PHỤNG 29
Bài tập 3: Viết chương trình nhập vào một xâu
S, in ra màn hình xâu đó ở dạng in hoa.
30. CHƯƠNG TRÌNH:
Program inhoa;
Uses crt;
Var S: string;
x, i: integer;
Begin
Clrscr;
Write(‘Nhap vao xau S: ’); readln(S);
X:=length(s);
For i:= 1 To x Do upcase(S[i]);
Write(‘Xau da chuyen:’,S);
Readln;
End.
Bài 12: Kiểu xâu.
31.
32. Củng cố
Câu 1: Khai báo nào là đúng
a. Var s: array[1…50] of char;
b. Var s: string[1..50] of char;
c. Var s: string[1..50];
d. Var s: string[50];
4/26/2018 LÂM THANH PHỤNG 32
33. Củng cố
Câu 2: Cho xâu kí tự s:=‘truong thpt Go Vap’;
Khi tham chiếu s[7] cho ta:
a. Gồm 7 kí tự đầu xâu
b. Gồm 7 kí tự cuối xâu
c. Là kí tự thứ 7 trong xâu
d. Xâu có 7 kí tự
4/26/2018 LÂM THANH PHỤNG 33
34. Củng cố
Câu 3: cho 2 xâu: s1:=‘the’; s2:=‘dat’;
Phát biểu nào là đúng
a. Hai xâu bằng nhau
b. Hai xâu dài bằng nhau
c. Xâu s1 nhỏ hơn xâu s2
d. Xâu s2 <= xâu s1
4/26/2018 LÂM THANH PHỤNG 34
35. Củng cố
Câu 4: cho 2 xâu: s1:=‘the’; s2:=‘dat’;
Phép ghép xâu s1 + s2 cho kết quả:
a. ‘the dat’
b. ‘dat the’
c. ‘thedat’
d. ‘datthe’
4/26/2018 LÂM THANH PHỤNG 35
36. Củng cố
Câu 5: cho 2 xâu: s1:=‘chi hai’; s2:=‘anh hai’;
So sánh 2 xâu s1 và s2 ta được
a. s1 > s2
b. s1 < s2
c. s1 >= s2
d. s1 <= s2
4/26/2018 LÂM THANH PHỤNG 36
37. Củng cố
Câu 6: Cho 3 xâu s1:=‘kim’; s2:=‘oanh’;
s3:=‘kim oanh’;
Kết quả của phép so sánh s3 với (s1 + s2) ta được:
a. s3 > s1 + s2
b. s3 < s1 + s2
c. s3 = s1 + s2
d. s3 <= s + s2
4/26/2018 LÂM THANH PHỤNG 37
38. Củng cố
Câu 7: cho khai báo sau: var hoten:string;
Phát biểu nào sau đây là đúng?
a. Câu lệnh sai vì thiếu độ dài tối đa của xâu
b. Xâu có độ dài lớn nhất là 0
c. Xâu có độ dài lớn nhất là 255
d. Bắt buộc phải khai báo độ dài xâu
4/26/2018 LÂM THANH PHỤNG 38
39. GHI NHỚ
1.Xâu là dãy kí tự trọng bộ mã ASCII.
2.Độ dài của xâu là số lượng các phần
tử của xâu.
3.Khai báo biến xâu var <tên biến>:
string[độ dài lớn nhất của xâu];
4.Tham chiếu đến phần tử của xâu <tên
biến xâu>[chỉ số];
5.Các phép xử lý xâu
Phép ghép xâu, phép so sánh, hàm và
thủ tục.4/26/2018 LÂM THANH PHỤNG 39