Bài 12. Kiểu xâu
Chia sẻ bởi Lê Công Hưng |
Ngày 10/05/2019 |
67
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:
Câu hỏi:
Cho chuỗi ký tự sau: ABCDEF.
Hãy khai báo một mảng một chiều để chứa các kí tự trên (Char).
C1: TYPE Mang = ARRAY [ 1 . . 6 ] OF Char;
VAR Chu : Mang;
C2: VAR Chu : ARRAY [ 1 . . 6 ] OF Char;
Trả lời :
Bài 12
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;
a. Khai báo:
2. Khai báo kiểu dữ liệu xâu (trong Pascal)
Nhập xâu:
Sử dụng lệnh: Read hoặc Readln
Ví du: Read(s); hoặc Readln(s)
Xuất giá trị của biến xâu :
- Sử dụng lệnh: Write hoặc Writeln
- Ví du: Wrtie(s); hoặc Writeln(s)
b. Nhập, xuất giá trị một biến xâu
c. Tham chiếu đến phần tử trong xâu
* Cú pháp:[]
* Ví dụ: Nếu xâu st = ‘lop 11A’ thì st[7] = ‘A’
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
* Phép so sánh: =,<>, <,<=,>,>=
`Ha Noi` > `Ha Nam`
`Xau` < `Xau ki tu`
* Quy ước:
- 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.
- Xâu rỗng là xâu ``
`Tin hoc` = `Tin hoc`
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/HM
S = `Xin chao`
Length(S) = 8
Cho giá trị là độ dài của xâu S
2. Length(S)
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)
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 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
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 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’
Hàm Delete(St, 5, 2);
Xâu St
Xâu St
XÂU S1
XÂU S2
Hàm Insert(s2, s1, 3)
XÂU S1
Xâu St
Hàm Copy(st, 3, 4);
Kết quả
CHƯƠNG TRÌNH
PROGRAM LAMSACH;
VAR ST,ST1:STRING;
I:INTEGER;
BEGIN
WRITELN(`NHAP XAU ST= `);
READLN(ST);
ST1:=``;
FOR I:=1 TO LENGTH(ST) DO
IF ST[I] <> ` ` THEN ST1:=ST1 + ST[I] ;
WRITELN(ST1);
READLN;
END.
Cho chuỗi ký tự sau: ABCDEF.
Hãy khai báo một mảng một chiều để chứa các kí tự trên (Char).
C1: TYPE Mang = ARRAY [ 1 . . 6 ] OF Char;
VAR Chu : Mang;
C2: VAR Chu : ARRAY [ 1 . . 6 ] OF Char;
Trả lời :
Bài 12
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;
a. Khai báo:
2. Khai báo kiểu dữ liệu xâu (trong Pascal)
Nhập xâu:
Sử dụng lệnh: Read hoặc Readln
Ví du: Read(s); hoặc Readln(s)
Xuất giá trị của biến xâu :
- Sử dụng lệnh: Write hoặc Writeln
- Ví du: Wrtie(s); hoặc Writeln(s)
b. Nhập, xuất giá trị một biến xâu
c. Tham chiếu đến phần tử trong xâu
* Cú pháp:
* Ví dụ: Nếu xâu st = ‘lop 11A’ thì st[7] = ‘A’
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
* Phép so sánh: =,<>, <,<=,>,>=
`Ha Noi` > `Ha Nam`
`Xau` < `Xau ki tu`
* Quy ước:
- 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.
- Xâu rỗng là xâu ``
`Tin hoc` = `Tin hoc`
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/HM
S = `Xin chao`
Length(S) = 8
Cho giá trị là độ dài của xâu S
2. Length(S)
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)
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 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
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 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’
Hàm Delete(St, 5, 2);
Xâu St
Xâu St
XÂU S1
XÂU S2
Hàm Insert(s2, s1, 3)
XÂU S1
Xâu St
Hàm Copy(st, 3, 4);
Kết quả
CHƯƠNG TRÌNH
PROGRAM LAMSACH;
VAR ST,ST1:STRING;
I:INTEGER;
BEGIN
WRITELN(`NHAP XAU ST= `);
READLN(ST);
ST1:=``;
FOR I:=1 TO LENGTH(ST) DO
IF ST[I] <> ` ` THEN ST1:=ST1 + ST[I] ;
WRITELN(ST1);
READLN;
END.
* 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ẻ: Lê Công Hưng
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)