Bài 12. Kiểu xâu
Chia sẻ bởi Vương Vũ Nam Sơn |
Ngày 10/05/2019 |
234
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:
1. Khai báo kiểu dữ liệu xâu
Khái niệm
Xâu là một dãy các kí tự trong bảng mã ASCII, có thể coi xâu như mãng một chiều.
Độ dài của xâu là số phần tử của xâu đó. Xâu có độ dài tối đa là 255 kí tự.
b. Khai báo kiểu xâu
Cú pháp:
Var:String [độ dài tối đa của xâu];
Lưu ý: độ dài tối đa là 255 kí tự.
Trong khi khai báo chúng ta có thể bỏ qua độ dài xâu.
Biểu diễn trong MT
2. Một số thao tác trên xâu
Tham chiếu tời phần tử của xâu
Tên xâu[chỉ số]
Các chỉ số của xâu được đánh số bắt đầu từ 1.
Phép toán so sánh
Xâu sử dụng được các phép toán so sánh là: <,<=, >, >=, =, <>.
Thứ tự ưu tiên từ trái qua phải. Dựa vào chỉ số trong bảng mã ASCII.
Phép ghép xâu
Kí hiệu là + để ghép hai hay xâu lại thành một xâu.
Ví dụ: ‘Ha’+’Noi’= ‘HaNoi’.
Khi ta thực hiện phép cộng các xâu phải chú ý đến độ dài xâu kết quả
Mô phóng
Mô phóng
. Thủ tục Delete(st, vt, n) thực hiện việc xoá n ký tự của xâu st bắt đầu từ vị trí vt
. Thủ tục Insert(s1,s2,vt) thực hiện việc chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt
. Hàm Copy(s,vt,n) 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.
. Hàm Length(s) cho giá trị là độ dài xâu s.
. Hàm pos(s1,s2) cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
. Hàm Upcase(ch) cho chữ cái viết hoa ứng với chữ cái trong ch.
Ví dụ 1: - Nhập họ tên của 2 người vào 2 biến xâu.
- In ra màn hình xâu dài hơn, bằng nhau thì đưa ra xâu nhập sau.
Ví dụ 2:
- Nhập 2 xâu từ bàn phím.
- Kiểm tra ký tự đầu của xâu 1 có trùng với ký tự cuối cùng của xâu 2 không ?
Ví dụ 3:
- Nhập 1 xâu từ bàn phím.
- In ra màn hình xâu ngược của xâu trên.
Chương trình 3
Ví dụ 4:
- Nhập 1 xâu từ bàn phím.
- In ra xâu không chứa dấu cách của xâu trên.
Ví dụ 5:
- Nhập s1 xâu từ bàn phím.
- Tạo xâu s2 gồm tất cả các ký tự số của xâu s1và in xâu s2.
Chương trình 1
Chương trình 2
Chương trình 4
Chương trình 5
Các Bài Tập Ví Dụ
*Ý tưởng: thực hiện phép so sánh length(a) và length(b)
Var a,b : string;
Begin
write(‘nhap xau thu nhat: ’); readln(a);
write(‘nhap xau thu 2 : ‘); readln(b);
if length(a) > length(b) then
write(‘xau dai hon la: ‘,a)
else write(‘xau dai nhat la: ‘,b);
readln
End.
Ví Dụ 1
Ví dụ 1: - Nhập họ tên của 2 người vào 2 biến xâu.
- In ra màn hình xâu dài hơn, bằng nhau thì đưa ra xâu nhập sau.
*Ý tưởng: thực hiện kiểm tra a[1] = b[length(b) ]
Var x,y : byte;
a,b : string;
Begin
write(‘nhap xau thu nhat: ’); readln(a);
write(‘nhap xau thu 2 : ‘); readln(b);
x := length(b);
if a[1] = b[x] then write(‘trung nhau’)
else write(‘khac nhau’);
readln
End.
Ví Dụ 2
Ví dụ 2:
- Nhập 2 xâu từ bàn phím.
- Kiểm tra ký tự đầu của xâu 1 có trùng với ký tự cuối cùng của xâu 2 không ?
*Ý tưởng: Áp dụng vòng lặp
FOR DOWNTO DO .
Var i,k : byte;
a : string;
Begin
write(‘nhap xau : ’); readln(a);
k := length(a);
for i := k downto 1 do write(a[i]);
readln
End.
Ví Dụ 3
Ví dụ 3:
- Nhập 1 xâu từ bàn phím.
- In ra màn hình xâu ngược của xâu trên.
MINH HỌA
Var i,k : byte;
a,b : string;
Begin
write(‘nhap xau : ’); 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.
*Ý tưởng: thực hiện duyệt các phần tử trong xâu a và sao chép sang xâu b các phần tử của xâu a, nhưng chỉ sao chép các phần tử a[i] <> ‘ ’.
Ví Dụ 4
Ví dụ 4:
- Nhập 1 xâu từ bàn phím.
- In ra xâu không chứa dấu cách của xâu trên.
*Ý tưởng: thực hiện duyệt các phần tử trong xâu s1 và sao chép sang xâu s2 các phần tử của xâu s1
Program xu_ly_xau;
Var s1,s2 : string;
i : byte;
Begin
write(‘nhap xau s1: ’); readln(s1);
s2 := ‘ ’;
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.
Ví Dụ 5
Ví dụ 5:
- Nhập s1 xâu từ bàn phím.
- Tạo xâu s2 gồm tất cả các ký tự số của xâu s1và in xâu s2.
Khái niệm
Xâu là một dãy các kí tự trong bảng mã ASCII, có thể coi xâu như mãng một chiều.
Độ dài của xâu là số phần tử của xâu đó. Xâu có độ dài tối đa là 255 kí tự.
b. Khai báo kiểu xâu
Cú pháp:
Var
Lưu ý: độ dài tối đa là 255 kí tự.
Trong khi khai báo chúng ta có thể bỏ qua độ dài xâu.
Biểu diễn trong MT
2. Một số thao tác trên xâu
Tham chiếu tời phần tử của xâu
Tên xâu[chỉ số]
Các chỉ số của xâu được đánh số bắt đầu từ 1.
Phép toán so sánh
Xâu sử dụng được các phép toán so sánh là: <,<=, >, >=, =, <>.
Thứ tự ưu tiên từ trái qua phải. Dựa vào chỉ số trong bảng mã ASCII.
Phép ghép xâu
Kí hiệu là + để ghép hai hay xâu lại thành một xâu.
Ví dụ: ‘Ha’+’Noi’= ‘HaNoi’.
Khi ta thực hiện phép cộng các xâu phải chú ý đến độ dài xâu kết quả
Mô phóng
Mô phóng
. Thủ tục Delete(st, vt, n) thực hiện việc xoá n ký tự của xâu st bắt đầu từ vị trí vt
. Thủ tục Insert(s1,s2,vt) thực hiện việc chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt
. Hàm Copy(s,vt,n) 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.
. Hàm Length(s) cho giá trị là độ dài xâu s.
. Hàm pos(s1,s2) cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
. Hàm Upcase(ch) cho chữ cái viết hoa ứng với chữ cái trong ch.
Ví dụ 1: - Nhập họ tên của 2 người vào 2 biến xâu.
- In ra màn hình xâu dài hơn, bằng nhau thì đưa ra xâu nhập sau.
Ví dụ 2:
- Nhập 2 xâu từ bàn phím.
- Kiểm tra ký tự đầu của xâu 1 có trùng với ký tự cuối cùng của xâu 2 không ?
Ví dụ 3:
- Nhập 1 xâu từ bàn phím.
- In ra màn hình xâu ngược của xâu trên.
Chương trình 3
Ví dụ 4:
- Nhập 1 xâu từ bàn phím.
- In ra xâu không chứa dấu cách của xâu trên.
Ví dụ 5:
- Nhập s1 xâu từ bàn phím.
- Tạo xâu s2 gồm tất cả các ký tự số của xâu s1và in xâu s2.
Chương trình 1
Chương trình 2
Chương trình 4
Chương trình 5
Các Bài Tập Ví Dụ
*Ý tưởng: thực hiện phép so sánh length(a) và length(b)
Var a,b : string;
Begin
write(‘nhap xau thu nhat: ’); readln(a);
write(‘nhap xau thu 2 : ‘); readln(b);
if length(a) > length(b) then
write(‘xau dai hon la: ‘,a)
else write(‘xau dai nhat la: ‘,b);
readln
End.
Ví Dụ 1
Ví dụ 1: - Nhập họ tên của 2 người vào 2 biến xâu.
- In ra màn hình xâu dài hơn, bằng nhau thì đưa ra xâu nhập sau.
*Ý tưởng: thực hiện kiểm tra a[1] = b[length(b) ]
Var x,y : byte;
a,b : string;
Begin
write(‘nhap xau thu nhat: ’); readln(a);
write(‘nhap xau thu 2 : ‘); readln(b);
x := length(b);
if a[1] = b[x] then write(‘trung nhau’)
else write(‘khac nhau’);
readln
End.
Ví Dụ 2
Ví dụ 2:
- Nhập 2 xâu từ bàn phím.
- Kiểm tra ký tự đầu của xâu 1 có trùng với ký tự cuối cùng của xâu 2 không ?
*Ý tưởng: Áp dụng vòng lặp
FOR
Var i,k : byte;
a : string;
Begin
write(‘nhap xau : ’); readln(a);
k := length(a);
for i := k downto 1 do write(a[i]);
readln
End.
Ví Dụ 3
Ví dụ 3:
- Nhập 1 xâu từ bàn phím.
- In ra màn hình xâu ngược của xâu trên.
MINH HỌA
Var i,k : byte;
a,b : string;
Begin
write(‘nhap xau : ’); 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.
*Ý tưởng: thực hiện duyệt các phần tử trong xâu a và sao chép sang xâu b các phần tử của xâu a, nhưng chỉ sao chép các phần tử a[i] <> ‘ ’.
Ví Dụ 4
Ví dụ 4:
- Nhập 1 xâu từ bàn phím.
- In ra xâu không chứa dấu cách của xâu trên.
*Ý tưởng: thực hiện duyệt các phần tử trong xâu s1 và sao chép sang xâu s2 các phần tử của xâu s1
Program xu_ly_xau;
Var s1,s2 : string;
i : byte;
Begin
write(‘nhap xau s1: ’); readln(s1);
s2 := ‘ ’;
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.
Ví Dụ 5
Ví dụ 5:
- Nhập s1 xâu từ bàn phím.
- Tạo xâu s2 gồm tất cả các ký tự số của xâu s1và in xâu s2.
* 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ẻ: Vương Vũ Nam Sơ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)