Bài 12. Kiểu xâu
Chia sẻ bởi Hoàng Trung Thông |
Ngày 10/05/2019 |
159
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:
TRƯỜNG THPT PHƯỚC BÌNH
GV:HOÀNG TRUNG THÔNG
BÀI 12. KIỂU XÂU
Dữ liệu trong các bài toán không chỉ phụ thuộc kiểu số mà cả kiểu phi số - dạng kí tự. Dữ liệu kiểu xâu là dãy các kí tự.
Ví dụ: các xâu đơn giản:
`phuoc binh`
`2008 la nam Mau Ty`
Biến kiểu xâu có thể khai báo:
var:= string[độ dài lớn nhất của xâu];
Ví dụ: var diachi: string[50];
Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, chẳng hạn:
var diachi: string;
Khi đó độ dài của xâu sẽ nhận được giá trị ngầm định là:255.
1.KHAI BÁO
2.CÁC THAO TÁC XỬ LÍ XÂU
a) Phép ghép xâu, kí hiệu là dấu cộng(+), được sử dụng để ghép nhiều xâu thành một. Có thể thực hiện phép ghép xâu đối với các hằng và biến xâu.
Ví dụ: phép ghép xâu:
`Phuoc` + ` Binh`
cho xâu kết quả là `Phuoc Binh`
b) Các Phép so sánh: =,<>,<,>,<=,>= có thứ tự thực hiện ưu tiên thấp hơn phép ghép xâu:
Thực hiện việc so sánh hai xâu theo quy tắc sau:
+ Xâu A lớn hơn xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn.
ví dụ:
` aec` < `bc`
+ Xâu A và B là xâu có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.
Ví dụ: `Phuoc binh` < `Phuoc binh que toi`
+ Hai xâu bằng nhau nếu chúng giống nhau hoàn toàn
vd: `phuoc binh` = `phuoc binh`
c. Thủ tục delete(st,vt,n)
Thực hiện việc xoá n kí tự của biến xâu bắt đầu từ vị trí vt.
Ví dụ:
st: `phuoc binh que toi`
? delete(st,7,4)? `phuoc que toi`
d) THỦ TỤC insert(s1,s2,vt)
Thủ tục chèn xâu s1 vào xâu s2, bắt đầu ở vị trí vt.
Ví dụ: s1: `phuoc`
s2: `truongbinh`
Vt: 7
? insert(s1,s2,vt)? `truongphuocbinh`
e)Hàm copy(S,vt,n)
Tạo xâu gồm N kí tự liên tiếp bắt đầu từ vt của xâu S.
Ví dụ: S: `THPT PHUOC BINH`
copy(s,6,5)? `PHUOC`
f.Hàm length(s)
Cho giá trị độ dài xâu s.
Ví dụ:
S: `phuoc binh` ;
length(s)? 10;
g) Hàm pos(s1,s2)
Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
Ví dụ: s1: `pho`
s2: `truong pho thong`
pos(s1,s2)? 8
h)Hàm upcase(ch)
Cho chữ cái in hoa ứng với chữ cái trong ch.
Ví dụ:
ch: `a`
upcase(ch)? `A`
3.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 xâu nhập sau.
program sosanh2xau;
uses crt;
var a,b : string;
begin
clrscr;
write(`nhap vao ho ten thu nhat: `); readln(a);
write(`Nhap vao ho ten thu hai: `); readln(b);
if length(a)> length(b) then write(a) else write(b);
readln
end.
Ví dụ 2:
Chương trình dưới đây nhập hai xâu từ bàn phím và kiểm tra 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.
program ktkitudautien;
uses crt;
var x: byte;
a,b: string;
begin
clrscr;
write(`Nhap xau thu nhat: `); readln(a);
write(`Nhap xau thu hai: `); readln(b);
x:=length(b);
{ Xac dinh do dai xau b de biet vi tri cua ki tu cuoi cung }
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 được viết theo thứ tự ngược lại.
program xaudaonguoc;
uses crt;
var a:string;
i,k:integer;
begin
clrscr;
write(`Nhap vao mot xau `); readln(a);
write(` XAU DAO NGUOC LA: `);
k:=length(a);
for i:= k downto 1 do write(a[i]);
readln
end.
Ví dụ 4:
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 thu được từ nó bởi việc loại bỏ các dấu cách nếu có.
program loaibo;
uses crt;
var i,k: byte;
a,b: string;
begin
write(`Nhap xau : `); readln(a);
k:=length(a);
b:=` `;{ khoi tao xau rong }
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 ra kết qủa màn hình.
program xulixau;
uses crt;
var s1,s2: string;
i:byte;
begin
clrscr;
write(`Nhap vao xau s1: `); readln(s1);
s2:=` `; { khoi tao xau rong }
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:
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 ra kết quả ra màn hình.
program xulixau;
uses crt;
var s1,s2: string;
i:byte;
begin
clrscr;
write(`Nhap vao xau s1: `); readln(s1);
s2:=` `; { khoi tao xau rong }
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.
GV:HOÀNG TRUNG THÔNG
BÀI 12. KIỂU XÂU
Dữ liệu trong các bài toán không chỉ phụ thuộc kiểu số mà cả kiểu phi số - dạng kí tự. Dữ liệu kiểu xâu là dãy các kí tự.
Ví dụ: các xâu đơn giản:
`phuoc binh`
`2008 la nam Mau Ty`
Biến kiểu xâu có thể khai báo:
var
Ví dụ: var diachi: string[50];
Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, chẳng hạn:
var diachi: string;
Khi đó độ dài của xâu sẽ nhận được giá trị ngầm định là:255.
1.KHAI BÁO
2.CÁC THAO TÁC XỬ LÍ XÂU
a) Phép ghép xâu, kí hiệu là dấu cộng(+), được sử dụng để ghép nhiều xâu thành một. Có thể thực hiện phép ghép xâu đối với các hằng và biến xâu.
Ví dụ: phép ghép xâu:
`Phuoc` + ` Binh`
cho xâu kết quả là `Phuoc Binh`
b) Các Phép so sánh: =,<>,<,>,<=,>= có thứ tự thực hiện ưu tiên thấp hơn phép ghép xâu:
Thực hiện việc so sánh hai xâu theo quy tắc sau:
+ Xâu A lớn hơn xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn.
ví dụ:
` aec` < `bc`
+ Xâu A và B là xâu có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.
Ví dụ: `Phuoc binh` < `Phuoc binh que toi`
+ Hai xâu bằng nhau nếu chúng giống nhau hoàn toàn
vd: `phuoc binh` = `phuoc binh`
c. Thủ tục delete(st,vt,n)
Thực hiện việc xoá n kí tự của biến xâu bắt đầu từ vị trí vt.
Ví dụ:
st: `phuoc binh que toi`
? delete(st,7,4)? `phuoc que toi`
d) THỦ TỤC insert(s1,s2,vt)
Thủ tục chèn xâu s1 vào xâu s2, bắt đầu ở vị trí vt.
Ví dụ: s1: `phuoc`
s2: `truongbinh`
Vt: 7
? insert(s1,s2,vt)? `truongphuocbinh`
e)Hàm copy(S,vt,n)
Tạo xâu gồm N kí tự liên tiếp bắt đầu từ vt của xâu S.
Ví dụ: S: `THPT PHUOC BINH`
copy(s,6,5)? `PHUOC`
f.Hàm length(s)
Cho giá trị độ dài xâu s.
Ví dụ:
S: `phuoc binh` ;
length(s)? 10;
g) Hàm pos(s1,s2)
Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
Ví dụ: s1: `pho`
s2: `truong pho thong`
pos(s1,s2)? 8
h)Hàm upcase(ch)
Cho chữ cái in hoa ứng với chữ cái trong ch.
Ví dụ:
ch: `a`
upcase(ch)? `A`
3.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 xâu nhập sau.
program sosanh2xau;
uses crt;
var a,b : string;
begin
clrscr;
write(`nhap vao ho ten thu nhat: `); readln(a);
write(`Nhap vao ho ten thu hai: `); readln(b);
if length(a)> length(b) then write(a) else write(b);
readln
end.
Ví dụ 2:
Chương trình dưới đây nhập hai xâu từ bàn phím và kiểm tra 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.
program ktkitudautien;
uses crt;
var x: byte;
a,b: string;
begin
clrscr;
write(`Nhap xau thu nhat: `); readln(a);
write(`Nhap xau thu hai: `); readln(b);
x:=length(b);
{ Xac dinh do dai xau b de biet vi tri cua ki tu cuoi cung }
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 được viết theo thứ tự ngược lại.
program xaudaonguoc;
uses crt;
var a:string;
i,k:integer;
begin
clrscr;
write(`Nhap vao mot xau `); readln(a);
write(` XAU DAO NGUOC LA: `);
k:=length(a);
for i:= k downto 1 do write(a[i]);
readln
end.
Ví dụ 4:
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 thu được từ nó bởi việc loại bỏ các dấu cách nếu có.
program loaibo;
uses crt;
var i,k: byte;
a,b: string;
begin
write(`Nhap xau : `); readln(a);
k:=length(a);
b:=` `;{ khoi tao xau rong }
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 ra kết qủa màn hình.
program xulixau;
uses crt;
var s1,s2: string;
i:byte;
begin
clrscr;
write(`Nhap vao xau s1: `); readln(s1);
s2:=` `; { khoi tao xau rong }
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:
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 ra kết quả ra màn hình.
program xulixau;
uses crt;
var s1,s2: string;
i:byte;
begin
clrscr;
write(`Nhap vao xau s1: `); readln(s1);
s2:=` `; { khoi tao xau rong }
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ẻ: Hoàng Trung Thô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)