Bài 12. Kiểu xâu
Chia sẻ bởi Phạm Thúy Vân |
Ngày 10/05/2019 |
52
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:
Tiết 32: Kiểu xâu (tiết 2)
Phần thi: Khởi động
05
04
03
02
01
00
Câu 1: Trong ngôn ngữ lập trình Pascal, thủ tục Delete(a,b,c) thực hiện công việc gì trong các công viêc sau?
A. Xóa trong xâu a, tại vị trí b, xóa đi c kí tự
B. Xóa trong xâu a, tại vị trí c, xóa đi b kí tự
C. Xóa trong xâu c, tại vị trí b, xóa đi a kí tự
D. Xóa trong xâu c, tại vị trí a, xóa đi b kí tự
10
09
08
07
06
05
04
03
02
01
00
Câu 2:
Cho S:= ‘Tin hoc’; Tham chiếu tới phần tử thứ 4 của S ta được kết quả?
A. S[4] = ‘hoc’
B. S[4] = ‘’
C. S[4] = ‘h’
D. S[4] = ‘ ‘
10
09
08
07
06
05
04
03
02
01
00
Câu 3:
Cú pháp khai báo tổng quát, đầy đủ của dữ liệu kiểu xâu là:
A. Var of String;
B. Var: String[độ dài lớn nhất của xâu];
C. Var < tên biến> String[độ dài lớn nhất của xâu];
D. Var < tên biến> of String[độ dài lớn nhất của xâu];
05
04
03
02
01
00
Câu 4:
Tìm vị trí xuất hiện đầu tiên
của xâu ‘hoa’ trong xâu S ta viết
A. I:= Pos(‘hoa’,S);
B. S1:= ‘hoa’; I:= Pos(S1,‘hoa’);
C. I:=Pos(S,‘hoa’)
D. I:=Pos(‘hoa’,‘hoa’)
10
09
08
07
06
05
04
03
02
01
00
Câu 5: Trong ngôn ngữ lập trình pascal,hai xâu được so sánh dựa trên?
A. Độ dài tối đa của hai xâu;
B. Mã của từng kí tự trong các xâu lần lượt
từ trái sang phải;
C. Độ dài thực sự của hai xâu;
D. Số lượng kí tự khác nhau trong xâu;
Tiết 32: Kiểu xâu (Tiết 2)
3. Một số ví dụ
Ví dụ 1: Nhập họ tên 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ãy phát hiện và sửa lỗi sai nếu có của chương trình ví dụ 1
Phần thi: Tìm hiểu chương trình
Phần thi: Tìm hiểu chương trình
Xác định bài toán
Input: Nhập vào xâu a, xâu b
Output: Thông báo trùng nhau hoặc không trùng nhau
Ví dụ 2: Nhập hai xâu từ bàn phím, 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 hay không?
Ý TƯỞNG
-Xác định độ dài xâu b
- So sánh giá trị a[1] với giá trị B[x], Nếu a[1] = b[x] thì đưa ra thông báo ‘Trung nhau’ ngược lại ‘Khac nhau’.
Minh họa (ví dụ 2)
Var a, b:String;
1
2
4
3
…
5
255
a
Write(‘Nhap vao xau thu nhat: ’);
Readln(a);
t
r
n
a
t
a
n
x := length(b);
If a[1]= b[x] then write (‘Trung nhau’)
else write (‘Khac nhau’);
Nhap vao xau thu nhat:
t
h
i
e
Màn hình
b
g
t
h
i
e
1
2
3
4
5
…
255
t
r
Write(‘Nhap vao xau thu hai: ’);
Readln(b);
g
x: byte;
Nhap vao xau thu hai:
t
Trung nhau
6
5
7
20
15
1
8
Phần thi: Tìm hiểu chương trình
Ý TƯỞNG
Xác định bài toán
Input: Nhập vào xâu a
Output: Đưa ra màn hình xâu a theo thứ tự ngược lại
Ví dụ 3: Nhập vào một xâu từ bàn phím và đưa ra màn hình xâu đó được viết theo thứ tự ngược lại.
-Tính độ dài xâu a là k.
- Lần lượt với i từ k về 1 đưa lên màn hình từng a[i]
Minh hoạ (ví dụ 3)
Var a: String;
i, k:Byte;
1
3
2
…
4
255
a
Write(‘Nhap vao mot xau: ’);
Readln(St);
k := length(a);
i
a
b
c
d
a
c
d
b
For i:= k downto 1 do
Write(a[i]);
Nhap vao mot xau:
4
d
c
b
a
3
2
1
Màn hình
6
5
7
20
15
1
8
Phần thi: Tìm hiểu chương trình
Ý TƯỞNG
Xác định bài toán
Input: Nhập vào xâu a
Output: Đưa ra màn hình xâu b không chứa dấu cách
Ví dụ 4: 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ừ nó bởi việc loại bỏ các dấu cách nếu có.
- Xác định độ dài xâu a.
- Tạo xâu rỗng b.
- Lần lượt với i từ 1 tới k, so sánh phần tử a[i] với dấu ‘ ‘, nếu a[i] <> ‘ ‘ ghép a[i] vào xâu b
Minh hoạ (ví dụ 4)
Var a, b:String;
1
2
4
3
…
5
255
a
Write(‘Nhap xau: ’);
Readln(a);
L
o
n
L
n
For i:= 1 to k do
If a[i] <> ‘ ‘ then b := b + a[i];
Nhap xau:
L
o
n
g
Màn hình
b
g
L
o
n
g
1
2
3
4
…
255
o
k := length(a);
b := ‘’;
g
x: byte;
Ket qua:
writeln (‘Ket qua: ’,b);
6
5
7
20
15
1
8
Phần thi: Tìm hiểu chương trình
Ý TƯỞNG
Xác định bài toán
Input: Nhập vào xâu s1
Output: Đưa ra màn hình xâu s2 gồm các chữ số trong s1
Ví dụ 5: 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ố trong s1 (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình.
- Khởi tạo xâu s2 rỗng.
- Lần lượt với i tới chiều dài s1, so sánh phần tử a[i] có nằm trong đoạn kí tự ‘0’ tới ‘9’ hay không? Nếu thuộc đoạn ‘0’ tới ‘9’ thì cộng vào xâu s2.
Minh hoạ (ví dụ 5)
Var s1, s2: String;
1
2
4
3
…
5
255
s1
Write(‘Nhap xau s1: ’);
Readln(a);
L
1
1
L
A
For i:= 1 to length (s1) do
If (‘0’=< s1[i]) and (s1[i] <= ‘9’) then s2 := s2 + s1[i];
Nhap xau s1:
1
1
1
Màn hình
s2
1
1
1
1
1
2
3
4
…
255
1
b := ‘’;
A
i: byte;
1
Ket qua:
1
Writeln (‘Ket qua: ‘,s2);
6
5
7
20
15
1
8
Phần thi: Về đích
Câu hỏi: Em hãy ghép các câu lệnh vào chương trình cho sẵn thành một chương trình hoàn chỉnh và nêy ý nghĩa chương trình
Ý nghĩa chương trình: Nhập vào từ bàn phím xâu a, tạo xâu b gồm tất cả các chữ cái in hoa (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình.
Đáp án:
Câu 2: Em hãy sửa chương trình ví dụ 5 SGK để cho biết có bao nhiêu chữ số có trong s1
Đáp án: Sửa câu lệnh d:= 0; s2:=s2+s1[i];
Thay tương ứng bằng câu lệnh d:=d+1;
DẶN DÒ:
1. Ôn tập các thao tác với xâu.
2. Bài tập.
Bài tập 1: Viết chương trình nhập vào một xâu. In ra màn hình xâu đó sau khi đã đổi tất cả chữ in thường thành in hoa.
Bài tập 2: Viết chương trình nhập vào một xâu bất kỳ rồi in ra màn hình số từ của xâu đó.
Phần thi: Khởi động
05
04
03
02
01
00
Câu 1: Trong ngôn ngữ lập trình Pascal, thủ tục Delete(a,b,c) thực hiện công việc gì trong các công viêc sau?
A. Xóa trong xâu a, tại vị trí b, xóa đi c kí tự
B. Xóa trong xâu a, tại vị trí c, xóa đi b kí tự
C. Xóa trong xâu c, tại vị trí b, xóa đi a kí tự
D. Xóa trong xâu c, tại vị trí a, xóa đi b kí tự
10
09
08
07
06
05
04
03
02
01
00
Câu 2:
Cho S:= ‘Tin hoc’; Tham chiếu tới phần tử thứ 4 của S ta được kết quả?
A. S[4] = ‘hoc’
B. S[4] = ‘’
C. S[4] = ‘h’
D. S[4] = ‘ ‘
10
09
08
07
06
05
04
03
02
01
00
Câu 3:
Cú pháp khai báo tổng quát, đầy đủ của dữ liệu kiểu xâu là:
A. Var
B. Var
C. Var < tên biến> String[độ dài lớn nhất của xâu];
D. Var < tên biến> of String[độ dài lớn nhất của xâu];
05
04
03
02
01
00
Câu 4:
Tìm vị trí xuất hiện đầu tiên
của xâu ‘hoa’ trong xâu S ta viết
A. I:= Pos(‘hoa’,S);
B. S1:= ‘hoa’; I:= Pos(S1,‘hoa’);
C. I:=Pos(S,‘hoa’)
D. I:=Pos(‘hoa’,‘hoa’)
10
09
08
07
06
05
04
03
02
01
00
Câu 5: Trong ngôn ngữ lập trình pascal,hai xâu được so sánh dựa trên?
A. Độ dài tối đa của hai xâu;
B. Mã của từng kí tự trong các xâu lần lượt
từ trái sang phải;
C. Độ dài thực sự của hai xâu;
D. Số lượng kí tự khác nhau trong xâu;
Tiết 32: Kiểu xâu (Tiết 2)
3. Một số ví dụ
Ví dụ 1: Nhập họ tên 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ãy phát hiện và sửa lỗi sai nếu có của chương trình ví dụ 1
Phần thi: Tìm hiểu chương trình
Phần thi: Tìm hiểu chương trình
Xác định bài toán
Input: Nhập vào xâu a, xâu b
Output: Thông báo trùng nhau hoặc không trùng nhau
Ví dụ 2: Nhập hai xâu từ bàn phím, 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 hay không?
Ý TƯỞNG
-Xác định độ dài xâu b
- So sánh giá trị a[1] với giá trị B[x], Nếu a[1] = b[x] thì đưa ra thông báo ‘Trung nhau’ ngược lại ‘Khac nhau’.
Minh họa (ví dụ 2)
Var a, b:String;
1
2
4
3
…
5
255
a
Write(‘Nhap vao xau thu nhat: ’);
Readln(a);
t
r
n
a
t
a
n
x := length(b);
If a[1]= b[x] then write (‘Trung nhau’)
else write (‘Khac nhau’);
Nhap vao xau thu nhat:
t
h
i
e
Màn hình
b
g
t
h
i
e
1
2
3
4
5
…
255
t
r
Write(‘Nhap vao xau thu hai: ’);
Readln(b);
g
x: byte;
Nhap vao xau thu hai:
t
Trung nhau
6
5
7
20
15
1
8
Phần thi: Tìm hiểu chương trình
Ý TƯỞNG
Xác định bài toán
Input: Nhập vào xâu a
Output: Đưa ra màn hình xâu a theo thứ tự ngược lại
Ví dụ 3: Nhập vào một xâu từ bàn phím và đưa ra màn hình xâu đó được viết theo thứ tự ngược lại.
-Tính độ dài xâu a là k.
- Lần lượt với i từ k về 1 đưa lên màn hình từng a[i]
Minh hoạ (ví dụ 3)
Var a: String;
i, k:Byte;
1
3
2
…
4
255
a
Write(‘Nhap vao mot xau: ’);
Readln(St);
k := length(a);
i
a
b
c
d
a
c
d
b
For i:= k downto 1 do
Write(a[i]);
Nhap vao mot xau:
4
d
c
b
a
3
2
1
Màn hình
6
5
7
20
15
1
8
Phần thi: Tìm hiểu chương trình
Ý TƯỞNG
Xác định bài toán
Input: Nhập vào xâu a
Output: Đưa ra màn hình xâu b không chứa dấu cách
Ví dụ 4: 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ừ nó bởi việc loại bỏ các dấu cách nếu có.
- Xác định độ dài xâu a.
- Tạo xâu rỗng b.
- Lần lượt với i từ 1 tới k, so sánh phần tử a[i] với dấu ‘ ‘, nếu a[i] <> ‘ ‘ ghép a[i] vào xâu b
Minh hoạ (ví dụ 4)
Var a, b:String;
1
2
4
3
…
5
255
a
Write(‘Nhap xau: ’);
Readln(a);
L
o
n
L
n
For i:= 1 to k do
If a[i] <> ‘ ‘ then b := b + a[i];
Nhap xau:
L
o
n
g
Màn hình
b
g
L
o
n
g
1
2
3
4
…
255
o
k := length(a);
b := ‘’;
g
x: byte;
Ket qua:
writeln (‘Ket qua: ’,b);
6
5
7
20
15
1
8
Phần thi: Tìm hiểu chương trình
Ý TƯỞNG
Xác định bài toán
Input: Nhập vào xâu s1
Output: Đưa ra màn hình xâu s2 gồm các chữ số trong s1
Ví dụ 5: 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ố trong s1 (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình.
- Khởi tạo xâu s2 rỗng.
- Lần lượt với i tới chiều dài s1, so sánh phần tử a[i] có nằm trong đoạn kí tự ‘0’ tới ‘9’ hay không? Nếu thuộc đoạn ‘0’ tới ‘9’ thì cộng vào xâu s2.
Minh hoạ (ví dụ 5)
Var s1, s2: String;
1
2
4
3
…
5
255
s1
Write(‘Nhap xau s1: ’);
Readln(a);
L
1
1
L
A
For i:= 1 to length (s1) do
If (‘0’=< s1[i]) and (s1[i] <= ‘9’) then s2 := s2 + s1[i];
Nhap xau s1:
1
1
1
Màn hình
s2
1
1
1
1
1
2
3
4
…
255
1
b := ‘’;
A
i: byte;
1
Ket qua:
1
Writeln (‘Ket qua: ‘,s2);
6
5
7
20
15
1
8
Phần thi: Về đích
Câu hỏi: Em hãy ghép các câu lệnh vào chương trình cho sẵn thành một chương trình hoàn chỉnh và nêy ý nghĩa chương trình
Ý nghĩa chương trình: Nhập vào từ bàn phím xâu a, tạo xâu b gồm tất cả các chữ cái in hoa (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình.
Đáp án:
Câu 2: Em hãy sửa chương trình ví dụ 5 SGK để cho biết có bao nhiêu chữ số có trong s1
Đáp án: Sửa câu lệnh d:= 0; s2:=s2+s1[i];
Thay tương ứng bằng câu lệnh d:=d+1;
DẶN DÒ:
1. Ôn tập các thao tác với xâu.
2. Bài tập.
Bài tập 1: Viết chương trình nhập vào một xâu. In ra màn hình xâu đó sau khi đã đổi tất cả chữ in thường thành in hoa.
Bài tập 2: Viết chương trình nhập vào một xâu bất kỳ rồi in ra màn hình số từ của xâu đó.
* 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ẻ: Phạm Thúy Vâ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)