Nội dung của Bài 12: Kiểu xâu dưới đây, các em sẽ được tìm hiểu về một số khái niệm về xâu, cách khai báo xâu; cách sử dụng một số thủ tục hàm thông dụng về xâu; một số chương trình đơn giản có sử dụng xâu;... Mời các em cùng theo dõi nội dung chi tiết của bài học.

Bạn đang xem: Bài tập kiểu xâu tin học 11


1. Tóm tắt lý thuyết

1.1. Khai báo

1.2. Các thao tác trên xâu

2. Bài tập minh họa

3. Luyện tập Bài 12 Tin học 11

3.1. Trắc nghiệm

4. Hỏi đápBài 12 Tin học 11


*

Một số khái niệm:

Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự là một phần tử trong xâu.Số lượng kí tự trong xâu được gọi là độ dài của xâu.Xâu có độ dài bằng 0 gọi là xâu rỗng.

Để mô tả kiểu xâu ta cần xác định:

Tên kiểu xâu.Cách khai báo biến kiểu xâu.Số lượng kí tự kiểu xâu.Các phép toán thao tác với xâu.Cách tham chiếu tới phần tử của xâu.

Tham chiếu đến phần tử của xâu:

Tên biến xâuVí dụ 1: Giả sử biến Hoten lưu trữ hằng xâu "Nguyen Le Huyen" thì Hoten<6> cho ta kí tự thứ 6 của Hoten

Dưới đây trình bày cách khai báo kiểu dữ liệu xâu, các thao tác xử lí xâumột số ví dụ sử dụng kiểu xâu trong Pascal.


1.1. Khai báo


var: string<độ dài tối đa của xâu>;

Trong đó:

Tên biến xâu: do người lập trình tự đặt.var, string: từ khóa.độ dài tối đa qui định số kí tự tối đa xâu có, nêu không ghi thì ngầm định là 255 kí tự.

Ví dụ 2:

var Hoten: string<26>;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.

1.2. Các thao tác trên xâu


a.Phép ghép xâuPhép ghép xâu (kí hiệu là 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 biến xâu.

Ví dụ 3: "Ha"+ " Noi" +" - "+"Viet Nam" \(\rightarrow\)Cho xâu kết quả là "Ha Noi - Viet Nam".b. Phép so sánh xâuCác phép so sánh bằng (=), khác (), nhỏ hơn (), nhỏ hơn hoặc bằng (=) có thứ tự ưu tiên thực hiện thấp hơn phép ghép xâu và thực hiện việc so sánh hai xâu theo các quy tắc sau:Xâu A 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ó mã ASCII 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 B thì A là nhỏ hơn B.Ví dụ 4:"May tinh" Hai xâu được coi là bằng nhau nếu như chúng giống nhau hoàn toàn.Ví dụ 5:"TIN HOC" = "TIN HOC".c. Thủ tục xóan kí tựThực hiện việc xoá n kí tự của xâu st bắt đầu từ vị trívt.Cú pháp: delete(st,vt,n)

Trong đó:

st: xâu.

vt: vị trí bắt đầu xóa.

n: số kí tự xóa.

Ví dụ 6:
Giá trị stThao tácKết quả
"Nguyen Van A"delete(st,8,3)?

Bảng 1. Ví dụ về thủ tục xóa n kí tự

d. Thủ tục chèn xâu S1 vào xâu S2Thực hiệnchèn xâu s1 vào xâu s2, bắt đầu ở vị trí vt.Cú pháp: Insert(s1,s2,vt)

Trong đó:

s1, s2: xâu.

vt: vị trí bắt đầu chèn xâu s1.

Ví dụ 7:
Giá trị s1Giá trị s2Thao tácKết quả
" PC ""IBM486"insert(s1,s2,4);"IBM PC 486"

Bảng 2. Ví dụ thủ tụcchèn xâu S1 vào xâu S2

e. Hàm tạo xâuTạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâuS.Cú pháp: copy(s,vt,n)

Trong đó:

s: xâu.

vt: vị trí bắt đầu lấy trong xâu s.

n: số kí từ sé lấy.

Ví dụ 8:
Giá trị sBiểu thứcKết quả
"Bai hoc thu 9"copy(s,9,5);"thu 9"

Bảng 3. Ví dụ hàm tạo xâu

f. Hàm tính độ dài xâuCho giá trị là độ dài xâu s.Cú pháp: length(s)Ví dụ 9:
Giá trị sBiểu thứcKết quả
"500 ki tu"length(s)9

Bảng 4. Ví dụ hàm tính độ dài xâu

g. Hàm cho biết vị trí xuất hiện đầu tiên của xâu s1 trong s2Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.Cú pháp: pos(s1,s2)Ví dụ 10:
Giá trị s2Biểu thứcKết quả
"abcdef"pos("cd",s2)3

Bảng 5. Ví dụ hàm cho biết vị trí xuất hiện đầu tiền của xâu s1 trong xâu s2

h. Hàm cho chữ cái in hoaCho chữ cái viết hoa ứng với chữ cái trong ch.Cú pháp: upcase(ch)Ví dụ 11: upcase(a) ---> "A"

upcase(B) ---> "B"


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.

Gợi ý làm bài:

Đoạn chương trình cài đặt:

vara,b:string; begin write("Nhap ho ten thu nhat: "); readln(a); write("Nhap 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.

Gợi ý làm bài:

Đoạn chương trình cài đặt:

var x: byte; a,b: string; begin 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 then write("Trung nhau")

else write("Khac nhau");readlnend.

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.

Gợi ý làm bài:

Đoạn chương trình cài đặt:

var i,k: byte; a: string; begin write("Nhap xau:"); readln(a); k:= length(a); {xac dinh do dai xau} for i:= k downto 1 do write(a);

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.

Gợi ý làm bài:

Đoạn chương trình cài đặt:

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 " " then b:=b+a;

writeln("Ket qua: ",b);

readln

end.

Xem thêm: Các Dạng Bài Tập Thấu Kính Mỏng Lớp 11, Giải Bài Tập Vật Lí 11

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ànhình.