Bài 12. Kiểu xâu

Chia sẻ bởi Thiều Thị Thủy Ngân | Ngày 10/05/2019 | 168

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:

Chương IV: Kiểu Dữ liệu Có Cấu Trúc
§12. KIỂU DỮ LIỆU XÂU
I. Khai báo kiểu dữ liệu xâu:
-Xâu là dãy các kí tự trong bảng mã ASCII.  đặt trong hai dấu phẩy ‘và‘.
- Độ dài của xâu là số lượng kí tự trong một xâu.
- Xâu rỗng là xâu có độ dài 0  biểu diễn ‘’
- Kí tự trống ‘ ‘ gõ phím Space
Ví dụ: Xâu kí tự ‘Nhom 7’ độ dài: 6
- Để khai báo biến kiểu dữ liệu xâu, TP dùng riêng STRING tiếp theo là Biến kiểu xâu có thể khai báo như sau:
VAR : STRING [ Độ dài lớn nhất của xâu] ;
- Độ dài lớn nhất của xâu :(có giá trị từ 1..255) được ghi trong cặp ngoặc [ và ].
Ví dụ: Name là biến kiểu xâu tối đa 8 kí tự
- Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, chẳng hạn:
Var Chugiai : String;
Khi đó, độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.
Var Name : string [8];
II. Các thao tác xử lí xâu
Tham chiếu đến phần tử của xâu được xác định bởi tên xâu và chỉ số đặt trong cặp ngoặc vuông.
Tên biến [ i ] ; i : thứ tự của kí tự đó.
Ví dụ: Name[1] có nội dung là ‘N’.
Name[5] có nội dung là ‘ ‘
Name[7] có nội dung là ‘’
Name[9] không xác định vì kiểu xâu tối đa 8 kí tự
 Các kí tự của xâu được đánh số bắt đầu từ 1. Có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự.
A. Biểu thức trong đó các toán hạng là các biến xâu, biến kí tự, hằng xâu gọi là biểu thức xâu. Với các dữ liệu kiểu xâu có thể thực hiện phép toán ghép xâu và các phép toán quan hệ.
1. Phép ghép xâu, kí hiệu là +
Ví dụ 1:
Phép ghép xâu: “+”
‘Ha’ + ‘ Noi’ + ‘ - ‘ + ‘Viet Nam’
 Cho xâu kết quả: Ha Noi – Viet Nam
Ðược sử 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à các biến xâu.
2. Các phép so sánh =,<>,<, >,<=,>=
Thực hiện việc so sánh hai xâu và có thứ tự ưu tiên thực hiện thấp hơn phép ghép xâu.
Xâu A được coi là 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ó chỉ số trong bàng mã ASCII là lớn hơn.
Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của biến thì A nhỏ hơn B.
Ví dụ 2:
‘My Computer’ < ‘My Computer is halt’
Hai xâu được coi là bằng nhau nếu như chúng giống nhau hoàn toàn.
Ví dụ 3:
‘TIN HOC’ = ‘TIN HOC’
B. Để xử lí các xâu, có thể sử dụng các thủ tục và hàm chuẩn dưới đây:
1. Thủ tục chuẩn Delete (St, vt, n)
Thực hiện việc xóa n kí tự của xâu St bắt đầu từ vị trí vt.
Ví dụ 4:
Ví dụ 4:
2. Thủ tục Insert (S1, S2, vt)
Ví dụ 5:
Chèn xâu S1 vào xâu S2, bắt đầu ở vị trí vt.
3. Hàm Copy (S, vt, N)
Ví dụ 6:
4. Hàm Length (S)
Ví dụ 7:
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.
Cho giá trị là độ dài của xâu S.
5. Hàm Pos (S1,S2)
Ví dụ 8:
6. Hàm UpCase (ch)
Ví dụ 9:
Cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2
Cho chữ cái viết hoa ứng với chữ cái trong ch.
III. Một số ví dụ:
Ví dụ 1:
Chương trình dưới đây nhập họ tên của hai người vào hai 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.
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.
Var a,b : String;
Begin
Write (‘ Nhap xau ho ten thu nhat : ‘); Readln(a);
k := length (a);
b := ‘’;
For i := 1 To k Do
If a[i] <> ‘’ Then b := b+a[i];
Writeln(‘ Ket qua : ‘,b);
Readln;
End.
2. Chương trình :
Ví dụ 2:
Chương trình dưới đây nhập vào hai xâu từ bàn phím và 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 hay không
1. Xác định bài toán:
Input: nhập vào hai xâu từ bàn phím
Output: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 hay không
2. Chương trình :
Var x, y : Byte;
a, b : String;
Begin
Write ( ‘Nhap xau thu nhat : ‘);
Readln (a);
Write ( ‘Nhap xau thu hai : ‘);
Readln (b);
{ xác định độ dài của xâu b để biết vị trí của kí tự cuối cùng}
x := length (b);
If a[1] = b[x] Then
Write (‘ Trung nhau’)
Else Write (‘Khac nhau’);
Readln;
End.
Ví dụ 3:
Chương trình sau nhập một xâu vào từ bàn phím và đưa ra màn hình xâu đó nhưng viết theo thứ tự ngược lại.
1. Xác định bài toán:
Input: một xâu vào từ bàn phím
Output: đưa ra màn hình xâu đó nhưng viết theo thứ tự ngược lại.
2. Chương trình :
Program dao_nguoc_xau;
Var i, k :Byte;
a : String;
Begin
Write (‘ Nhap xau : ‘); Readln(a);
k := length (a); { xác định độ dài xâu}
For i := k DownTo 1 Do
Write ( a[i] );
Readln;
End.
Ví dụ 4:
Chương trình sau nhập vào một xâu từ bàn phím và đưa ra màn hình xâu thu được từ nó bởi việc loại bỏ các dấu cách
1. Xác định bài toán:
Input: một xâu từ bàn phím
Output:xâu mới thu được từ xâu vừa nhập bởi việc loại bỏ các dấu cách
2. Chương trình :
Program tao_xau;
Var i, k : Byte;
a, b : String;
Begin
Write (‘ Nhap xau : ‘); Readln(a);
k := length (a);
b := ‘’; {xâu trống}
For i := 1 To k Do
If a[i] <> ‘ ‘ Then b := b+a[i];
Writeln ( ‘Ket qua : ‘,b);
Readln;
End.
Ví dụ 5:
Chương trình sau nhập vào từ bàn phím xâu kí tự S1, tạo xâu S2 gồm tất cả các chữ số có trong S1 (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình.
1. Xác định bài toán:
Input: nhập vào từ bàn phím xâu kí tự S1
Output: xuất ra màn hình xâu S2 gồm tất cả các chữ số có trong xâu S1 (giữ nguyên thứ tự xuất hiện của chúng)
2. Chương trình :
Program XuLyXau;
Var S1,S2 : String;
i: Byte;
Begin
Write(‘Nhap vao xau S1 : ‘);
Readln(S1);
S2 := ‘’; { khởi tạo xâu S2 rỗng}
For i := 1 To length(S1) Do
If (‘0’ <= S1[i]) and (S1[i]<=’9’ ) Then
S2 := S2+S1[i];
Writeln(‘ Ket qua : ‘,S2);
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ẻ: Thiều Thị Thủy Ngân
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)