CHỦ ĐỀ: KIỂU XÂU(5 tiết, tiết 25 29 trong PPCT)Ngày giảng: 11122020Bước 1. Lựa chọn chủ đề: Kiểu xâuBước 2: Xác định KTKN và năng lực hướng tớia. Chuẩn kiến thức, kĩ năng, thái độ theo chương trìnhKiến thức Biết xâu là một dãy ký tự (có thể coi xâu là mảng một chiều). Biết cách khai báo xâu, truy cập phần tử của xâu. Biết các thao tác xử lí xâu, ý nghĩa sử dụng của các thao tác đó.Kỹ năng Sử dụng được một số thủ tục, hàm thông dụng về xâu. Viết được một số chương trình đơn giản có sử dụng xâu.b. Năng lực hướng tới: Kĩ năng, hiểu biết về lập trình: Gõ đúng quy cách. Có khả năng xác định và giải quyết các vấn đề đơn giản đối với dữ liệu kiểu xâu. Mô hình hóa các tình huống thực tiễn xảy ra phụ thuộc vào cấu trúc của kiểu xâu trong tin học.Bước 3. Bảng mô tả các mức độ cần đạt
Trang 1Giáo án tin học 11 – năm học 2019 -2020
CHỦ ĐỀ: KIỂU XÂU
(5 tiết, tiết 25- 29 trong PPCT) Ngày giảng: 11/12/2020
Bước 1 Lựa chọn chủ đề: Kiểu xâu
Bước 2: Xác định KTKN và năng lực hướng tới
a Chuẩn kiến thức, kĩ năng, thái độ theo chương trình
Kiến thức
- Biết xâu là một dãy ký tự (có thể coi xâu là mảng một chiều)
- Biết cách khai báo xâu, truy cập phần tử của xâu
- Biết các thao tác xử lí xâu, ý nghĩa sử dụng của các thao tác đó
Kỹ năng
- Sử dụng được một số thủ tục, hàm thông dụng về xâu
- Viết được một số chương trình đơn giản có sử dụng xâu
b Năng lực hướng tới:
- Kĩ năng, hiểu biết về lập trình: Gõ đúng quy cách Có khả năng xác định và giải quyết các vấn đề đơn giản đối với dữ liệu kiểu xâu
- Mô hình hóa các tình huống thực tiễn xảy ra phụ thuộc vào cấu trúc của kiểu xâu trong tin học
Bước 3 Bảng mô tả các mức độ cần đạt
Nội dung Loại câu
hỏi/bài tập
Nhận biết Thông hiểu Vận dụng thấp Vận dụng cao
1 Khái
niệm và
khai báo
Câu hỏi/bài tập định tính HS nêu được một số khái niệm về
xâu, các yếu tố xác định xâu, cách khai báo biến xâu Câu hỏi ND1.DT.NB1 ND1 DT.NB2
ND1 DT.NB3
Hs lấy được một
số ví dụ về xâu kí
tự đơn giản trong thực tế
Câu hỏi ND1.DT.TH1
Bài tập định lượng Bài tập thực hành
Hs viết được khai báo xâu trong tình huống thực tế
Câu hỏi ND1 TH VDT1 ND1 TH VDT2
2 Các thao
tác xử lí
xâu
Câu hỏi/bài tập định tính
Hs mô tả cấu trúc các thao tác xử lí xâu
Câu hỏi ND2.DT.NB1
Hs chỉ ra được các thành phần trong các thao tác xử lí xâu cụ thể
Câu hỏi ND2.DT.TH1 Bài tập định
lượng
Hs hiểu ý nghĩa các hàm và thủ tục trong xâu để giải thích được hoạt động cụ thể
Trang 2Câu hỏi ND2 DL.TH1
ND2 DL.TH2
ND2 DL.TH3
ND2 DL.TH4
ND2 DL.TH5
ND2 DL.TH6
Bài tập thực hành
3 Một số ví
dụ và bài
tập
Câu hỏi/bài tập định tính HS biết các thao tác nhập xâu, in
xâu và duyệt các phần tử của xâu
Câu ND3
DT.NB1
Hs hiểu được nội dung yêu cầu của bài toán về xâu chỉ
ra được các thành phần của chương trình ví dụ, hàm và thủ tục cụ thể
Câu hỏi ND3 DT.TH1
ND3 DT.TH2
ND3 DT.TH3
ND3 DT.TH4
ND3 DT.TH5
ND3 DT.TH6
ND3 DT.TH7
Bài tập định lượng Bài tập thực hành
Hs vận dụng các lệnh của kiểu xâu kết hợp câu lệnh đã học để viết chương trình đơn giản
Câu hỏi ND3.TH.VDT1 ND3.TH.VDT2 ND3.TH.VDT3 ND3.TH.VDT4
Hs vận dụng các lệnh của kiểu xâu kết hợp câu lệnh đã học để viết chương trình giải bài toán khó về xâu ND3.TH.VDC1
Trang 3Giáo án tin học 11 – năm học 2019 -2020
Trang 4Bước 4 Tiến trình dạy học theo chủ đề Hoạt động 1: Tìm hiểu một số khái niệm về xâu và cách khai báo biến xâu
Câu 1 Gồm 5 ký tự Đây là từ khóa sử
dụng trong khai báo mảng một chiều?
Câu 2 Gồm 6 ký tự Những hình ảnh sau
đây gợi cho bạn nhớ đến ngôn ngữ lập trình
nào?
Câu 3 Gồm 4 ký tự Mỗi phần tử trong mảng A
sau đây có kiểu dữ liệu là gì?
Câu 4 Gồm 3 ký tự Đơn vị cơ bản để đo lượng
thông tin là gì?
Câu 5 Gồm 7 ký tự Tên kiểu dữ liệu số nguyên bộ
nhớ lưu trữ một giá trị là 2 byte, có phạm vi giá trị
từ -215 đến 215-1?
Câu hàng dọc dẫn dắt học sinh vào bài mới
Quan sát chương trình sau và trả lời câu hỏi:
Câu 1 Biến A có kiểu gì?
Câu 2 Kết quả đưa ra màn hình là gì nếu dãy A có
9 phần tử được nhập vào là:
Để giải quyết vấn đề này NNLT đưa ra cho chúng
ta một kiểu dữ liệu mới đó là kiểu xâu
Câu ND1 DT.NB1
HS quan sát suy nghĩ để giải quyết bài toán
HS: Tham khảo SGK trả lời câu hỏi
* Một số khái niệm về xâu
- Xâu là 1 dãy kí tự trong bảng mã ASCII
- Mỗi kí tự gọi là 1 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
Trang 5Giáo án tin học 11 – năm học 2019 -2020
Câu ND1 DT.TH1
Câu ND1 DT.NB2
GV: Có thể xem xâu là mảng một chiều mà mỗi
phần tử là một kí tự, các kí tự cũng được đánh số
thứ tự thường bắt đầu bằng 1 Cách tham chiếu đến
các phần tử của xâu được xác đinh bởi tên xâu
cùng chỉ số đặt trong cặp ngoặc []
* Cách tham chiếu tới phần tử của xâu:
<Tên biến xâu>[chỉ số]
Ví dụ: Biến s lưu trữ giá trị của xâu: ‘ Nguyen Anh
Tuan’
S[1] 'N'
S[8] 'A'
VD: ‘truong thpt Thanh Sen Trả lời câu hỏi
* Các yếu tố xác định xâu:
- Tên kiểu xâu
- Cách khai báo biến kiểu xâu
- Số lượng kí tự của 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 Chú ý nghe giảng
Thảo luận nhóm
Bài 1 Các phát biểu sau đây đúng hay sai?
a Xâu chỉ gồm các chữ cái
b Xâu là một dãy kí tự trong bộ mã ASCII
c ‘2018’ không phải là một xâu
d Xâu ‘Xin chao’ có độ dài 9
Bài 2 Cho xâu S = ‘THPT Thanh Sen’ Hãy cho
biết:
a Xâu S có độ dài bao nhiêu?
b S[5] là kí tự nào?
c S[8] là kí tự nào?
Hs nghiên cứu trả lời
1 Khai báo
Câu ND1 DT.NB3
Câu ND1 DL.VDT1
Var S:string;
Khai báo như thế này có được không? Nếu được
thì độ dài lớn nhất của xâu là bao nhiêu?
* Khai báo:
Var <Tên biến xâu>:String[Độ dài LN của xâu]; Var Hoten:string[30];
HS: Có thể khai báo được, độ dài lớn nhất được ngầm định là 255
Chú ý:
- Trong mô tả xâu có thể bỏ qua phần khai
báo độ dài, khi đó độ dài lớn nhất của xâu sẽ
nhận giá trị ngầm định là 255
- Nếu cần biến lưu trữ xâu có độ dài lớn hơn
255 ta có thể khai báo theo cú pháp:
Var <Tên biến>: AnsiString;
Khi đó độ dài tối đa của xâu chỉ phụ thuộc vào
Hs ghi chép
Trang 6HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS
bộ nhớ máy tính
Thảo luận nhóm:
Bài 3 Trong các khai báo sau, khai báo nào đúng,
khai báo nào sai?
A Var st:string[100];
B Var ho ten:string[30];
C Var xau:string[300];
D Var s: ansistring;
Hs đứng tại chỗ trả lời
Hoạt động 2: Tìm hiểu các thao tác xử lí xâu.
2 Các thao tác xử lí xâu
a.Phép ghép xâu:
- Kí hiệu bằng dấu:+
- Để sử dụng ghép nhiều xâu thành 1 xâu
GV lấy ví dụ minh họa cho HS hiểu
-VD: 'hoc' + ' sinh' 'hoc sinh'
b Phép so sánh
GV: chúng ta đã học những phép so sánh nào?
- Quy tắc:
+ Xâu A >xâu B: Nếu kí tự dầu tiên khác nhau giữa
chúng kể từ trái sang phải trong xâu A có mảng
ASCII lớn hơn
+Nếu A là đoạn đầu của B thì A<B
+ Xâu A= xâu B nếu chúng giống nhau hoàn toàn
Thảo luận nhóm
Bài 5 Kết quả của phép toán: ‘1’ +’1’ là:
a 2 b ‘2’ c ‘11’ d ‘1+1’
Bài 6 Cho các xâu A = ‘May tinh’, B = ‘May
tinh cua toi’,
C = ‘Máy tính ca nhan’ Các mệnh đề sau đây đúng
hay sai?
a A <B b A>B c B >C d C>B
c Thủ tục Delete(s,vt,n)
Xóa n kí tự của xâu S bắt đầu tại vị trí vt
Câu ND2 DL.TH2
Bài 7 st:=‘Lop 11H Thanh Sen’;
Delete(st,8,9);
d Thủ tục insert(s1,s2,vt): Chèn xâu s1 vào xâu s2 tại
vị trí vt
Câu ND2 DL.TH3
Bài 8 S1:=’11H’; S2:=‘Lop K10’;
Insert(S1,S2,5);
e Hàm 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
Câu ND2 DL.TH4
Bài 9 S:=‘abcdgk’;
Chú ý nghe và ghi bài
Trả lời câu hỏi
Phép so sánh: <, <=, >, >=, <>, = Chú ý nghe ghi bài
Hs đứng tại chỗ đưa ra đáp án
Chú ý nghe giảng
st=‘Lop 11Hn’
S2=‘Lop 11HK10’
S1=‘cd’
Trang 7Giáo án tin học 11 – năm học 2019 -2020
S1:=Copy(s,3,2);
f Hàm length(s): Cho độ dài của xâu S
Câu ND2 DL.TH5
Bài 10 S:=‘Lop 11H’;
N:=length(S);
g Hàm pos(s1,s2): Cho vị trí xuất hiện đầu tiên của
xâu S1 trong xâu S2
Câu ND2 DL.TH6
Bài 11 S1:=‘dg’; S2:=‘abcdgk’;
vt:=pos(s1,s2);
h.Hàm upcase(ch): Cho chữ cái in hoa ứng với kí tự
Ch
Bài 12 ch:=Upcase(‘a’);
ch:=Upcase(‘H’);
N=7
vt=4
ch=‘A’
Ch=‘H‘
1 Chương trình sau đây giải bài toán nào?
2 Trong chương trình trên, nếu nhập a = ‘Nguyen
Van Loc’ và b = ‘Nguyen Thi Lan’ thì kết quả sau
khi chạy chương trình là gì?
Nghiên cứu và trả lời
1 Chương trình đưa ra xâu có dội dài lớn hơn nếu hai xâu bằng nhau thì đưa ra xâu thứ 2
2 Kết quả đưa ra màn hình ‘Nguyen Thi Lan’
Hoạt động 3: Tìm hiểu một số ví dụ về xâu
3 Một số ví dụ
VD1 Nhập vào 2 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.
Câu ND3 DT.TH1
Câu ND3 DT.TH2
Câu ND3 DT.TH3
GV đưa ra chương trình hoàn chỉnh yêu cầu HS nêu ý nghĩa
của các câu lệnh trong chương trình
Gọi HS lên bảng viết chương trình hoàn chỉnh
TL: Sử dụng 2 biến xâu a và b
Xâu dài hơn là xâu có độ dài lớn hơn
Sử dụng hàm length(a) và length(b)
Chú ý quan sát và trả lời câu hỏi của GV Program Vd1;
Trang 8Hoạt động của GV Hoạt động của HS
VD4 Nhập 1 xâu, hiển thị ra màn hình xâu đó nhưng đã
được bỏ dấu cách.
Hướng dẫn HS làm VD4
HD: Ghép một xâu mới từ xâu đã nhập bằng cách lấy các kí
tự khác kí tự trống có trong xâu Sử dụng cấu trúc rẽ nhánh
Yêu cầu HS hiểu và viết được chương trình hoàn chỉnh
Var a, b: string[30]; Begin
wite('nhap xau a='); Readln(a);
write('Nhap xau
b='); Readln(b);
If Length(a)>Length(b) then write(a)
else write(b);
Readln;
End
Theo hướng dẫn của GV HS tự viết chương trình VD4
1.Hoạt động 1
Phân nhóm và số máy tương ứng cho mỗi
nhóm học sinh
Đưa ra nội dung thực hành
Ngồi vào máy được phân
Nắm nội dung thực hành và tiến hành thực hiện dưới sự hướng dẫn của giáo viên
? Thực hiện khởi động máy TL Thực hiện yêu cầu
Quan sát các nhóm khởi động và khắc phục
sự cố
Kiểm tra máy
Hướng dẫn các nhóm thực hiện nội dung
thực hành
Giải đáp các vướng mắc của học sinh và
khắc phục sự cố máy tính
Thực hiện nội dung thực hành và dưới sự giúp
đỡ của giáo viên
Bài 1: Kiểm tra một xâu có phải là xâu đối
xứng (Palindrome) hay không? var a,p:string[50]; i,x:integer;
kt:boolean;
begin write('Nhap xau:');readln(a);
{Cách 1:}
p:='';
for i:=length(a) downto 1 do p:=p+a[i];
if a=p then write('La xau doi xung') else write('Khong la xau doi xung');}
{Cách 2:}
Trang 9Giáo án tin học 11 – năm học 2019 -2020
kt:=true;x:=length(a);
for i:=1 to x div 2 do
if a[i]<>a[x-i+1] then kt:=false;
if kt=true then write('La xau doi xung') else write('Khong la xau doi xung');
readln end
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 rằng số lần xuất
hiện mỗi chữ cái tiếng Anh trong xâu S (không
phân biệt chữ hoa chữ thường)
Hướng dẫn HS :
Ta thấy cần ghi nhận số lần xuất hiện của từng
chữ cái Có tất cả 26 chữ cái từ A đến Z Có thể
dung mảng một chiều để ghi nhận số lần xuất
hiện trong xâu S của các kí tự
Do chương trình không phân biệt chữ hoa chữ
thường nên ta dùng hàm upcase để đổi kí tự
thường thành kí tự hoa
Có thể cho dàn ý sau:
{phần khai báo}
begin
{nhập xâu S}
{khởi tạo giá trị cho mảng dem}
for i:= 1 to length(S) do
{nếu S[i] là chữ cái thì đếm tăng cho
S[i] }
for ch :=’A’ to ‘Z’ do
{Thông báo số lần xuất hiện của ch}
end.
Hs nghiên cứu theo hướng dẫn của GV Var dem:array['A' 'Z'] of byte;
ch:char;
s:string;
i:byte;
begin clrscr;
write('nhap xau S:');
readln(S);
for ch:='A' to 'Z' do dem[ch]:=0;
for i:=1 to length(s) do for ch:='A' to 'Z' do
if upcase(s[i])=ch then dem[ch]:=dem[ch] +1;
for ch:='A' to 'Z' do
if dem[ch]>0 then writeln('ky tu ',ch,' xuat hien ',dem[ch],' lan');
readln;
end
2 Hoạt động 2: Thoát máy
- Thoát máy
Đánh giá quá trình thực hành của HS theo
các tiêu chí:
- Hoàn thành chương trình đã cho theo mẫu
với các bộ dữ liệu khác nhau
Lắng nghe đánh giá của giáo viên và rút kinh nghiệm
Trang 10- Làm quen với việc hiệu chỉnh chương
trình
Bước 4 Hệ thống câu hỏi/bài tập đánh giá theo các mức đã mô tả
Câu ND1 DT.NB1 Nêu các khái niệm về xâu?
Câu ND1.DT.TH1 Em hãy lấy một ví dụ xâu kí tự đơn giản trong đời sống?
Câu ND1 DT.NB2 Để làm việc với xâu cần xác định những yếu tố nào?
Câu ND1.DT.NB3 Viết cấu trúc khai báo biến xâu?
Câu ND1 DL.VDT1 Viết khai báo xâu họ tên?
Câu ND2 DL.TH1 Điền phép toán so sánh thích hợp vào dấu chấm hỏi:
'thanh' ? 'thach'
'Tin' ? 'Tin hoc'
'Tin hoc' ? 'Tin hoc'
Câu ND2 DL.TH2 Cho xâu S:='hoc sinh lop';
- Cho biết kết quả sau khi thực hiện lệnh: Delete(S,9,4);?
- Cho kết quả: 'hoc sinh' viết thủ tục
Câu ND2 DL.TH3 Cho s1:='Tin 11'; s2:='Hoc ';
- Cho biết kết quả sau khi thực hiện lệnh: Insert(s2,s1,5);?
- Cho kết quả:’Tin Hoc 11’ viết thủ tục?
Câu ND2 DL.TH4 Cho s:='tin hoc 11';
- Cho biết kết quả sau khi thực hiện lệnh: Copy(s,4,5);?
- Cho kết quả:' hoc ' viết hàm
Câu ND2 DL.TH5 Cho s:='mon tin hoc 11';
Cho biết Length(S)=?
Câu ND2 DL.TH6 Cho S1:= 'cd'; S2='abcdcd';
Cho biết Pos(S1,S2)=?
Câu ND3 DT.TH1 Bài toán sử dụng mấy biến xâu?
Câu ND3 DT.TH2 Xâu dài hơn là xâu thỏa mãn điều kiện gì?
Câu ND3 DT.TH3 Để tìm độ dài xâu ta sử dụng hàm gì?
Câu ND3 DT.TH4 Lấy ví dụ minh họa?
Câu ND3 DT.TH5 Làm thế nào để duyệt các phần tử của xâu?
Câu ND3 DT.TH6 Tạo xâu S2 bằng cách nào?
Câu ND3 DT.TH7 Làm thế nào để lấy tất cả các chữ số trong xâu S?
Câu ND3.DT.NB1 Sau khi nghiên cứu xong các ví dụ chúng ta biết được những thao tác gì khi làm việc với xâu?
Câu ND3 TH.VDT1 BT 10 trang 80
Câu ND3 TH.VDT2 Viết chương trình nhập vào một xâu bao gồm các chữ cái in hoa và in thường Đưa ra màn hình xâu in hoa tương ứng
Câu ND3 TH.VDT3 Viết chương trình nhập vào một xâu từ bàn phím Đếm xem có bao nhiêu
kí tự cách trống có trong xâu Đưa kết quả ra màn hình
Câu ND3 TH.VDT4 Viết chương trình nhập vào một xâu từ bàn phím Đếm xem có bao nhiêu kí
tự giống với kí tự thứ 3 của xâu Đưa kết quả ra màn hình
Câu ND3 TH.VDC1 Viết chương trình nhập vào một xâu S và đưa ra màn hình xâu S sau khi
đã được chuẩn hóa