Bài 12. Kiểu xâu
Chia sẻ bởi Chau Phong |
Ngày 10/05/2019 |
87
Chia sẻ tài liệu: Bài 12. Kiểu xâu thuộc Tin học 11
Nội dung tài liệu:
? Viết khai báo biến ch thuộc kiểu kí tự .
Var ch: char ;
Kiểu kí tự cho phép nhập 1 lần 1 kí tự.
Vòng lặp sẽ thực hiện bao nhiêu lần ?
Mất nhiều thời gian để thực hiện chương trình.
Giả sử ta có khai báo sau:
For i:=1 to n do
begin
write(‘ nhap ki tu thu’, i );
readln(ht[i]);
End;
Để nhập vào họ tên của một học sinh ta viết
Đoạn lệnh sau :
Var ht : array[1..n] of char ;
Bài 12 : KIỂU XÂU
? Một số khái niệm
1. Khai báo
2. Các thao tác xử lí xâu
3. Một số ví dụ
‘Mua Xuan’ xâu gồm 8 kí tự
‘999 hoa hong’
Khoảng trắng là 1 kí tự
‘19/05–Sinh nhat Bac’
Em hiểu thế nào về Xâu ?
Mỗi kí tự là một phần tử của xâu.
Bộ mã
ASCII
Xâu
dãy kí tự
Độ dài của 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 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.
1. Khai báo
Var < teân bieán > : String[n] ;
Trong đó :
+ Var , string : từ khóa.
+ n là độ dài của xâu ( n <= 255)
VD: Var hoten : string[20] ;
diachi: string ;
Bài 12 : KIỂU XÂU
Truy xuất đến các phần tử của xâu:
VD: S ?
Thông qua tên biến xâu và chỉ số đặt trong cặp ngoặc vuông [ ]
S[3] a
S[8] n
Nhập / xuất dữ liệu cho xâu:
? Tương tự cách nhập/ xuất dữ liệu của biến thường ( sử dụng Readln / Write )
Có thể dùng phép gán để nhập giá trị cho biến xâu:
st := `Tra Vinh` ;
2.Các thao tác xử lí xâu
a. Phép ghép xâu: kí hiệu +
Để ghép nhiều xâu thành một xâu.`
VD:
‘HA’ + ‘NOI’
KQ: ‘ HANOI’
‘TRA VINH’ + ‘ QUE TOI’
KQ: ‘TRA VINH QUE TOI‘
1.Khai báo:
Bài 12 : KIỂU XÂU
2.Các thao tác xử lí xâu
a. Phép ghép xâu: kí hiệu +
b. So sánh xâu:
1.Khai báo:
Bài 12 : KIỂU XÂU
‘BA’ ‘ANH’
‘ME’ ‘EM’
Neáu kí töï ñaàu tieân giöõa 2 xaâu A vaø B laø khaùc nhau vaø kí töï cuûa xaâu A coù maõ ASCII lôùn hôn thì xaâu A seõ lôùn hôn xaâu B
>
>
b. So sánh xâu:
‘AN’ ‘ANH’
‘ABC’ ‘ABC123’
? Nếu 2 xâu có độ dài khác nhau và xâu A là đoạn đầu của xâu B thì xâu A nhỏ hơn xâu B.
‘YOU’ ‘YOU’
‘123’ ‘123’
? Hai xâu được coi là bằng nhau nếu chúng giống nhau hoàn toàn.
<
<
=
=
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
VD: st := `abcdef` ;
Xóa n kí tự bắt đầu từ vị trí vt trong chuỗi st
Delete(st,5,2) ;
KQ : ‘abcd’
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
d. Thủ tục Insert( s1 , s2 , vt) :
VD: s1 := ‘THPT’ ;
Chèn xâu s1 vào xâu s2 bắt đầu ở vị trí vt của xâu s2
KQ : ‘Truong THPT Chu Van An’
s2 := ‘Truong Chu Van An’ ;
Insert(s1,s2,8);
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
d. Thủ tục Insert( s1 , s2 , vt) :
e. Hàm Copy( S, vt, n ):
VD: s := ‘mon Tin hoc’ ;
Tạo xâu mới gồm n kí tự bắt đầu từ vị trí vt của xâu S.
KQ : ‘hoc’
Copy(s,9,3);
f. Hàm length (s):
VD: s := ’Tra Vinh’ ;
Cho giá trị là độ dài của xâu.
KQ : 8
Length(s) ;
g. Hàm Pos (s1, s2):
h. Hàm upcase(ch):
VD: s1 := ‘ab’ ;
VD: ch := ‘a’ ;
Trả về vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2
KQ : 3
s2 := ‘aaabcccd’ ;
Pos(s1,s2);
Trả về chữ cái in hoa
KQ : ‘A’
Upcase(ch) ;
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
d. Thủ tục Insert( s1 , s2 , vt) :
g. Hàm Pos (s1, s2):
h. Hàm upcase(ch):
f. Hàm length (s):
e. Hàm Copy( S, vt, n ):
3. Một số ví dụ
3. Một số ví dụ
a./ Ví dụ 1: Viết chương trình nhập vào họ tên của 2 người vào 2 biến xâu và đư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.
Var a, b : string [30] ;
Begin
Write(‘ho ten nguoit1 :’);
Readln(a);
Write(‘ho ten nguoit2: ’);
Readln(b);
If length(a) > length(b) then
Write(a)
Else
write(b);
Readln;
End.
Bài 12 : KIỂU XÂU
b./ Ví dụ 2: Viết chương trình nhập vào một xâu từ phím và đưa ra màn hình xâu được viết theo thứ tự ngược lại.
Var a : string[50] ;
i, d : byte ;
Begin
Write(‘nhap vao xau:’);
Readln(a);
d:= length(a);
For i:= d downto 1 do
Write(a[i]);
Readln;
End.
Về làm bài tập 10 trang 80 SGK
1./ Viết chương trình nhập vào một xâu từ bàn phím và đưa ra màn hình xâu ban đầu nhưng loại bỏ dấu cách.
2./ Viết chương trình nhập vào xâu, sau đó thay tất cả các kí tự a trong xâu vừa nhập bằng kí tự o. Tìm số lần xuất hiện của kí tự a trong xâu.
3./ Viết chương trình nhập vào xâu, sau đó đỗi xâu kí tự vừa nhập sang dạng in hoa.
Var ch: char ;
Kiểu kí tự cho phép nhập 1 lần 1 kí tự.
Vòng lặp sẽ thực hiện bao nhiêu lần ?
Mất nhiều thời gian để thực hiện chương trình.
Giả sử ta có khai báo sau:
For i:=1 to n do
begin
write(‘ nhap ki tu thu’, i );
readln(ht[i]);
End;
Để nhập vào họ tên của một học sinh ta viết
Đoạn lệnh sau :
Var ht : array[1..n] of char ;
Bài 12 : KIỂU XÂU
? Một số khái niệm
1. Khai báo
2. Các thao tác xử lí xâu
3. Một số ví dụ
‘Mua Xuan’ xâu gồm 8 kí tự
‘999 hoa hong’
Khoảng trắng là 1 kí tự
‘19/05–Sinh nhat Bac’
Em hiểu thế nào về Xâu ?
Mỗi kí tự là một phần tử của xâu.
Bộ mã
ASCII
Xâu
dãy kí tự
Độ dài của 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 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.
1. Khai báo
Var < teân bieán > : String[n] ;
Trong đó :
+ Var , string : từ khóa.
+ n là độ dài của xâu ( n <= 255)
VD: Var hoten : string[20] ;
diachi: string ;
Bài 12 : KIỂU XÂU
Truy xuất đến các phần tử của xâu:
VD: S ?
Thông qua tên biến xâu và chỉ số đặt trong cặp ngoặc vuông [ ]
S[3] a
S[8] n
Nhập / xuất dữ liệu cho xâu:
? Tương tự cách nhập/ xuất dữ liệu của biến thường ( sử dụng Readln / Write )
Có thể dùng phép gán để nhập giá trị cho biến xâu:
st := `Tra Vinh` ;
2.Các thao tác xử lí xâu
a. Phép ghép xâu: kí hiệu +
Để ghép nhiều xâu thành một xâu.`
VD:
‘HA’ + ‘NOI’
KQ: ‘ HANOI’
‘TRA VINH’ + ‘ QUE TOI’
KQ: ‘TRA VINH QUE TOI‘
1.Khai báo:
Bài 12 : KIỂU XÂU
2.Các thao tác xử lí xâu
a. Phép ghép xâu: kí hiệu +
b. So sánh xâu:
1.Khai báo:
Bài 12 : KIỂU XÂU
‘BA’ ‘ANH’
‘ME’ ‘EM’
Neáu kí töï ñaàu tieân giöõa 2 xaâu A vaø B laø khaùc nhau vaø kí töï cuûa xaâu A coù maõ ASCII lôùn hôn thì xaâu A seõ lôùn hôn xaâu B
>
>
b. So sánh xâu:
‘AN’ ‘ANH’
‘ABC’ ‘ABC123’
? Nếu 2 xâu có độ dài khác nhau và xâu A là đoạn đầu của xâu B thì xâu A nhỏ hơn xâu B.
‘YOU’ ‘YOU’
‘123’ ‘123’
? Hai xâu được coi là bằng nhau nếu chúng giống nhau hoàn toàn.
<
<
=
=
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
VD: st := `abcdef` ;
Xóa n kí tự bắt đầu từ vị trí vt trong chuỗi st
Delete(st,5,2) ;
KQ : ‘abcd’
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
d. Thủ tục Insert( s1 , s2 , vt) :
VD: s1 := ‘THPT’ ;
Chèn xâu s1 vào xâu s2 bắt đầu ở vị trí vt của xâu s2
KQ : ‘Truong THPT Chu Van An’
s2 := ‘Truong Chu Van An’ ;
Insert(s1,s2,8);
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
d. Thủ tục Insert( s1 , s2 , vt) :
e. Hàm Copy( S, vt, n ):
VD: s := ‘mon Tin hoc’ ;
Tạo xâu mới gồm n kí tự bắt đầu từ vị trí vt của xâu S.
KQ : ‘hoc’
Copy(s,9,3);
f. Hàm length (s):
VD: s := ’Tra Vinh’ ;
Cho giá trị là độ dài của xâu.
KQ : 8
Length(s) ;
g. Hàm Pos (s1, s2):
h. Hàm upcase(ch):
VD: s1 := ‘ab’ ;
VD: ch := ‘a’ ;
Trả về vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2
KQ : 3
s2 := ‘aaabcccd’ ;
Pos(s1,s2);
Trả về chữ cái in hoa
KQ : ‘A’
Upcase(ch) ;
2. Các thao tác xử lí xâu
a. Phép ghép xâu : kí hiệu +
b. So sánh xâu : > < = ..
1.Khai báo:
Bài 12 : KIỂU XÂU
c. Thủ tục Delete( st , vt , n) :
d. Thủ tục Insert( s1 , s2 , vt) :
g. Hàm Pos (s1, s2):
h. Hàm upcase(ch):
f. Hàm length (s):
e. Hàm Copy( S, vt, n ):
3. Một số ví dụ
3. Một số ví dụ
a./ Ví dụ 1: Viết chương trình nhập vào họ tên của 2 người vào 2 biến xâu và đư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.
Var a, b : string [30] ;
Begin
Write(‘ho ten nguoit1 :’);
Readln(a);
Write(‘ho ten nguoit2: ’);
Readln(b);
If length(a) > length(b) then
Write(a)
Else
write(b);
Readln;
End.
Bài 12 : KIỂU XÂU
b./ Ví dụ 2: Viết chương trình nhập vào một xâu từ phím và đưa ra màn hình xâu được viết theo thứ tự ngược lại.
Var a : string[50] ;
i, d : byte ;
Begin
Write(‘nhap vao xau:’);
Readln(a);
d:= length(a);
For i:= d downto 1 do
Write(a[i]);
Readln;
End.
Về làm bài tập 10 trang 80 SGK
1./ Viết chương trình nhập vào một xâu từ bàn phím và đưa ra màn hình xâu ban đầu nhưng loại bỏ dấu cách.
2./ Viết chương trình nhập vào xâu, sau đó thay tất cả các kí tự a trong xâu vừa nhập bằng kí tự o. Tìm số lần xuất hiện của kí tự a trong xâu.
3./ Viết chương trình nhập vào xâu, sau đó đỗi xâu kí tự vừa nhập sang dạng in hoa.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Chau Phong
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)