Bài 12. Kiểu xâu
Chia sẻ bởi Nguyễn Mạnh Hùng |
Ngày 10/05/2019 |
131
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:
Bài 12
Giáo án điện tử tin học lớp 11
Nhập vào hai địa danh, in ra màn hình địa danh dài hơn?
A
B
Hãy xác định kiểu dữ liệu của hai biến A,B?
Bài toán đặt vấn đề:
Xâu là dãy các kí tự trong bộ mã ASCII.
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
1. Khái niệm
2. Khai báo kiểu dữ liệu xâu (trong Pascal)
Var : String[độ dài lớn nhất];
Ví dụ: Var hoten: String[26];
? Khi khai báo xâu có thể bỏ qua phần khai báo [độ dài lớn nhất], khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.
Ví dụ: Var chuthich :String;
3. Các thao tác xử lí xâu
a. Biểu thức xâu: Là biểu thức trong đó các toán hạng là các biến xâu, biến kí tự.
Ví dụ: ` Ha` + ` Noi` ? `Ha Noi`
* Phép ghép xâu: kí hiệu "+" 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
`Khanh` + `Lam` + ` - ` + `U` + `Minh`
? `Khanh Lam - U Minh`
3. Các thao tác xử lí xâu
`Ha Noi` > `Ha Nam`
`Xau` < `Xau ki tu`
- Xâu A = B nếu chúng giống hệt nhau.
- Xâu A > B nếu:
+ Kí tự đầu tiên khác nhau giữa chúng ở xâu A có mã ASCII lớn hơn ở xâu B.
+ Xâu B là đoạn đầu của xâu A.
`Tin hoc` = `Tin hoc`
Ví dụ
* Phép so sánh: bằng (=), khác (<>), nhỏ hơn (<), nhỏ hơn hoặc bằng (<=), lớn hơn (>), lớn hơn hoặc bằng (>=)
+ Quy ước:
- Xâu rỗng là xâu ``
Ví dụ
b. 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
3. Các thao tác xử lí xâu
* Các thủ tục xử lí xâu
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)
b. Các thủ tục và hàm chuẩn xử lí xâu
3. Các thao tác xử lí xâu
* Các hàm chuẩn xử lí xâu
Hãy nhớ!
? Xâu là dãy các kí tự trong bộ mã ASCII.
? Khai báo: tên xâu, độ dài lớn nhất của xâu.
? Tham chiếu phần tử của xâu: Tên xâu[chỉ số]
? Các thao tác xử lí thường dùng:
+ Phép ghép xâu, so sánh xâu;
‘Xin chao cac ban!’
Var S : string[30]
S[1] = ‘X’
Bài 15
Giáo án điện tử tin học lớp 11
Tiết thứ 2/2
4. 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 hai xâu từ bàn phím, kiểm tra xem kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không?
2
Các bước:
1. Khai b¸o x©u : A,B
2. NhËp x©u
3. Xö lÝ x©u, trong ®ã:
Kí tự đầu tiên của xâu A:
A[1]
Kí tự cuối cùng của xâu B:
B[x] trong ®ã X lµ ®é dµi cña x©u B
Dựa vào các bước bên, hãy hoàn thiện chương trình?
4. Một số ví dụ
4. Một số ví dụ
Các bước:
Thể hiện bằng pascal
1. Khai b¸o x©u
Var x: byte
a,b: string;
2. NhËp x©u
BEGIN
Write(‘ Nhap xau thu nhat :’); Readln(a);
Write(‘Nhap xau thu hai :’); Readln(b);
3. Xö lÝ x©u
x := length(b);
IF a[1] = b[x] Then write(‘Trung nhau’)
else write(‘Khac nhau’);
Readln;
END.
Nhập vào hai xâu từ bàn phím, kiểm tra xem kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không?
2
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?
3
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.
4. Một số ví dụ
4. Một số ví dụ
Các bước:
Thể hiện bằng pascal
1. Khai b¸o x©u
Var i, k: byte
a, b: string;
2. NhËp x©u
BEGIN
Write(‘ Nhap xau :’); Readln(a);
3. Xö lÝ x©u
k := length(a); b := ‘ ’;
For i:=1 to k do
IF a[i] <> ‘ ’ Then b := b+a[i];
Writeln (‘Ket qua: ’,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?
3
Nhập vào một xâu từ bàn phím, đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại?
4
Ví dụ:
- Xâu ban đầu : `Khanh Lam`
- Kết quả ra màn hình : `maL hnahK`
Hãy viết chương trình dựa theo thuật toán bên.
4. Một số ví dụ
4. Một số ví dụ
Các bước:
Thể hiện bằng pascal
1. Khai b¸o x©u
Var i, k: byte
a : string;
2. NhËp x©u
BEGIN
Write(‘ Nhap xau :’); Readln(a);
3. Xö lÝ x©u
k := length(a);
For i:=k downto 1 do
Write (a[i]);
Readln;
END.
Nhập vào một xâu từ bàn phím, đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại?
4
Hãy nhớ!
? Xâu là dãy các kí tự trong bộ mã ASCII.
? Khai báo: tên xâu, độ dài lớn nhất của xâu.
? Tham chiếu phần tử của xâu: Tên xâu[chỉ số]
? Các thao tác xử lí thường dùng:
+ Phép ghép xâu, so sánh xâu;
+ Các thủ tục và hàm chuẩn.
‘Xin chao cac ban!’
Var S : string[30]
S[1] = ‘X’
Giáo án điện tử tin học lớp 11
Nhập vào hai địa danh, in ra màn hình địa danh dài hơn?
A
B
Hãy xác định kiểu dữ liệu của hai biến A,B?
Bài toán đặt vấn đề:
Xâu là dãy các kí tự trong bộ mã ASCII.
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
1. Khái niệm
2. Khai báo kiểu dữ liệu xâu (trong Pascal)
Var
Ví dụ: Var hoten: String[26];
? Khi khai báo xâu có thể bỏ qua phần khai báo [độ dài lớn nhất], khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.
Ví dụ: Var chuthich :String;
3. Các thao tác xử lí xâu
a. Biểu thức xâu: Là biểu thức trong đó các toán hạng là các biến xâu, biến kí tự.
Ví dụ: ` Ha` + ` Noi` ? `Ha Noi`
* Phép ghép xâu: kí hiệu "+" 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
`Khanh` + `Lam` + ` - ` + `U` + `Minh`
? `Khanh Lam - U Minh`
3. Các thao tác xử lí xâu
`Ha Noi` > `Ha Nam`
`Xau` < `Xau ki tu`
- Xâu A = B nếu chúng giống hệt nhau.
- Xâu A > B nếu:
+ Kí tự đầu tiên khác nhau giữa chúng ở xâu A có mã ASCII lớn hơn ở xâu B.
+ Xâu B là đoạn đầu của xâu A.
`Tin hoc` = `Tin hoc`
Ví dụ
* Phép so sánh: bằng (=), khác (<>), nhỏ hơn (<), nhỏ hơn hoặc bằng (<=), lớn hơn (>), lớn hơn hoặc bằng (>=)
+ Quy ước:
- Xâu rỗng là xâu ``
Ví dụ
b. 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
3. Các thao tác xử lí xâu
* Các thủ tục xử lí xâu
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)
b. Các thủ tục và hàm chuẩn xử lí xâu
3. Các thao tác xử lí xâu
* Các hàm chuẩn xử lí xâu
Hãy nhớ!
? Xâu là dãy các kí tự trong bộ mã ASCII.
? Khai báo: tên xâu, độ dài lớn nhất của xâu.
? Tham chiếu phần tử của xâu: Tên xâu[chỉ số]
? Các thao tác xử lí thường dùng:
+ Phép ghép xâu, so sánh xâu;
‘Xin chao cac ban!’
Var S : string[30]
S[1] = ‘X’
Bài 15
Giáo án điện tử tin học lớp 11
Tiết thứ 2/2
4. 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 hai xâu từ bàn phím, kiểm tra xem kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không?
2
Các bước:
1. Khai b¸o x©u : A,B
2. NhËp x©u
3. Xö lÝ x©u, trong ®ã:
Kí tự đầu tiên của xâu A:
A[1]
Kí tự cuối cùng của xâu B:
B[x] trong ®ã X lµ ®é dµi cña x©u B
Dựa vào các bước bên, hãy hoàn thiện chương trình?
4. Một số ví dụ
4. Một số ví dụ
Các bước:
Thể hiện bằng pascal
1. Khai b¸o x©u
Var x: byte
a,b: string;
2. NhËp x©u
BEGIN
Write(‘ Nhap xau thu nhat :’); Readln(a);
Write(‘Nhap xau thu hai :’); Readln(b);
3. Xö lÝ x©u
x := length(b);
IF a[1] = b[x] Then write(‘Trung nhau’)
else write(‘Khac nhau’);
Readln;
END.
Nhập vào hai xâu từ bàn phím, kiểm tra xem kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không?
2
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?
3
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.
4. Một số ví dụ
4. Một số ví dụ
Các bước:
Thể hiện bằng pascal
1. Khai b¸o x©u
Var i, k: byte
a, b: string;
2. NhËp x©u
BEGIN
Write(‘ Nhap xau :’); Readln(a);
3. Xö lÝ x©u
k := length(a); b := ‘ ’;
For i:=1 to k do
IF a[i] <> ‘ ’ Then b := b+a[i];
Writeln (‘Ket qua: ’,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?
3
Nhập vào một xâu từ bàn phím, đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại?
4
Ví dụ:
- Xâu ban đầu : `Khanh Lam`
- Kết quả ra màn hình : `maL hnahK`
Hãy viết chương trình dựa theo thuật toán bên.
4. Một số ví dụ
4. Một số ví dụ
Các bước:
Thể hiện bằng pascal
1. Khai b¸o x©u
Var i, k: byte
a : string;
2. NhËp x©u
BEGIN
Write(‘ Nhap xau :’); Readln(a);
3. Xö lÝ x©u
k := length(a);
For i:=k downto 1 do
Write (a[i]);
Readln;
END.
Nhập vào một xâu từ bàn phím, đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại?
4
Hãy nhớ!
? Xâu là dãy các kí tự trong bộ mã ASCII.
? Khai báo: tên xâu, độ dài lớn nhất của xâu.
? Tham chiếu phần tử của xâu: Tên xâu[chỉ số]
? Các thao tác xử lí thường dùng:
+ Phép ghép xâu, so sánh xâu;
+ Các thủ tục và hàm chuẩn.
‘Xin chao cac ban!’
Var S : string[30]
S[1] = ‘X’
* 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ẻ: Nguyễn Mạnh Hùng
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)