Tải bản đầy đủ (.docx) (29 trang)

Giáo án tiết 32. Bài 12 - Kiểu xâu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (715.2 KB, 29 trang )

Giáo án tiết 32 – lớp 11

Người soạn: Đào Thị Thêm

Tiết 32. Bài 12: KIỂU XÂU (tiết 2)
I. Mục tiêu
1. Kiến thức:
- Hiểu và áp dụng được một số thủ tục và hàm thơng dụng đối với kiểu xâu.
- Có thể cài đặt được một số chương trình đơn giản có sử dụng kiểu xâu.
- Phần minh họa với Pascal, học sinh cần nắm được:
o Cách khai báo kiểu xâu.
o Ý nghĩa của các phép so sánh, phép ghép xâu.
o Ý nghĩa của các hàm chuẩn: length(s), copy(s,vt,n), pos(s1,s2), upcase(ch). Và các thủ tục chuẩn:
delete(st,vt,n), insert(s1,s2,vt).
2. Kĩ năng:
- Khai báo kiểu xâu.
- So sánh hai xâu.
- Nhận biết và bước đầu sử dụng các hàm, thủ tục chuẩn với kiểu xâu.
- Hoạt động nhóm tích cực.
- Thuyết trình thơng qua việc trình bày một sản phẩm chung của cả nhóm.
3. Tư duy, thái độ:
- Có tinh thần hợp tác, tích cực tham gia bài học.
- Rèn tư duy lập trình logic trong quá trình lập trình giải quyết một bài toán trên Pascal.
II. Chuẩn bị phương tiện dạy học
1. Học sinh: Ôn các kiến thức về kiểu xâu đã được học trong tiết 31.
2. Giáo viên: Phiếu học tập, chương trình Pascal mẫu để giải các bài tập giao cho học sinh thực hiện, bảng phụ,
máy chiếu.
III. Phương pháp dạy học
- Phương pháp dạy học nhóm.
- Phương pháp dạy học nêu vấn đề và giải quyết vấn đề.


1


Giáo án tiết 32 – lớp 11

Người soạn: Đào Thị Thêm

IV. Tiến trình tổ chức bài học
1. Ổn định tổ chức lớp học.
2. Kiểm tra bài cũ thông qua hoạt động “trò chơi khởi động”: (5 phút)
 Giáo viên(GV) thực hiện phát cho mỗi nhóm 1 tờ giấy A3 màu trắng, 6 tờ giấy A4 khác màu (mỗi nhóm một màu
khác nhau), và bút dạ.
 GV viết lên bảng chủ đề: “KIỂU XÂU”. Yêu cầu học sinh nhớ lại kiến thức về kiểu xâu đã được học trong tiết
31, thư kí của mỗi nhóm viết vào giấy A3 màu trắng tất cả các thông tin mà các thành viên trong nhóm nhớ được.
 Sau 90 giây, GV yêu cầu các nhóm báo cáo kết quả bằng kĩ thuật XYZ: Lần lượt từng nhóm đọc 1 thơng tin mà
nhóm nhớ được về kiểu xâu, viết to vào giấy màu A4 và dán lên bảng. Các nhóm sau khơng được nêu thơng tin
trùng với nhóm trước. Nhóm nào nêu thơng tin trùng hoặc sau 5 giây không nêu thêm được thông tin mới sẽ bị
loại.
 GV tổ chức cho các nhóm báo cáo quay vịng để tìm ra nhóm chiến thắng. Sau khi kết thúc trò chơi, cả lớp thu
được một sơ đồ tư duy về các kiến thức liên quan tới kiểu xâu.
 Dự kiến một sơ đồ tư duy có thể thu được:

2


Giáo án tiết 32 – lớp 11

Người soạn: Đào Thị Thêm

 Cuối cùng, Giáo viên nhận xét đánh giá hoạt động của các nhóm và cho điểm các nhóm.


3


Giáo án tiết 32 – lớp 11

Người soạn: Đào Thị Thêm

3. Bài mới:
Mở bài: (1 phút)
- GV sử dụng một bài thơ “Kiểu Xâu” để mở bài:
Array là mảng, string xâu.
Khai báo đã được học chưa lâu.
Cứ var mà viết chẳng sai đâu.
Cộng ghép thêm vào xâu hết ngắn.
Lớn nhỏ bằng khác cứ so nhau.
Hàm thời sẵn có length và pos.
Thêm cả copy, upcase hàm.
Delete thủ tục xóa, insert chèn.
Pascal đâu có khơ khan nhỉ.
Nếu mà chăm chỉ code vài bài.
Tác giả: Đào Thêm.
- GV: Các em thấy đấy “Pascal đâu có khơ khan!” Và để chứng minh điều đó, hơm nay Cơ trị mình sẽ tìm hiểu tiếp
phần 3. Một số ví dụ.

4


Giáo án tiết 32 – lớp 11


Người soạn: Đào Thị Thêm

Hoạt động 1: Tìm hiểu một số ví dụ về kiểu xâu (20 phút)
Hoạt động của giáo viên

Hoạt động của học sinh

-GV: Đầu tiên chúng ta sẽ tìm hiểu
ví dụ 1 trang 71 sách giáo khoa
(SGK), GV trình chiếu bằng Turbo
Pascal.

-GV nhấn mạnh: cách khai báo biến
xâu, việc nhập giá trị cho một biến
xâu như một biển kiểu đơn giản, và -Học sinh (HS) quan sát và
cách sử dụng hàm length(s).
lắng nghe.

Nội dung bài học
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 ra xâu
nhập sau.
var a,b:string;
begin
write('Nhap ho ten nguoi thu nhat: ');
Readln(a);
write('Nhap ho ten nguoi thu hai: ');

readln(b);
if length(a) > length(b) then write(a) else
write(b);
readln
end.

5


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-HS quan sát, dự đoán kết - 2 bộ test
quả.
+ test1: ‘Bui Minh Phuong’
‘Dao Nhu Phuong’
Kết quả: ‘Bui Minh Phuong’

+ test2: ‘Nguyen Khanh Huyen’
-GV test chương trình bằng 2 bộ
test, mỗi lần test GV gọi HS dự
đoán kết quả trước khi chương trình
Pascal in kết quả ra màn hình.


‘Nguyen Thanh Huyen’
Kết quả: ‘Nguyen Thanh Huyen’

+ test1: ‘Bui Minh Phuong’
‘Dao Nhu Phuong’
+ test2: ‘Nguyen Khanh Huyen’
‘Nguyen Thanh Huyen’

Ví dụ 2
Chương trình dưới đây nhập vào 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.

6


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh
-HS quan sát.

Nội dung bài học

var a,b:string;

x: byte;
begin
write('Nhap xau thu nhat: ');
readln(a);
write('Nhap xau thu hai: ');
readln(b);
x:= length(b);
if a[1] = b[x] then write('Trung nhau')
else write('Khong trung');
readln
end.

-GV: Qua ví dụ 1 các em đã thấy
được cách thao tác với biến xâu
cũng dễ dàng như các biến kiểu đơn
giản mà các em đã học. Và bây giờ
chúng ta cùng tìm hiểu tiếp ví dụ số
2 trang 71 SGK để thấy được cách
tham chiếu tới từng kí tự của một
xâu như thế nào.

-GV trình chiếu ví dụ 2 bằng Turbo
Pascal.

- HS trả lời câu hỏi.

7


Giáo án tiết 32 – lớp 11


Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-Bộ test:
‘Nguyen Khanh Huyen’
‘Nguyen Thanh Huyen’
-HS quan sát, và dự đoán
-Kết quả: Khong trung
kết quả.

-HS trả lời câu hỏi.

8


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

-GV đưa ra câu hỏi: “Các em thấy

cách tham chiếu tới từng kí tự của
xâu giống với cách tham chiếu của
kiểu dữ liệu nào mà các em đã
học?”

-GV nhận xét câu trả lời của HS và
đưa ra đáp án: Cách tham chiếu
từng kí tự của xâu giống như cách
tham chiếu của mảng một chiều, kí
tự thứ i của xâu S được viết: S[i].

Nội dung bài học

var a,b:string;
begin
write('Nhap xau thu nhat: ');
readln(a);
write('Nhap xau thu hai: ');
readln(b);
if a[1] = b[length(b)] then write('Trung
nhau')
else write('Khong trung');
readln
end.

-Bộ test:
-GV thực hiện test chương trình với
-HS quan sát, lắng nghe.
bộ test:


‘Nguyen Khanh Huyen’
‘Nguyen Thanh HuyeN’

9


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

‘Nguyen Khanh Huyen’

Nội dung bài học
-Kết quả: Trung nhau

‘Nguyen Thanh Huyen’

-GV yêu cầu HS đưa ra dự đoán kết
quả trước khi chương trình thực
hiện in kết quả ra màn hình.

Ví dụ 3
Chương trình sau nhập một xâu 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.
var a:string;i:byte;

begin
write('Nhap xau: ');

-GV đưa câu hỏi: Nếu không sử
dụng biến x mà viết trực tiếp
b[length(b)] thì chương trình có
thực hiện được không?
-HS quan sát và trả lời.

readln(a);
for i:=length(a) downto 1 do write(a[i]);
readln
end.

-GV nhận xét câu trả lời của HS và -HS quan sát kết quả.
đưa ra chương trình Pascal kiểm

10


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

chứng.


Nội dung bài học
-Bộ test: ‘abcde’
-Kết quả: ‘edcba’

-HS quan sát, lắng nghe.
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ó
sau khi loại bỏ các dấu cách nếu có.
var a,b:string;
i:byte;
begin
write('Nhap xau: ');readln(a);
b:='';
for i:=length(a) downto 1 do
if a[i] <> ' ' then b:=b+ a[i];
-HS quan sát, sửa lỗi.

write(b);
readln
end.
11


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

-GV đưa ra câu trả lời cuối cùng là:
có thể viết trực tiếp b[length(b)] mà

không cần sử dụng thêm biến x.
-GV mở rộng kiến thức: trong lập
trình mỗi biến chiếm một chỗ nhất
định trong bộ nhớ, vậy việc tiết
kiệm biến giúp tiết kiệm bộ nhớ.
Đồng thời sử dụng biến phù hợp
giúp người lập trình kiểm sốt
chương trình của mình tốt hơn.

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

Test lần một:
Bộ test: ‘a b c d e’
Kết quả: ‘edcba’
var a,b:string;
i:byte;
begin
write('Nhap xau: ');readln(a);
b:='';
for i:=1 to length(a) do
if a[i] <> ' ' then b:=b+ a[i];
write(b);
readln

-GV: Bây giờ chúng ta sẽ thực hành
việc tiết kiệm biến trong ví dụ số 3

trang 72 SGK.

end.
-HS thảo luận đưa ra câu Test lần hai (Sau khi đã sửa lỗi)
trả lời.
Bộ test: ‘a b c d e’;
Kết quả: ’abcde’

12


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-GV trình chiếu ví dụ 3 bằng Pascal.
var a:string;
i:byte;
begin
write('Nhap xau: ');
-HS quan sát bài mẫu.

readln(a);
for i:=1 to length(a) do

if a[i] <> ' ' then write(a[i]);
readln
end.

-GV đưa câu hỏi: Các em thấy cách
sử dụng vòng lặp for – do để duyệt
lần lượt các kí tự của một xâu có
giống với mảng một chiều khơng?

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

13


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-GV thực hiện test chương trình
bằng bộ test: ‘abcde’

var s1,s2:string;i:byte;
begin
write('Nhap xau S1: ');readln(S1);
-GV: Chúng ta sẽ thực hành tiếp các
thao tác xử lí xâu thơng qua ví dụ 4
và ví dụ 5 trang 72 SGK.
-GV trình chiếu chương trình ví dụ 4
bằng Pascal.

-GV test chương trình với bộ test: ‘a b
c d e’
thu được kết quả: ‘edcba’ ngược với
thứ tự xuất hiện của xâu ban đầu. Vậy
kết luận chương trình lỗi. Yêu cầu HS
tìm và sửa lỗi.

S2:='';
for i:= 1 to length(a) do
if (s1[i] >= '0') and (s1[i]<='9') then
S2:=S2+ s1[i];
-HS quan sát, làm theo yêu
cầu.

write(S2);
readln
end.
Bộ test: ‘1a 2b 3c 4d 5e’
Kết quả: ‘12345’

14



Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

var s1:string;i:byte;
begin
-GV nhận xét câu trả lời của HS, Sửa
lỗi chương trình, và test với bộ số: ‘a
b c d e’
For i:=1 to length(a) do
if a[i] <> ' ' then b:=b+ a[i];

write('Nhap xau S1: ');readln(S1);
for i:=1 to length(s1) do
-HS quan sát kết quả.

if (a[i] >= '0') and (a[i]<='9') then
write(s1[i]);
readln
end.

15



Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-GV đưa một câu hỏi: Em hãy cải tiến
chương trình bằng cách khơng sử
dụng thêm biến xâu b mà vẫn in ra
kết quả đúng

-GV nhận xét câu trả lời của HS, chạy
thử chương trình mà HS cải tiến.
-GV trình chiếu chương trình mẫu với
bộ test ‘a b c d e’. GV có thể chạy
thủ cơng trên bảng để giải thích nếu
khơng có HS nào trả lời đúng.

16


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên


Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-GV: tương tự ví dụ 4, ví dụ 5 trang
72 SGK yêu cầu tạo một xâu mới từ
xâu đã cho.

-GV trình chiếu chương trình trên
Pascal. Và yêu cầu HS làm theo cách
không sử dụng biến xâu S2.

17


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-GV chỉnh sửa chương trình theo câu
trả lời của HS. Cuối cùng GV trình

chiếu chương trình mẫu.

18


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-GV tổng kết: qua 5 ví dụ Cơ và các
em đã cùng thực hành về khai báo,
tham chiếu, phép ghép xâu, so sánh
xâu, hàm length(s). Sau đây chúng ta
sẽ thực hành thêm một số hàm, thủ
tục xử lý xâu khác thông qua bài tập
trong hoạt động 2.

Hoạt động 2: Bài tập áp dụng (17 phút)

19


Giáo án tiết 32 – lớp 11


Hoạt động của giáo viên
-GV chiếu nội dung bài tập.

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học
Nội dung bài tập:
Bờm rất thích thú với các chương trình được
viết bằng Pascal. Bờm có một ước mơ sẽ tạo
ra một phần mềm soạn thảo văn bản giống
như Microsoft word. Bờm muốn sử dụng
Pascal để tạo chức năng tìm kiếm thay thế
bằng cách nhập một đoạn văn bản từ bàn
phím, thay thế tất cả cụm từ ‘anh’ bằng cụm
từ ‘em’. Kết quả in ra màn hình.
Bờm đang loay hoay chưa biết làm như thế
nào. Các em hãy giúp Bờm thực hiện nhé.

-HS quan sát.
-GV yêu cầu HS thực hiện phiếu
học tập.
-HS thực hiện phiếu bài tập
theo hướng dẫn: Thực hiện
hoạt động cá nhân trong 1
phút, sau đó thảo luận nhóm
thống nhất kết quả trong 6
phút.
-GV quan sát hoạt động nhóm

của HS, trợ giúp nếu cần.

20


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

Nội dung bài học

-GV thơng báo dừng hoạt động
nhóm khi hết giờ hoặc tất cả các
nhóm đã kết thúc.
-GV cho lần lượt các nhóm lên
trưng bày sản phẩm.
-HS dừng hoạt động nhóm
theo hiệu lệnh của GV, và
mang sản phẩm lên trưng bày.
-GV chọn nhóm xong sớm nhất
trình bày sản phẩm của nhóm
mình.
-Nhóm HS xong sớm nhất cử
đại diện lên trình bày sản
phẩm của cả nhóm. Các HS
khác chú ý lắng nghe.

-GV yêu cầu các nhóm khác
nhận xét hoặc đặt câu hỏi.
-HS nhận xét hoặc đặt câu hỏi.
-GV đưa ra kết quả cuối cùng và
trình chiếu chương trình mẫu.

-Các bước thực hiện:
Bước 1: nhập xâu S
Bước 2: Nếu pos(‘anh’,s) = 0 thì in kết quả,

21


Giáo án tiết 32 – lớp 11

Hoạt động của giáo viên

Người soạn: Đào Thị Thêm

Hoạt động của học sinh

-HS quan sát, lắng nghe.

Nội dung bài học
kết thúc.
Bước 3: xác định vị trí xuất hiện cụm kí tự
‘anh’, i:= pos(‘anh’,s);
Bước 4: Xóa cụm kí tự ‘anh’ trong S bắt đầu
từ vị trí i.  Delete(s,i,3);
Bước 5: Chèn cụm kí tự ‘em’ vào s bắt đầu từ

vị trí i.  Insert (‘em’,s,i);
Bước 6: Quay lại bước 2.
-Chương trình mẫu
var s:string; i:byte;
begin
write('Nhap S= ');
readln(s);
while pos('anh',s) <> 0 do
begin
i:=pos('anh',s);
delete(s,i,3);
insert('em',s,i);
end;
writeln(s);
readln
End.

22


Giáo án tiết 32 – lớp 11

Người soạn: Đào Thị Thêm

Hoạt động 3: Củng cố bài học (2 phút)
1. GV tổng kết bài học.
2. GV giao bài tập về nhà cho HS: Học sinh hoàn thành phiếu bài tập về nhà theo gợi ý của Giáo viên.
PHIẾU BÀI TẬP VỀ NHÀ
1. Lý thuyết:
 Học sinh hoàn thành sơ đồ tư duy mô tả về KIỂU XÂU vào vở ghi theo mẫu sau:


23


Giáo án tiết 32 – lớp 11

Người soạn: Đào Thị Thêm

PHIẾU BÀI TẬP VỀ NHÀ
2. Thực hành:
Bài thực hành 1: Học sinh thực hành 5 ví dụ trong phần 3 trang 71 sách giáo khoa.
Bài thực hành 2: Bờm rất thích thú với các chương trình được viết bằng Pascal. Bờm có một ước mơ sẽ tạo ra
một phần mềm soạn thảo giống như Microsoft word. Bờm muốn sử dụng Pascal để tạo chức năng tìm kiếm thay
thế bằng cách nhập một đoạn văn bản từ bàn phím, thay thế tất cả cụm từ ‘anh’ bằng cụm từ ‘em’. Kết quả in ra
màn hình. Bờm đang loay hoay chưa biết làm như thế nào. Em hãy giúp Bờm thực hiện nhé.
Bài thực hành 3: Sau khi thử nghiệm thành công chức năng tìm kiếm và thay thế trong một văn bản bằng chương
trình Pascal. Bờm muốn tiếp tục tạo chức năng đếm số lượng từ có trong một câu văn bản được nhập từ bàn
phím. Biết rằng: cụm kí tự khơng chứa kí tự phân cách ‘.’ (dấu chấm), ‘,’ (dấu phẩy), ‘ ‘ (dấu cách) được gọi là
một từ. Câu là một đoạn kí tự gồm nhiều từ, nếu câu có nhiều từ thì các từ được phân tách nhau bởi một hoặc một
số kí tự phân cách.
Ví dụ: theo định nghĩa trên ta có
‘Number’ – câu có 1 từ,
‘The number one’ – câu có 3 từ,
‘One, two, three, four, five, six, seven, eight, nine, ten’ – câu có 10 từ.
Em hãy cùng Bờm viết một chương trình Pascal để thử nghiệm chức năng này nhé.

24


Giáo án tiết 32 – lớp 11


Người soạn: Đào Thị Thêm

SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI
Trường THPT Cao Bá Quát – Gia Lâm
Môn: Tin học 11

Bài 12: KIỂU XÂU
PHIẾU HỌC TẬP
1. Hoạt động cá nhân: (2 phút)
- Em hãy trình bày ý tưởng, các bước thực hiện bài tập
- Sau đó trình bày cấu trúc chương trình pascal tương ứng các bước (Có thể trình bày dưới dạng giả mã lệnh).
2. Hoạt động nhóm: (8 phút)
- Cả nhóm thảo luận thống nhất ý kiến và viết kết quả vào bảng A0 theo mẫu sau:
Các bước thực hiện giải bài tốn

Cấu trúc chương trình pascal (có thể trình bày dưới dạng giả mã lệnh)

- Nhóm nào hồn thành trước sẽ được trình bày sản phẩm trước.

25


×