Bài 12. Kiểu xâu
Chia sẻ bởi Nguyễn Thành Luân |
Ngày 10/05/2019 |
54
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:
Nhiệt Liệt Chào Mừng
QUÝ THẦY CÔ VỀ DỰ GIỜ THĂM LỚP
KIỂM TRA BÀI CŨ
Câu 1: Em hãy viết cú pháp khai báo biến xâu. Khai báo biến để lưu họ tên của một học sinh? (4đ)
Câu 2: Hãy cho biết độ dài của xâu S;
Với S:=‘NGUYEN VAN AN ’? (2đ)
11 B. 10 C. 13 D. 14
Câu 3: Với giá trị của xâu S ở trên, khi tham chiếu đến phần tử thứ 8 thì ta được kí tự nào? (2đ)
‘ ’ B. ‘V’ C. ‘N’ D. ‘A’
Câu 4: Cho biết kết quả của hàm sau: POS(‘AN’,S)? (2đ)
8 B. 9 C. 11 D. 2
VAR HOTEN: STRING[30]; {Độ dài tùy chọn}
VAR: STRING[Độ dài lớn nhất];
BÀI 12: KIỂU XÂU (tt)
TIN HỌC LỚP 11 TIẾT PPCT 28/23
(Tiết 4)
MỘT SỐ VÍ DỤ
Ví dụ 4
Viết chương trình 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ừ xâu ban đầu sau khi loại bỏ các dấu cách nếu có.
Xâu kí tự bất kì
Xâu sau khi loại bỏ các dấu cách
Ý tưởng giải bài toán?
Kiểm tra từng ký tự trên xâu. Nếu ký tự đó không là dấu cách thì ghép nối vào xâu mới
Trong bài toán này, ta cần sử dụng hàm, thủ tục nào
Hàm length(S)
Thuật toán
Bước 1: Khai báo biến.
Bước 2: Nhập vào xâu S.
Bước 3: Tạo xâu S2 rỗng để lưu trữ các ký tự không là dấu cách từ S bằng phép nối xâu.
Bước 4: Duyệt (kiểm tra) từng ký tự của xâu S:
+ Sử dụng vòng lặp For I :=1 length(S);
+ Nếu ký tự thứ I không là dấu cách thì nối vào sau xâu S2;
Bước 5: Xuất xâu kết quả
Ví dụ 4 – Mô phỏng thuật toán
T
I
N
H
Cho xâu S:
1 2 3 4 5 6 7 8 9 10 11 12
C
O
1
1
Xâu S2, ban đầu S2=‘’:
Length(S); 12
s[i] < > ‘ ’
Duyệt xâu:
< >
I
N
H
C
C
O
1
1
T
T
I
1 2 3 4 5 6 7 8 9 10 11 12
N
H
O
1
1
S2 := S2 + S[i];
for i:=1 to k do
If S[i] <> ‘ ‘ then
S2:= S2 + S[i];
Writeln (‘Xau sau xu ly: ‘, S2);
Readln
End.
Độ dài tối đa được phép của xâu s và s2 là bao nhiêu? Độ dài thực sự của xâu s, s2?
Các bước
Thể hiện bằng Pascal
Khai báo biến xâu
Nhập xâu
4. Xử lí xâu
Var S, S2 : string;
I, K: byte;
Begin
Write(‘Nhap xau ki tu : ’);
Readln(s);
S2:=‘’;
k:=length(S);
3. Tạo S2 rỗng, tính chiều dài K
5. In kết quả
Ví dụ 5
Viết chương trình nhập vào một 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 vị trí xuất hiện của chúng) và đưa ra kết quả.
Xâu kí tự S1 bất kì
Xâu S2 chữ gồm các ký tự là chữ số có trong S1
Nêu ý tưởng giải bài toán?
- Kiểm tra từng ký tự trên S1, nếu là chữ số thì nối vào xâu S2
- Xuất xâu kết quả
Trong bài toán này, ta cần sử dụng hàm, thủ tục nào
Hàm length(s)
Nêu các bước để giải quyết bài toán trên
Thảo luận nhóm (7 phút)
Ví dụ 5
Viết chương trình nhập vào một 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 vị trí xuất hiện của chúng) và đưa ra kết quả.
Thuật toán
Bước 1: Khai báo biến xâu S1, S2.
Bước 2: Nhập vào xâu S1.
Bước 3: Tạo xâu S2 rỗng để lưu trữ các ký tự là chữ số (‘0’… ‘9’) S bằng phép nối xâu (+).
Bước 4: Duyệt (kiểm tra) từng ký tự của xâu S:
+ Sử dụng vòng lặp For i=1 length(S);
+ Nếu ký tự thứ I là chữ số (‘0’… ‘9’)
‘0’ <=s[i]<= ‘9’ thì nối vào sau xâu S2;
Bước 5: Xuất xâu S2;
Mô phỏng thuật toán
A
1
S
1
E
9
Cho xâu S1:
1 2 3 4 5 6 7
Length(S1);->7
S2:= ‘’;
1
A
FALSE
‘’
2
FALSE
‘’
3
1
TRUE
1
4
S
FALSE
1
5
9
TRUE
1
9
6
A
FALSE
7
1
TRUE
1
Mô phỏng thuật toán
A
1
S
1
E
9
Cho xâu S1:
1 2 3 4 5 6 7
Length(S1);->7
S2:= ‘’;
1
A
FALSE
‘’
2
FALSE
‘’
3
1
TRUE
1
4
S
FALSE
1
5
9
TRUE
1
9
6
A
FALSE
7
1
TRUE
1
for i:=1 to k do
If (‘0’ <= S1[i]) AND (S1[i] <= ‘9’)
then S2:= S2 + S1[i];
Writeln (‘Xau sau xu ly: ‘, S2);
Readln
End.
Các bước
Thể hiện bằng Pascal
Khai báo biến xâu
Nhập xâu
4. Xử lí xâu
Var S1, S2 : string;
I, K: byte;
Begin
Write(‘Nhap xau ki tu : ’);
Readln(s1);
S2:=‘’;
k:=length(S);
3. Tạo S2 rỗng, tính chiều dài K
5. In kết quả
Nhận xét
Ta có biểu thức kiểm tra ký tự thứ s1[i] là chữ số hay không:
(‘0’ <=s1[i]) and (s1[i] <=‘9’)
Có thể sử dụng phép kiểm tra s1[i] có thuộc tập hợp các ký tự số bởi biểu thức:
S[i] IN [‘0’..’9’]
Trong đó:
S[i] là ký tự thứ I trên xâu S;
[‘0’..’9’] là tập hợp các ký tự chữ số từ 0 9
IN: phép kiểm tra thuộc tập hợp
Vd: S[i] not IN [‘a’..’z’] -> không thuộc tập các chữ cái thường a z;
S[i] IN [‘A’, ‘E’, ‘I’, ‘O’, ‘U’] -> thuộc tập các nguyên âm trong tiếng Anh viết in hoa.
for i:=1 to k do
S2:= S2 + S1[i];
Writeln (‘Xau sau xu ly: ‘, S2);
Readln
End.
Các bước
Thể hiện bằng Pascal
Khai báo biến xâu
Nhập xâu
4. Xử lí xâu
Var S1, S2 : string;
I, K: byte;
Begin
Write(‘Nhap xau ki tu : ’);
Readln(s1);
S2:=‘’;
k:=length(S);
3. Tạo S2 rỗng, tính chiều dài K
5. In kết quả
If (‘0’ <= S1[i]) AND
(S1[i] <= ‘9’) then
If S1[i] IN [‘0’..’9’]
then
Bài tập áp dụng
Viết chương trình nhập vào một xâu ký tự S1, tạo xâu S2 gồm tất cả các chữ cái in thường có trong S1 (giữ nguyên vị trí xuất hiện của chúng) và đưa ra kết quả.
Thảo luận nhóm (7 phút)
Nhận xét- Củng cố
2. Khai báo biến xâu
3.Các thao tác trên xâu:
- Truy xuất đến ký tự thứ I:
Duyệt xâu
Ghép nối xâu
Chiều dài xâu
1. Khi giải quyết 1 bài toán cần xđ:
VAR: STRING[Cdài tối đa];
- S1[i]
Vòng lặp For… do
S2:= S2 + S1[i];
Hàm length(S1)
Vd: var S1, S2: String[100];
Câu 1: Trong ngôn ngữ lập trình Pascal, xâu kí tự là:
A. mảng kí tự;
B. dãy các kí tự trong bảng mã ASCII;
C. tập hợp các chữ cái trong bảng chữ cái tiếng Anh;
D. tập hợp các chữ cái và các chữ số trong bảng chữ cái tiếng Anh.
Câu 2: 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 một biến xâu kí tự là:
A. Var S: String; B. Var X1: String[100];
C. Var S: String[256]; D. Var X1: String[1];
Câu 3: Trong ngôn ngữ lập trình Pascal, hàm Upcase(ch) cho kết quả là::
A. chữ cái in hoa tương ứng với kí tự Ch;
B. xâu Ch gồm toàn chữ in hoa;
C. xâu Ch gồm toàn chữ thường;
D. biến kí tự Ch thành chữ thường.
Câu 4: Trong ngôn ngữ lập trình Pascal xâu ký tự không chứa ký tự nào gọi là:
Xâu rỗng; b. Xâu không;
c. Xâu trắng; d. Không phải là xâu ký tự
CỦNG CỐ
Cho s1:=‘hoc ’; s2:=‘pascal ’
Câu 5: Để có được kết quả là: ‘hoc pascal rat de’ thì ta làm như sau:
S1+S2+ rat de; B. S1+S2+rat+de;
C. S1+S2+’rat’+’de’; D. S1+S2+’rat de’;
Câu 6: Để có kết quả là: ‘pas’ thì ta làm:
delete(s2,4,3); B. delete(s2,4,4);
C. delete(s1,s2,4); D.delete(s2,3,4);
Câu 7: Để có kết quả là: ‘pashoc cal ’ thì ta làm:
insert(s2,s1,3); B. insert(s2,s1,4);
C. insert(s1,s2,4); D.insert(s1,s2,3);
Bài học kết thúc
Xin cảm ơn quý thầy cô
cùng các em!
CỦNG CỐ
Câu 8: Khai báo nào sau đây là đúng?
Var x:string[25]; C. Var x= string[40];
Var x:string[256]; D. Var x: string40;
Câu 9: Hãy cho biết độ dài của xâu S;
Với S:=‘Tien Giang que toi!’?
18 B. 20 C. 19 D. Kq khác
Câu 10: Với giá trị của xâu S ở trên, khi tham chiếu đến phần tử thứ 9 thì ta được kí tự nào?
‘i’ B. ‘G’ C. ‘g’ D. ‘n’
Câu 11: Trong ngôn ngữ lập trình Pascal sau khi thực hiện đoạn
chương trình sau, giá trị của biến S là:
S:=’Ha Noi’;
Delete(S, 4, 3);
Insert(‘ Tay’, S, 3);
a. ‘Ha ‘; b. ‘Ha Tay’;
c. ‘Tay Ha’; d. ‘Ha Tay’;
Câu 12: Trong ngôn ngữ lập trình Pascal,
với xâu ký tự có các phép toán là:
a. Phép cộng, trừ, nhân, chia;
b. Chỉ có phép cộng;
c. Phép ghép xâu và phép so sánh
d. Phép cộng và phép trừ;
Bài 2: Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S
( không phân biệt chữ hoa hay chữ thường )
Input: Nhập vào xâu
Output: Xuất ra số lần xuất hiện của các chữ cái tiếng Anh trong xâu vừa nhập.
Chúng ta sẽ có bao nhiêu chữ cái trong tiếng Anh? Từ chữ cái A Z ;
Thuật toán
Bước 1: Nhập vào xâu S.
Bước 2: Tạo mảng A lưu trữ số lần xuất hiện của chữ cái tiếng Anh.
Bước 3: Khởi tạo cho từng phần tử mảng.
Bước 4: Nếu trong xâu S chữ cái A Z thì tăng giá trị của phần tử trong mảng.
Bước 5: Xuất ra mảng vừa tạo.
A B … H I J K …
Cho xâu S:
Tạo mảng A: Ghi nhận số lần xuất hiện của các kí tự trong xâu S
1 2 3 4 5 6 7
Var A: array[
..
‘A’.. ‘Z’
A
] of byte;
A[‘H’]=2 có nghĩa là có 2 kí tự ‘H’ trong xâu S.
Program bai02;
Uses crt;
Var a: array[`A`.. `Z`] of byte;
s: string;
i: byte;
c: char;
Begin
clrscr;
write(`nhap xau :`);
readln(s);
for c:=`A` to `Z` do a[c]:=0;
for i:=1 to length(s) do
begin
s[i]:=upcase(s[i]);
if (s[i]>=`A`) and (s[i]<=`Z`) then
a[s[i]]:=a[s[i]]+1;
end;
for c:=`A` to `Z` do
if a[c]<>0 then
writeln( `So lan xuat hien`, c,`: `,a[c]);
readln;
End.
Các thao tác xử lí xâu
Thủ tục delete(St, vt, n);
Thủ tục insert(St1, St2, vt);
Hàm length(St);
Hàm Pos(St1, St2);
Bài 3: Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’.
Input: Nhập vào một xâu
Output: Xuất ra xâu kết quả đã thay thế cụm từ ‘anh’ bằng cụm từ ‘em’
Ví dụ: S:= ‘anh yeu truong anh’
‘em yeu truong em’
1 … .. 16 17 18
Bước 1: Tìm vị trí bắt đầu của xâu ‘anh’
Bước 2: Xóa xâu ‘anh’ vừa tìm thấy
Bước 3: Chèn xâu ‘em’ vào xâu S tại vị trí trước đây xuất hiện xâu ‘anh’(lặp lại các bước trên cho đến khi không còn xâu ‘anh’)
Bước 4: In ra xâu S
1 … .. 15 16
Uses crt;
Var s: string;
i: byte;
Begin
Clrscr;
Write(`Nhap xau S:`); Readln(s);
i:=Pos(`anh`,s);
While i<> 0 do
Begin
Delete(s,i,3);
Insert(`em`,s,i);
I:=Pos(`anh`,s);
End;
writeln(S);
readln;
End.
Những kiến thức cần nắm :
Cách tạo một xâu mới từ xâu ban đầu.
Đếm số lần xuất hiện của một chữ cái trong toàn bộ văn bản.
Tìm kiếm và thay thế một từ bằng một từ khác trong toàn bộ văn bản.
Những kiến thức cần chuẩn bị:
Kiến thức về kiểu dữ liệu có cấu trúc.
Câu hỏi và bài tập trang 79 (SGK).
Ví dụ 4
Viết chương trình 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ừ xâu ban đầu sau khi loại bỏ các dấu cách nếu có.
T
I
N
Cho xâu S:
1 2 3 4 5 6 7 8 9 10 11 12
C
O
1
1
Xâu S sau khi xử lý:
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8
QUÝ THẦY CÔ VỀ DỰ GIỜ THĂM LỚP
KIỂM TRA BÀI CŨ
Câu 1: Em hãy viết cú pháp khai báo biến xâu. Khai báo biến để lưu họ tên của một học sinh? (4đ)
Câu 2: Hãy cho biết độ dài của xâu S;
Với S:=‘NGUYEN VAN AN ’? (2đ)
11 B. 10 C. 13 D. 14
Câu 3: Với giá trị của xâu S ở trên, khi tham chiếu đến phần tử thứ 8 thì ta được kí tự nào? (2đ)
‘ ’ B. ‘V’ C. ‘N’ D. ‘A’
Câu 4: Cho biết kết quả của hàm sau: POS(‘AN’,S)? (2đ)
8 B. 9 C. 11 D. 2
VAR HOTEN: STRING[30]; {Độ dài tùy chọn}
VAR
BÀI 12: KIỂU XÂU (tt)
TIN HỌC LỚP 11 TIẾT PPCT 28/23
(Tiết 4)
MỘT SỐ VÍ DỤ
Ví dụ 4
Viết chương trình 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ừ xâu ban đầu sau khi loại bỏ các dấu cách nếu có.
Xâu kí tự bất kì
Xâu sau khi loại bỏ các dấu cách
Ý tưởng giải bài toán?
Kiểm tra từng ký tự trên xâu. Nếu ký tự đó không là dấu cách thì ghép nối vào xâu mới
Trong bài toán này, ta cần sử dụng hàm, thủ tục nào
Hàm length(S)
Thuật toán
Bước 1: Khai báo biến.
Bước 2: Nhập vào xâu S.
Bước 3: Tạo xâu S2 rỗng để lưu trữ các ký tự không là dấu cách từ S bằng phép nối xâu.
Bước 4: Duyệt (kiểm tra) từng ký tự của xâu S:
+ Sử dụng vòng lặp For I :=1 length(S);
+ Nếu ký tự thứ I không là dấu cách thì nối vào sau xâu S2;
Bước 5: Xuất xâu kết quả
Ví dụ 4 – Mô phỏng thuật toán
T
I
N
H
Cho xâu S:
1 2 3 4 5 6 7 8 9 10 11 12
C
O
1
1
Xâu S2, ban đầu S2=‘’:
Length(S); 12
s[i] < > ‘ ’
Duyệt xâu:
< >
I
N
H
C
C
O
1
1
T
T
I
1 2 3 4 5 6 7 8 9 10 11 12
N
H
O
1
1
S2 := S2 + S[i];
for i:=1 to k do
If S[i] <> ‘ ‘ then
S2:= S2 + S[i];
Writeln (‘Xau sau xu ly: ‘, S2);
Readln
End.
Độ dài tối đa được phép của xâu s và s2 là bao nhiêu? Độ dài thực sự của xâu s, s2?
Các bước
Thể hiện bằng Pascal
Khai báo biến xâu
Nhập xâu
4. Xử lí xâu
Var S, S2 : string;
I, K: byte;
Begin
Write(‘Nhap xau ki tu : ’);
Readln(s);
S2:=‘’;
k:=length(S);
3. Tạo S2 rỗng, tính chiều dài K
5. In kết quả
Ví dụ 5
Viết chương trình nhập vào một 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 vị trí xuất hiện của chúng) và đưa ra kết quả.
Xâu kí tự S1 bất kì
Xâu S2 chữ gồm các ký tự là chữ số có trong S1
Nêu ý tưởng giải bài toán?
- Kiểm tra từng ký tự trên S1, nếu là chữ số thì nối vào xâu S2
- Xuất xâu kết quả
Trong bài toán này, ta cần sử dụng hàm, thủ tục nào
Hàm length(s)
Nêu các bước để giải quyết bài toán trên
Thảo luận nhóm (7 phút)
Ví dụ 5
Viết chương trình nhập vào một 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 vị trí xuất hiện của chúng) và đưa ra kết quả.
Thuật toán
Bước 1: Khai báo biến xâu S1, S2.
Bước 2: Nhập vào xâu S1.
Bước 3: Tạo xâu S2 rỗng để lưu trữ các ký tự là chữ số (‘0’… ‘9’) S bằng phép nối xâu (+).
Bước 4: Duyệt (kiểm tra) từng ký tự của xâu S:
+ Sử dụng vòng lặp For i=1 length(S);
+ Nếu ký tự thứ I là chữ số (‘0’… ‘9’)
‘0’ <=s[i]<= ‘9’ thì nối vào sau xâu S2;
Bước 5: Xuất xâu S2;
Mô phỏng thuật toán
A
1
S
1
E
9
Cho xâu S1:
1 2 3 4 5 6 7
Length(S1);->7
S2:= ‘’;
1
A
FALSE
‘’
2
FALSE
‘’
3
1
TRUE
1
4
S
FALSE
1
5
9
TRUE
1
9
6
A
FALSE
7
1
TRUE
1
Mô phỏng thuật toán
A
1
S
1
E
9
Cho xâu S1:
1 2 3 4 5 6 7
Length(S1);->7
S2:= ‘’;
1
A
FALSE
‘’
2
FALSE
‘’
3
1
TRUE
1
4
S
FALSE
1
5
9
TRUE
1
9
6
A
FALSE
7
1
TRUE
1
for i:=1 to k do
If (‘0’ <= S1[i]) AND (S1[i] <= ‘9’)
then S2:= S2 + S1[i];
Writeln (‘Xau sau xu ly: ‘, S2);
Readln
End.
Các bước
Thể hiện bằng Pascal
Khai báo biến xâu
Nhập xâu
4. Xử lí xâu
Var S1, S2 : string;
I, K: byte;
Begin
Write(‘Nhap xau ki tu : ’);
Readln(s1);
S2:=‘’;
k:=length(S);
3. Tạo S2 rỗng, tính chiều dài K
5. In kết quả
Nhận xét
Ta có biểu thức kiểm tra ký tự thứ s1[i] là chữ số hay không:
(‘0’ <=s1[i]) and (s1[i] <=‘9’)
Có thể sử dụng phép kiểm tra s1[i] có thuộc tập hợp các ký tự số bởi biểu thức:
S[i] IN [‘0’..’9’]
Trong đó:
S[i] là ký tự thứ I trên xâu S;
[‘0’..’9’] là tập hợp các ký tự chữ số từ 0 9
IN: phép kiểm tra thuộc tập hợp
Vd: S[i] not IN [‘a’..’z’] -> không thuộc tập các chữ cái thường a z;
S[i] IN [‘A’, ‘E’, ‘I’, ‘O’, ‘U’] -> thuộc tập các nguyên âm trong tiếng Anh viết in hoa.
for i:=1 to k do
S2:= S2 + S1[i];
Writeln (‘Xau sau xu ly: ‘, S2);
Readln
End.
Các bước
Thể hiện bằng Pascal
Khai báo biến xâu
Nhập xâu
4. Xử lí xâu
Var S1, S2 : string;
I, K: byte;
Begin
Write(‘Nhap xau ki tu : ’);
Readln(s1);
S2:=‘’;
k:=length(S);
3. Tạo S2 rỗng, tính chiều dài K
5. In kết quả
If (‘0’ <= S1[i]) AND
(S1[i] <= ‘9’) then
If S1[i] IN [‘0’..’9’]
then
Bài tập áp dụng
Viết chương trình nhập vào một xâu ký tự S1, tạo xâu S2 gồm tất cả các chữ cái in thường có trong S1 (giữ nguyên vị trí xuất hiện của chúng) và đưa ra kết quả.
Thảo luận nhóm (7 phút)
Nhận xét- Củng cố
2. Khai báo biến xâu
3.Các thao tác trên xâu:
- Truy xuất đến ký tự thứ I:
Duyệt xâu
Ghép nối xâu
Chiều dài xâu
1. Khi giải quyết 1 bài toán cần xđ:
VAR
- S1[i]
Vòng lặp For… do
S2:= S2 + S1[i];
Hàm length(S1)
Vd: var S1, S2: String[100];
Câu 1: Trong ngôn ngữ lập trình Pascal, xâu kí tự là:
A. mảng kí tự;
B. dãy các kí tự trong bảng mã ASCII;
C. tập hợp các chữ cái trong bảng chữ cái tiếng Anh;
D. tập hợp các chữ cái và các chữ số trong bảng chữ cái tiếng Anh.
Câu 2: 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 một biến xâu kí tự là:
A. Var S: String; B. Var X1: String[100];
C. Var S: String[256]; D. Var X1: String[1];
Câu 3: Trong ngôn ngữ lập trình Pascal, hàm Upcase(ch) cho kết quả là::
A. chữ cái in hoa tương ứng với kí tự Ch;
B. xâu Ch gồm toàn chữ in hoa;
C. xâu Ch gồm toàn chữ thường;
D. biến kí tự Ch thành chữ thường.
Câu 4: Trong ngôn ngữ lập trình Pascal xâu ký tự không chứa ký tự nào gọi là:
Xâu rỗng; b. Xâu không;
c. Xâu trắng; d. Không phải là xâu ký tự
CỦNG CỐ
Cho s1:=‘hoc ’; s2:=‘pascal ’
Câu 5: Để có được kết quả là: ‘hoc pascal rat de’ thì ta làm như sau:
S1+S2+ rat de; B. S1+S2+rat+de;
C. S1+S2+’rat’+’de’; D. S1+S2+’rat de’;
Câu 6: Để có kết quả là: ‘pas’ thì ta làm:
delete(s2,4,3); B. delete(s2,4,4);
C. delete(s1,s2,4); D.delete(s2,3,4);
Câu 7: Để có kết quả là: ‘pashoc cal ’ thì ta làm:
insert(s2,s1,3); B. insert(s2,s1,4);
C. insert(s1,s2,4); D.insert(s1,s2,3);
Bài học kết thúc
Xin cảm ơn quý thầy cô
cùng các em!
CỦNG CỐ
Câu 8: Khai báo nào sau đây là đúng?
Var x:string[25]; C. Var x= string[40];
Var x:string[256]; D. Var x: string40;
Câu 9: Hãy cho biết độ dài của xâu S;
Với S:=‘Tien Giang que toi!’?
18 B. 20 C. 19 D. Kq khác
Câu 10: Với giá trị của xâu S ở trên, khi tham chiếu đến phần tử thứ 9 thì ta được kí tự nào?
‘i’ B. ‘G’ C. ‘g’ D. ‘n’
Câu 11: Trong ngôn ngữ lập trình Pascal sau khi thực hiện đoạn
chương trình sau, giá trị của biến S là:
S:=’Ha Noi’;
Delete(S, 4, 3);
Insert(‘ Tay’, S, 3);
a. ‘Ha ‘; b. ‘Ha Tay’;
c. ‘Tay Ha’; d. ‘Ha Tay’;
Câu 12: Trong ngôn ngữ lập trình Pascal,
với xâu ký tự có các phép toán là:
a. Phép cộng, trừ, nhân, chia;
b. Chỉ có phép cộng;
c. Phép ghép xâu và phép so sánh
d. Phép cộng và phép trừ;
Bài 2: Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S
( không phân biệt chữ hoa hay chữ thường )
Input: Nhập vào xâu
Output: Xuất ra số lần xuất hiện của các chữ cái tiếng Anh trong xâu vừa nhập.
Chúng ta sẽ có bao nhiêu chữ cái trong tiếng Anh? Từ chữ cái A Z ;
Thuật toán
Bước 1: Nhập vào xâu S.
Bước 2: Tạo mảng A lưu trữ số lần xuất hiện của chữ cái tiếng Anh.
Bước 3: Khởi tạo cho từng phần tử mảng.
Bước 4: Nếu trong xâu S chữ cái A Z thì tăng giá trị của phần tử trong mảng.
Bước 5: Xuất ra mảng vừa tạo.
A B … H I J K …
Cho xâu S:
Tạo mảng A: Ghi nhận số lần xuất hiện của các kí tự trong xâu S
1 2 3 4 5 6 7
Var A: array[
‘A’.. ‘Z’
A
] of byte;
A[‘H’]=2 có nghĩa là có 2 kí tự ‘H’ trong xâu S.
Program bai02;
Uses crt;
Var a: array[`A`.. `Z`] of byte;
s: string;
i: byte;
c: char;
Begin
clrscr;
write(`nhap xau :`);
readln(s);
for c:=`A` to `Z` do a[c]:=0;
for i:=1 to length(s) do
begin
s[i]:=upcase(s[i]);
if (s[i]>=`A`) and (s[i]<=`Z`) then
a[s[i]]:=a[s[i]]+1;
end;
for c:=`A` to `Z` do
if a[c]<>0 then
writeln( `So lan xuat hien`, c,`: `,a[c]);
readln;
End.
Các thao tác xử lí xâu
Thủ tục delete(St, vt, n);
Thủ tục insert(St1, St2, vt);
Hàm length(St);
Hàm Pos(St1, St2);
Bài 3: Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’.
Input: Nhập vào một xâu
Output: Xuất ra xâu kết quả đã thay thế cụm từ ‘anh’ bằng cụm từ ‘em’
Ví dụ: S:= ‘anh yeu truong anh’
‘em yeu truong em’
1 … .. 16 17 18
Bước 1: Tìm vị trí bắt đầu của xâu ‘anh’
Bước 2: Xóa xâu ‘anh’ vừa tìm thấy
Bước 3: Chèn xâu ‘em’ vào xâu S tại vị trí trước đây xuất hiện xâu ‘anh’(lặp lại các bước trên cho đến khi không còn xâu ‘anh’)
Bước 4: In ra xâu S
1 … .. 15 16
Uses crt;
Var s: string;
i: byte;
Begin
Clrscr;
Write(`Nhap xau S:`); Readln(s);
i:=Pos(`anh`,s);
While i<> 0 do
Begin
Delete(s,i,3);
Insert(`em`,s,i);
I:=Pos(`anh`,s);
End;
writeln(S);
readln;
End.
Những kiến thức cần nắm :
Cách tạo một xâu mới từ xâu ban đầu.
Đếm số lần xuất hiện của một chữ cái trong toàn bộ văn bản.
Tìm kiếm và thay thế một từ bằng một từ khác trong toàn bộ văn bản.
Những kiến thức cần chuẩn bị:
Kiến thức về kiểu dữ liệu có cấu trúc.
Câu hỏi và bài tập trang 79 (SGK).
Ví dụ 4
Viết chương trình 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ừ xâu ban đầu sau khi loại bỏ các dấu cách nếu có.
T
I
N
Cho xâu S:
1 2 3 4 5 6 7 8 9 10 11 12
C
O
1
1
Xâu S sau khi xử lý:
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8
* 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ẻ: Nguyễn Thành Luân
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)