Giáo án môn Tin học 11 - Tiết 31, 32: Kiểu xâu

Giáo án môn Tin học 11 - Tiết 31, 32: Kiểu xâu

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.

 

doc 10 trang Người đăng minh_thuy Lượt xem 2737Lượt tải 3 Download
Bạn đang xem tài liệu "Giáo án môn Tin học 11 - Tiết 31, 32: Kiểu xâu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ngày soạn:
Ngày dạy:
Bước 1: Chủ đề
Kiểu xâu
(2 tiết, tiết 31- 32 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 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. Khai báo
Câu hỏi/bài tập định tính
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.NB1
Hs chỉ ra được dạng kí tự xâu trong tình huống 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
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 biết cơ chế hoạt động 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ể.
Câu hỏi
ND2.DL.NB1
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ể.
Câu hỏi
ND2.DL.TH1
Hs viết được câu lệnh trong kiểu xâu để thực hiện một tình huống quen thuộc.
Câu hỏi
ND2.DL.VDT1
Bài tập thực hành
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
ND2.TH.TH1
3. Một số ví dụ
Câu hỏi/bài tập định tính
Hs mô tả cấu trúc, ý nghĩa lệnh của kiểu xâu.
Câu hỏi
ND3.DT.NB1
Hs chỉ ra được các thành phần của hàm và thủ tục cụ thể.
Câu hỏi
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.
Câu hỏi
ND3.TH.TH1
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
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 ?
S := file of string ;
S : file of char ;
S : string;	
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à ?
Xâu không;
Xâu rỗng;	
Xâu trắng;
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à
256
65535
255
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ự ?
S : string;
X1 : string[100];
S : string[256];	
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ì ?
Độ dài xâu S khi khai báo;
Số ký tự hiện có của xâu S không tính các dấu cách;
Số ký tự của xâu không tính dấu cách cuối cùng
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 :
Delete(S, 1, 1);	
Delete(S, i, 1); { i là biến có giá trị bất kỳ }
Delete(S, length(S), 1);
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 ?
S1 := ‘hoa’ ;	i := pos(S1, ‘hoa’) ;
i := pos(‘hoa’, S) ;	
i := pos(S, ’hoa’) ;
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 }
Xóa dấu cách đầu tiên trong xâu ký tự S
Xóa dấu cách thừa trong xâu ký tự S
Xóa dấu cách tại vị trí cuối cùng của xâu S
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ố];
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 .
Độ 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’ ‘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 Hong'
delete(st,1,5);
'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 thu 9'
copy(s,9,5);
'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
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;
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 : 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.
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, 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
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
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)
Nhận biết
Thông hiểu
Vận dụng
Cấp độ thấp
Cấp độ cao
Khai báo
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:.3.. 
Số điểm:.1,5.. 
Tỉ lệ:15... %
Số câu:..1...
Số điểm:.0,5...
Số câu:..2...
Số điểm:..1đ...
Số câu:....
Số điểm:....
Số câu:....
Số điểm:....
Định hướng phát triển năng lực
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
Các thao tác xử lí xâu
Hs viết được hàm và thủ tục thực hiện một tình huống quen thuộc
Số câu:.7.. 
Số điểm:.3,5.. 
Tỉ lệ:.35.. %
Số câu:.....
Số điểm:.....
Số câu:..7...
Số điểm:..3,5...
Số câu:....
Số điểm:....
Số câu:....
Số điểm:....
Định hướng phát triển năng lực
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
Một số ví dụ
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
Số câu:.1.. 
Số điểm:.5.. 
Tỉ lệ:.50.. %
Số câu:.....
Số điểm:.....
Số câu:.....
Số điểm:.....
Số câu:.1...
Số điểm:.5...
Số câu:....
Số điểm:....
Định hướng phát triển năng lực
Viết chương trình đơn giản có sử dụng các dạng của hàm và thủ tục trong bài kiểu xâu.
Tổng số câu:
Tổng số điểm:
Tỉ lệ:.......... %
Số câu:..1...
Số điểm:.0,5...
..........5........%
Số câu:....5.
Số điểm:.4,5...
.............45.....%
Số câu:..1...
Số điểm:.5...
........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à
256
65535
255
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;
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
Biểu điểm
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;
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
0.5đ
Var
S,s1,s2: string;
Begin
Readln(s1,s2);
S:=insert(s1,s2,1);
Write(‘xau moi=’,s);
Readln;
End.
1đ
1đ
1đ
1đ
1đ
, ngàythá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)
Người soạn
(Ký và ghi rõ họ tên)

Tài liệu đính kèm:

  • docGiao_an_chu_de_kieu_xau.doc