Tải bản đầy đủ

Giáo án chủ đề kiểu xâu

Ngày soạn:
Ngày dạy:
Bước 1: Chủ đề

Kiểu xâu
(2 tiết, tiết 28- 29 trong PPCT)
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.
Kỹ năng
- Sử dụng được một số thủ tục, hàm thông dụng về xâu.
- Cài đặ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ề phần mềm, thiết bị CNTT-TT: 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 kiểu xâu trong tin
học.
- Sử dụng CNTT-TT trong giao tiếp: Sử dụng thuật ngữ CNTT-TT chính xác.
- Đạo đức, hành vi phù hợp khi sử dụng CNTT-TT: Phân biệt giữa thế giới thực và thế

giới ảo.
Bước 3: Bảng mô tả các mức yêu cầu cần đạt cho mỗi loại câu hỏi/bài tập
Nội dung
Loại câu
Nhận biết
Thông hiểu
Vận dụng
Vận
hỏi/bài tập
thấp
dụng cao
1. Khai
Câu hỏi/bài Hs lấy được
Hs chỉ ra được
báo
tập định
một số ví dụ dạng kí tự xâu
tính
về xâu kí tự
trong tình
đơn giản
huống thực tế.
trong thực tế.
Câu hỏi
Câu hỏi
ND1.DT.NB1 ND1. DT. TH1

2. Các
thao tác
xử lí xâu

Bài tập
định lượng
Bài tập
thực hành
Câu hỏi/bài Hs mô tả cấu
tập định
trúc các thao
tính
tác xử lí xâu.



Bài tập
định lượng

Câu hỏi
ND2.DT.NB1
Hs biết cơ
chế hoạt động

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
Hs hiểu ý
nghĩa các hàm

Hs viết được
câu lệnh trong


của hàm và
thủ tục trong
kiểu xâu để
chỉ ra được
hoạt động
một lệnh
dạng cụ thể.

Bài tập
thực hành

3. Một số
ví dụ

và thủ tục
trong xâu để
giải thích được
hoạt động cụ
thể.

Câu hỏi
Câu hỏi
ND2.DL.NB1 ND2.DL.TH1
Hs sửa lỗi lệnh
về thao tác
trong chương
trình quen
thuộc có lỗi

Câu hỏi/bài Hs mô tả cấu
tập định
trúc, ý nghĩa
tính
lệnh của kiểu
xâu.

kiểu xâu để
thực hiện một
tình huống
quen thuộc.

Câu hỏi
ND2.DL.VDT
1

Câu hỏi
ND2.TH.TH1
Hs chỉ ra được
các thành phần
của hàm và thủ
tục cụ thể.

Câu hỏi
Câu hỏi
ND3.DT.NB1 ND3.DT.TH1
Bài tập
định lượng
Bài tập
thực hành

Hs sửa lỗi lệnh
của kiểu xâu
trong chương
trình quen
thuộc.

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
Câu hỏi
ND3.TH.TH1 ND3.TH.VDT
1
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. Em hãy lấy một ví dụ xâu kí tự đơn giản trong đời sống?
Câu ND1.DT.TH1. Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây
là đúng ?
A. S := file of string ;
B. S : file of char ;
C. S : string;
D. Cả 3 câu đều đúng ;
Câu ND2.DT.NB1. Trong lập trình Pascal, xâu kí tự không có kí tự nào gọi là ?
E. Xâu không;


F. Xâu rỗng;
G. Xâu trắng;
H. Không phải là xâu kí tự;
Câu ND2.DT.TH1. Độ dài tối đa của xâu kí tự trong PASCAL là
a. 256
b. 65535
c. 255
d. 257
Câu ND2.DL.NB1. 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ự ?
I. S : string;
J. X1 : string[100];
K. S : string[256];
L. X1 : string[1];
Câu ND2.DL.TH1. Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả gì ?
A. Độ dài xâu S khi khai báo;
B. Số ký tự hiện có của xâu S không tính các dấu cách;
C. Số ký tự của xâu không tính dấu cách cuối cùng
D. Số ký tự hiện có của xâu S.
Câu ND2.DL.VDT1. Viết câu lệnh đưa ra kết quả độ dài xâu s?
Câu ND2.TH.TH1. Hãy chỉ ra lỗi trong chương trình sau:
i := pos(‘’, S); { ‘ ’ là 2 dấu cách }
while i <> 0 do
Begin
Delete(S, i, 1) ;
i := pos(‘ ’, S) ;
End;
Câu ND3.DT.NB1. Trình bày cấu trúc, ý nghĩa hàm sao chép?
Câu ND3.DT.TH1. Trong ngôn ngữ lập trình Pascal, để xóa đi ký tự đầu tiên của xâu ký
tự S ta viết :
M.Delete(S, 1, 1);
N. Delete(S, i, 1); { i là biến có giá trị bất kỳ }
O. Delete(S, length(S), 1);
P. Delete(S, 1, i); { i là biến có giá trị bất kỳ }
Câu ND3.DL.NB1. Trong ngôn ngữ lập trình Pascal, để tìm vị trí xuất hiện đầu tiên của
xâu ‘hoa’ trong xâu S ta có thể viết bằng cách nào trong các cách sau ?
Q. S1 := ‘hoa’ ; i := pos(S1, ‘hoa’) ;
R. i := pos(‘hoa’, S) ;
S. i := pos(S, ’hoa’) ;
T. i := pos(‘hoa’, ‘hoa’) ;
Câu ND3.DL.TH1. Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện
công việc gì ?
X := length(S) ;
For i := X downto 1 do
If S[i] = ‘ ’ then Delete(S, i, 1) ;
{ ‘ ’ là một dấu cách }
U. Xóa dấu cách đầu tiên trong xâu ký tự S
V. Xóa dấu cách thừa trong xâu ký tự S
W.Xóa dấu cách tại vị trí cuối cùng của xâu S
X. Xóa mọi dấu cách của xâu S


Câu ND3.TH.TH1. Hãy sửa lỗi sai trong đoạn chương trình sau:
S1 := ‘anh’ ;
S2 := ‘em’ ;
i := pos(S2, S) ;
While i <> 0 do
Begin
Delete(S, i, 2) ;
Insert(S1, S, i) ;
i := pos(S2, S) ;
End.
Câu ND3.TH.VDT1. Viết chương trình chèn xâu s1 vào xâu s2?
Bước 5. Tiến trình dạy học theo chủ đề
TÊN BÀI: Kiểu xâu
Nội dung
TG
Hoạt động của thầy và trò
- 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.
- Chỉ số phần tử trong xâu thường được
đánh số từ 1.
- Trong ngôn ngữ Pacal, tham chiếu tới
phần tử thường được viết :
[chỉ số];

GV : Giới thiệu một số khái
niệm và thao tác thường dùng
khi làm việc với xâu ký tự trong
lập trình nói chung.

Hoạt động I. Khai báo
- Pascal sử dụng từ khóa STRING để
khai báo xâu . Độ dài tối đa của xâu
được viết trong [ ] sau từ khóa
STRING . Khai báo như sau :
Var : String[độ dài lớn nhất
của xâu] ;
Ví dụ :
Var Ten : String[10] ;
Ho_dem : String[50] ;
Que : String;
Chú ý :
- Nếu không khai báo độ dài tối đa
cho biến xâu kí tự thì độ dài ngầm
định của xâu là 255 .

GV : Đây là cách khai báo trong
ngôn ngữ Pascal, trong các ngôn
ngữ khác nhau có thể có cách
khai báo khác nhau . Do đó khi
viết chương trình bằng ngôn
ngữ nào cần tìm hiểu rõ các đối
tượng của ngôn ngữ đó.

GV: Độ dài tối đa của xâu phụ
thuộc vào ngôn ngữ lập trình,


- Độ dài lớn nhất của xâu là 255 ký tự.
- Hằng xâu kí tự được đặt trong cặp
nháy đơn ‘ ’.
Hoạt động II. Các thao tác xử lí xâu
- Với các xâu kí tự có các phép phép
xâu và phép so sánh hai xâu kí tự.
* Phép ghép xâu : Kí hiệu bằng dấu
cộng +
- Ý nghĩa: Ghép nhiều xâu thành một.
- Có thể ghép xâu với các hằng và biến
xâu.
Ví dụ : ‘Ha’ + ‘Noi’ cho kết quả là ‘Ha
Noi’
* Phép so sánh : <, <=, >, >=, = , <>,
Pascal tự động so sánh lần lượt từ kí tự
từ trái sang phải.
- Quy tắc so sánh xâu: SGK
Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ > ‘ABB’,
‘ABC’ <’ABCD’
Ta có các thủ tục và hàm chuẩn sau:
* Thủ tục delete(st,vt,n): Xoá n kí tự của
biến st bắt đầu từ vị trí vt
St
thao tác
kết quả
'abcdef'
delete(st,5,2); 'abcd'
'Song
delete(st,1,5); 'Hong'
Hong'
* Thủ tục insert(s1,s2,vt): Chèn xâu s1
vào xâu s2 từ vị trí vt
s1 s2
thao tác
kết
quả
'PC' 'IBM486' insert(s1,s2,4); 'IBM
PC
486
'1'
'Hinh .2' insert(s1,s2,6); 'Hinh
1.2'
* Thủ tục Copy(s,vt,n): Tạo xâu gồm n kí
tự liên tiếp bắt đầu từ vị trí của xâu s
S
Biểu thức
Kết quả
'Bai hoc
copy(s,9,5); 'thu 9'
thu 9'
* Hàm length(s): Cho giá trị là độ dài
xâu s
S
Biểu thức Kết quả
'500 ki tu' length(s); 9
* Hàm pos(s1,s2): Cho vị trí xuất hiện
đầu tiên của xâu s1 trong xâu s2

thường là 255 ký tự.

Gv: Giới thiệu vai trò của hàm
và thủ tục trong xâu.
Gv: Giới thiệu phép ghép được
sử dụng trong xâu
Hs: Quan sát và ghi lại

Gv: Giới thiệu phép so sánh
được sử dụng trong xâu
Hs: Quan sát và ghi lại

Gv: Giới thiệu các thủ tục được
sử dụng trong xâu
Hs: Quan sát và ghi lại

Gv: Giới thiệu các hàm được sử
dụng trong xâu
Hs: Quan sát và ghi lại


s2
Biểu thức
kết quả
'abcdef'
pos('cd',s2); 3
'abcdef'
pos('k',s2); 0
* Hàm upcase(ch): Cho chữ cái in hoa
ứng với chữ cái trong ch
Ch
Biểu thức kết quả
'd'
upcase(ch) 'D'
'e'
upcase(ch) 'E'
Hoạt động III. Một số ví dụ
* Ví dụ 1:
Nhập họ và tên của hai người, in 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 thu nhat:');
readln(a);
write('nhap ho ten thu hai:');
readln(b);
if lenth(a)>length(b) then
write(a)
else
write(b);
readln
end.
* Ví dụ 2:
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 kí
tự cuối cùng của xâu thứ hai không.
var
x:byte;
a,b: string;
begin
write('nhap xau thu nhat:');
readln(a);
wrtie('nhap xau thu hai:');
readln(b);
else write('khong trung nhau');
readln
and.
* Ví dụ 3:
Nhập xâu kí tự từ bàn phím và in xâu đó
ra màn hình theo chiều ngược lại
var
i,k:byte;

Gv: Hướng dẫn học sinh cách
viết chương trình ví dụ 1.
Hs: Ghi bài

Gv: Đưa ví dụ 2 có sử dụng kiểu
xâu
Gv: Học sinh lên bảng làm
Gv: Nhận xét và đánh giá

Gv: Đưa ví dụ 3 có sử dụng kiểu
xâu
Gv: Học sinh lên bảng làm


a: string;
begin
write('nhap xau:'); readln(b);
k:=length(a);
for i:=k downto 1 do write(a[i]);
readln
end.
* Ví dụ 4:
Nhập một xấu và in ra màn hình khi đã
loại bỏ dấu cách nếu có
var i,k:byte;
a,b:string;
begin
write('nhap xau:'); readln(a);
k:=length(a);
b:=' ';
for i:=1 to k do
if a[i]<>' ' then
writeln('ket qua:',b);
readln
end.
* Ví dụ 5:
Nhập kí tự từ bàn phím vào xâu 1, tạo
xâu 2 với các kí tự của xâu 1 và in ra
màn hình kết quả
var s1,s2:string;
i:byte;
begin
write('nhap xau s1:');
readln(s1);
for i:=1 to length(s1) do
if ('0'=>s1[i]) and (s1[i]<='9') then
s2:=s2+s1[i];
writeln('ket qua:'s2);
readln
end.

Gv: Nhận xét và đánh giá

Gv: Đưa ví dụ 4 có sử dụng kiểu
xâu
Gv: Học sinh lên bảng làm

Gv: Nhận xét và đánh giá

Gv: Đưa ví dụ 5 có sử dụng kiểu
xâu
Gv: Hoc sinh lên bảng làm

Gv:Nhận xét các bài làm của
học sinh. Cho điểm miệng
Gv: Thông báo bài mới và ôn
tập

4. Tổng kết bài học: (..2.phút)
Là một cấu trúc thường xuyên sử dụng trong ngôn ngữ lập trình Pascal, cần xác định
bài toán trước khi sử dụng kiểu xâu
5. Câu hỏi, bài tập và hướng dẫn tự học: (.1..phút): Câu 10 (sgk 80)
IV. Tự đánh giá và rút kinh nghiệm: (Nội dung, phương pháp, thời gian)
…………………………………………………………………………………………….


Bước 6: Ma trận đề
Cấp độ
Tên chủ đề
(nội dung,chương…)
Khai báo

Số câu:.3..
Số điểm:.1,5..
Tỉ lệ:15... %
Định hướng phát triển
năng lực

Vận dụng
Nhận biết

Hs biết cách
khai báo để chỉ
ra được hoạt
động một lệnh
dạng cụ thể

Hs hiểu cơ chế
hoạt động câu
lệnh khai báo
kiểu xâu để giải
thích được hoạt
động cụ thể

Số câu:..1...
Số điểm:.0,5...

Số câu:..2...
Số điểm:..1đ...

Biết sử dụng chính
xác khai báo kiểu
xâu cho từng bài
toán

Hiểu ý nghĩa kiểu
xâu cho từng dạng
bài

Số câu:.....
Số điểm:.....

Số câu:..7...
Số điểm:..3,5...

Cấp độ
cao

Số câu:....
Số điểm:....

Số câu:....
Số
điểm:....

Số câu:....
Số điểm:....

Số câu:....
Số
điểm:....

Sửa đoạn chương
trình đơn giản có
sử dụng các dạng
của hàm và thủ
tục trong kiểu xâu

Hs viết được
chương trình
có khai báo và
sử dụng một số
thao tác trong
xử lí xâu để
thực hiện một
tình huống
quen thuộc

Một số ví dụ

Số câu:.1..
Số điểm:.5..
Tỉ lệ:.50.. %
Định hướng phát triển
năng lực

Cấp độ thấp

Hs viết được
hàm và thủ tục
thực hiện một
tình huống quen
thuộc

Các thao tác xử lí xâu

Số câu:.7..
Số điểm:.3,5..
Tỉ lệ:.35.. %
Định hướng phát triển
năng lực

Thông hiểu

Số câu:.....
Số điểm:.....

Số câu:.....
Số điểm:.....

Số câu:.1...
Số điểm:.5...
Viết chương trình
đơn giản có sử
dụng các dạng
của hàm và thủ

Số câu:....
Số
điểm:....


Tổng số câu:
Tổng số điểm:
Tỉ lệ:.......... %

tục trong bài kiểu
xâu.
Số câu:..1...
Số câu:....5.
Số câu:..1...
Số điểm:.0,5...
Số điểm:.4,5...
Số điểm:.5...
..........5........%
.............45.....%
........50.........%

Đề kiểm tra
A. Trắc nghiệm (5đ)
Câu 1. Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là đúng ?
a. S := file of string ;
b. S : file of char ;
c. S : string;
d. Cả 3 câu đều đúng ;
Câu 2: 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 3: Độ dài tối đa của xâu kí tự trong PASCAL là
a. 256
b. 65535
c. 255
d. 257
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. S : string;
b. X1 : string[100];
c. S : string[256];
d. X1 : string[1];
Câu 5: Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả gì ?
a. Độ dài xâu S khi khai báo;
b. Số ký tự hiện có của xâu S không tính các dấu cách;
c. Số ký tự của xâu không tính dấu cách cuối cùng
d. Số ký tự hiện có của xâu S.
Câu 6: Hãy chỉ ra lỗi trong chương trình sau:
i := pos(‘’, S); { ‘ ’ là 2 dấu cách }
while i <> 0 do
Begin
Delete(S, i, 1) ;
i := pos(‘ ’, S) ;
End;
Câu 7: Trong ngôn ngữ lập trình Pascal, để xóa đi ký tự đầu tiên của xâu ký tự S ta viết :
a. Delete(S, 1, 1);
b. Delete(S, i, 1); { i là biến có giá trị bất kỳ }
c. Delete(S, length(S), 1);
d. Delete(S, 1, i); { i là biến có giá trị bất kỳ }
Câu 8: Trong ngôn ngữ lập trình Pascal, để tìm vị trí xuất hiện đầu tiên của xâu ‘hoa’
trong xâu S ta có thể viết bằng cách nào trong các cách sau ?
a. S1 := ‘hoa’ ;
i := pos(S1, ‘hoa’) ;
b. i := pos(‘hoa’, S) ;


c. i := pos(S, ’hoa’) ;
d. i := pos(‘hoa’, ‘hoa’) ;
Câu 9: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ?
X := length(S) ;
For i := X downto 1 do
If S[i] = ‘ ’ then Delete(S, i, 1) ;
{ ‘ ’ là một dấu cách }
a. Xóa dấu cách đầu tiên trong xâu ký tự S
b. Xóa dấu cách thừa trong xâu ký tự S
c. Xóa dấu cách tại vị trí cuối cùng của xâu S
d. Xóa mọi dấu cách của xâu S
Câu 10: Hãy sửa lỗi sai trong đoạn chương trình sau:
S1 := ‘anh’ ;
S2 := ‘em’ ;
i := pos(S2, S) ;
While i <> 0 do
Begin
Delete(S, i, 2) ;
Insert(S1, S, i) ;
i := pos(S2, S) ;
End.
B. Tự luận (5đ)
Viết chương trình chèn xâu s1 vào xâu s2?
Xây dựng hướng dẫn chấm (đáp án) và thang điểm
Câu hỏi/đáp án
Câu 1:c
Câu 2:b
Câu 3:g
Câu 4: c
Câu 5:d
Câu 6: i := pos(‘ ’, S);
Câu 7:a
Câu 8: b
Câu 9: d
Câu 10: end;
Var
S,s1,s2: string;
Begin
Readln(s1,s2);
S:=insert(s1,s2,1);
Write(‘xau moi=’,s);
Readln;
End.

, ngày……tháng…..năm 2015

Tổ chuyên môn duyệt giáo án
(Nhận xét, ký và ghi rõ họ tên)

Biểu điểm
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ






Người soạn
(Ký và ghi rõ họ tên)



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×