Tin học 11 Bài 12: Kiểu xâu
Mời quý thầy cô cùng các em học sinh cùng tham khảo nội dung bài học 12 Kiểu xâu bên dưới đây. Với nội dung trình bày logic, rõ ràng, chúng tôi hi vọng đây sẽ là hành trang giúp các em học tập thật tốt môn Tin học 11.
Mục lục nội dung
1. Tóm tắt lý thuyết
Xâu: Là một dãy kí tự trong bảng mã ASCII. Mỗi kí tự được gọi là một phần tử của 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.
- Tham chiếu tới phần tử trong xâu được xác định thông qua chỉ số của phần tử trong xâu.
1.1. Khai báo
Để khai báo dữ liệu kiểu xâu ta sử dụng tên dành riêng string, tiếp theo là dộ dài lớn nhất của xâu(không vượt quá 255 kí tự đặt trong dấu ngoặc [ và ] )
Cú pháp:
Var
Hoặc
Var
Ví dụ:
Var ten:string[26];
Var chuthich:string;
1.2. Các thao tác xử lí xâu
a) Phép ghép xâu
Kí hiệu là dấu (+), được sử dụng để ghép nhiều xâu thành một. Có thể thực hiện ghép xâu đối với hằng và biến xâu.
Ví dụ:
'Tin hoc'+ '11' sẽ cho xâu có kết quả là 'Tin hoc 11'.
b) Các phép so sánh như bằng (=), khác (<>), nhỏ hơn (<), … có độ ưu tiên thực hiện thấp hơn ghép xâu.
Việc so sánh 2 xâu sẽ thực hiện theo nguyên tắc sau.
Xâu A 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 độ dài hai xâu khác nhau thì coi như thêm các kí tự đặc biệt (nhỏ hơn tất cả các kí tự trong bảng ASCII).
Ví dụ:
'Ab' sẽ nhỏ hơn 'a'. Vì A có mã ASCII là 65 nhỏ hơn a là 97.
'a' sẽ nhỏ hơn 'aB' . Khi 2 xâu độ dài không bằng nhau ta thêm kí tự đặc biệt nhỏ hơn mọi kí tự trong bảng ASCII (dĩ nhiên sẽ nhỏ hơn B ).
c) Các thủ tục khác.
+ Delete(st, vt, n) xóa n kí tự của xâu st từ vị trí vt.
+ Insert(st, s2, vt) chèn xâu s1 vào s2 bắt đầu ở vị trí vt.
+ 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.
+ Length(s) cho giá trị là độ dài xâu s.
+ Pos(s1, s2) cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.
+ Upcase(ch) cho chữ cái in hoa ứng với chữ cái trong chuỗi.
2. Bài tập minh họa
Bài 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.
Hướng dẫn giải
Đoạn chương trình cài đặt:
program vd1;
uses crt;
var
a,b:string;
begin
clrscr;
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);
readkey;
end.
- Tham số của các hàm và thủ tục chuẩn phải hợp lí, chẳng hạn không thể dùng Insert(sl,s2,I0) khi length(s2)<10.
Khi chạy chương trình, nhập họ tên của hai người, thì kết quả của chương trình cho dưới đây:
Bài 2: Viết chương trình 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.
Hướng dẫn giải
Đoạn chương trình cài đặt:
program vd2;
uses crt;
var
a,b:string;
begin
clrscr;
write('nhap xau thu nhat:');
readln(a);
write('nhap xau thu hai :');
readln(b);
if a[1]=b[length(b)]
then writeln('Trung nhau')
else
writeln('Khac nhau');
readkey;
end.
Khi chạy chương trình, nhập các xâu vào: nếu kí tự đầu tiên của xâu thứ nhất ' thu do' không trùng với kí tự cuối cùng của xâu thứ hai ' ha noi ' thì chương trình đưa ra thông báo: “Khac nhau”, ngược lại chương trình đưa ra thông báo: “Trung nhau" kquả của chương trình cho như hình dưới đây:
3. Luyện tập
3.1. Bài tập tự luận
Câu 1: Độ dài tối đa của xâu kí tự trong PASCAL là gì?
Câu 2: Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Length(S) là gì?
Câu 3: Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Pos(‘Vietnam’,S) là gì?
Câu 4: Đoạn chương trình sau in ra kết quả nào ?
Program Welcome ;
Var a : string[10];
Begin
a := ‘tinhoc ’;
writeln(length(a));
End.
Câu 5: Cho str là một xâu kí tự, đoạn chương trình sau thực hiện công việc gì ?
for i := length(str) downto 1 do
write(str[i]) ;
3.2. Bài tập trắc nghiệm
Câu 1: Cho khai báo sau: Var hoten : String;
Phát biểu nào dưới đây là đúng ?
A. Câu lệnh sai vì thiếu độ dài tối đa của xâu
B. Xâu có độ dài lớn nhất là 0
C. Xâu có độ dài lớn nhất là 255
D. Cần phải khai báo kích thước của xâu sau đó
Câu 2: Hãy chọn phương án ghép đúng nhất. Thủ tục chuẩn Insert(S1,S2,vt) thực hiện:
A. Chèn xâu S1 vào S2 bắt đầu từ vị trí vt
B. Chèn xâu S2 vào S1 bắt đầu từ vị trí vt
C. Nối xâu S2 vào S1
D. Sao chép vào cuối S1 một phần của S2 từ vị trí vt
Câu 3: Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào gọi là ?
A. Xâu không;
B. Xâu rỗng;
C. Xâu trắng;
D. Không phải là xâu kí tự;
Câu 4: Trong ngôn ngữ lập trình Pascal, khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự ?
A. Var S : string;
B. Var X1 : string[100];
C. Var S : string[256];
D. Var X1 : string[1];
Câu 5: Trong ngôn ngữ lập trình Pascal, sau khi chương trình thực hiện xong đoạn chương trình sau, giá trị của biến S là ?
S := ‘Ha Noi Mua thu’;
Delete(S,7,8);
Insert(‘Mua thu’, S, 1);
A. Ha Noi Mua thu;
B. Mua thu Ha Noi mua thu;
C. Mua thu Ha Noi;
D. Ha Noi;
3.3. Trắc nghiệm Online
Các em hãy luyện tập bài trắc nghiệm Kiểu xâu Tin học 11 sau để nắm rõ thêm kiến thức bài học.
4. Kết luận
Sau khi học xong nội dung bài kiểu xâu môn Tin học 11 các em nắm được những nội dung chính sau:
- Biết được nguyên nhân tại sao sinh ra kiểu sữ liệu xâu
- Ý nghĩa của các hàm copy(S,vt,N), length(s), pos(s1,s2), upcase(ch).
- Tìm hiểu một số ví dụ để biết cách sử dụng hàm và thủ tục.
- Phân biệt được sự giống và khác giữa kiểu mảng các ký tự với xâu.
- Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng ký tự của xâu.
- Biết các phép toán, thủ tục và hàm thông dụng liên quan đến xâu.
- Nhận biết được trường hợp nào cần sử dụng kiểu xâu.
- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal.
- Nhận biết được biến xâu và các phép toán xử lí trên xâu.
- Hiểu và sử dụng được hàm, thủ tục để giải quyết những bài toán đơn giản.
Tham khảo thêm
- doc Tin học 11 bài 11: Kiểu mảng
- doc Tin học 11 Bài tập và thực hành 3
- doc Tin học 11 Bài tập và thực hành 4
- doc Tin học 11 Bài tập và thực hành 5
- doc Tin học 11 Bài 13: Kiểu bản ghi