- Độ dài của xâu chính là số lượng các kí tự trong xâu, do đó, kí tự trắng cũng được tính và chiếm một ô nhớ.. Tham chiếu đến một phần tử của xâu - Hỏi: Cách truy xuất dữ liệu đến một ph
Trang 1Giáo án Tin học 11
KIỂU XÂU (TIẾT 1)
I-MỤC TIÊU:
1.Kiến thức:
- Biết được một số kiểu dữ liệu mới, biết được khái niệm kiểu xâu
- Phân biệt được sự giống và khác nhau giữa kiểu mảng kí tự và kiểu xâu kí tự
- Biết được cách khai báo biến, nhập xuất dự liệu, tham chiếu đến từng kí tự củaxâu
- Biết các phép toán liên quan đến xâu
- Biết được tiện ích của các hàm và thủ tục liên quan đến xâu trong ngôn ngữ lậptrình Pascal
- Nắm được cấu trúc chung và chức năng của một số hàm và thủ tục liên quan đếnxâu
Trang 21.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chương trình mẫu viết sẵn để giới thiệu ví dụ
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
b Nội dung
- Xâu kí tự là dãy các 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 các kí tự trong xâu được gọi là độ dài xâu Xâu có độ dàibằng không là xâu rỗng
- Khai báo biến kiểu xâu: VAR tên_biến : String[độ_dài_lớn_của_xâu];
- Tham chiếu đến từng phần tử của xâu: tên_biến[chỉ_số]
c Các bước tiến hành
10’ 1 Chiếu tên bài lên bảng - Ghi tên bài và theo dõi ví dụ
Trang 3- Chiếu ví dụ: Nhập danh sách họ tên học
sinh của một lớp
- Yêu cầu: Với bài toán trên, khai báo kiểu dữ
liệu như thế nào?
- Yêu cầu viết đoạn lệnh để xuất nhập dữ liệu
cho từng phần tử?
- Hỏi: Trong trường hợp này, nên khai báo
biến kiểu mảng một chiều trực tiếp hoặc gián
cho học sinh một lớp rất mất thời gian Một
số ngôn ngữ lập trình cung cấp cho kiểu dữ
liệu xâu
2 Tìm hiểu về kiểu xâu
- Chiếu lên bảng cấu trúc khai báo biến kiểu
- Học sinh viết đoạn lệnh vàmột học sinh lên bảng viết
- Nên khai báo gián tiếp, vìmỗi họ tên cuỉa mỗi học sinh
là một mảng
- Dùng mảng một chiều khinhập dữ liệu rất dài, dùngnhiều lệnh lặp
- Theo dõi ttrên bảng và ghibài
- Theo dõi trên bảng và lắngnghe
Trang 4- Khi khai báo biến kiểu xâu, không có n thì
độ dài tối đa là bao nhiêu? Có phải độ dài là
0 không?
- Chiếu ví dụ lên màn hình: ‘Viet Yen – Bac
Giang’
- Hỏi: Xâu có bao nhiêu kí tự?
- Độ dài của xâu chính là số lượng các kí tự
trong xâu, do đó, kí tự trắng cũng được tính
và chiếm một ô nhớ
- Xâu chỉ gồm một kí tự trắng thì được viết
như thế nào? Và độ dài là bao nhiêu?
- Xâu rỗng được viết như thế nào? Số lượng
kí tự là bao nhiêu?
- Lấy ví dụ một xâu và xác định số phần tử
của xâu đó
3 Xuất/nhập dữ liệu cho biến kiểu xâu
- Cách xuất/nhập dữ liệu cho biến mảng một
chiều?
- Chiếu cách nhập dữ liệu cho biến kiểu xâu
- Yêu cầu: Lấy ví dụ cụ thể?
- Khi khai báo kiểu xâu màkhông có n thì độ dài tối đacủa xâu là 255, số lượng kí tựtối đa
- Xâu có 20 kí tự
- Xâu chỉ gồm một kí tựtrắng, thì được viết ‘ ‘ và độdìa là 1
- Xâu rỗng ‘’, độ dài là 0
- Lấy ví dụ
-for i:=1 to n doreadln(hoten[i]);
- write(‘Nhap ho ten:’)
- readln(hoten);
Kiểu mảng một chiều phải
Trang 5- Từ ví dụ trên, so sánh 2 cách xuất nhập
trên?
4 Tham chiếu đến một phần tử của xâu
- Hỏi: Cách truy xuất dữ liệu đến một phần tử
của mảng một chiều?
- Chiếu cách truy xuất phần tử của xâu
- Hỏi: So sánh hai cách truy xuất này?
- Yêu cầu học sinh lấy một ví dụ cụ thể
5 Kiểm tra kiến thức
- Chiếu một chương trình đơn giản có sử
dụng khai báo biến kiểu xâu và tham chiếu
đến các phần tử của xâu
nhập từng kí tự của họ tên,còn kiểu xâu nhập một lầnđược họ tên đầy đủ
Trang 6- Các phép so sánh: =, <>, <, >, <=, >=, dùng để thực hiện việc so sánh hai xâu.Xâu A được xem là lớn hơn xâu B, nếu kí tự khác nhau đầu tiên giữa chúng kể từtrái qua phải trong xâu A có mã ASCII lớn hơn Nếu A, B là các xâu có độ dàikhác nhau, A là đoạn đầu của B thì A nhỏ hơn B.
c Các bước tiến hành.
10’ 1 Nhắc lại các phép toán đã học
- Hỏi: Nhắc lại các phép toán đã học trên
các kiểu dữ liệu chuẩn?
2 Tìm hiểu chức năng của một số phép
Trang 7- yêu cầu học sinh tìm một số ví dụ khác.
- Hỏi: Từ ví dụ, hãy cho biết chức năng
của phép cộng xâu?
- Chiếu một số ví dụ khác và yêu cầu học
sinh cho biết kết quả
- Giới thiệu và chiếu ví dụ về phép so
- Kết quả là True
- Theo dõi kết quả
Trang 8- Còn phép toán so sánh nào nữa đã học?
- Chiếu các ví dụ về các phép so sánh và
yêu cầu học sinh cho biết kết quả
* Lưu ý: Xâu A được xem là lớn hơn xâu
B, nếu kí tự khác nhau đầu tiên giữa
chúng kể từ trái qua phải trong xâu A có
mã ASCII lớn hơn Nếu A, B là các xâu
có độ dài khác nhau, A là đoạn đầu của B
thì A nhỏ hơn B Vì vậy, có thể một xâu
có độ dài lớn nhưng bé hơn xâu có độ dài
a Mục tiêu:- Tìm hiểu về một số hàm và thủ tục chuẩn liên quan đến xâu Nắm
được cấu trúc chung, hiểu được các tham số của hàm và thủ tục trong xâu
- Biết được chức năng của hàm và thủ tục chuẩn
b Nội dung: - Thủ tục Delete(st,vt,n), thực hiện việc xoá đi trong xâu st n kí tự kể
từ vị trí vt
- Hàm copy(st,vt,n), cho giá trị là một xâu kí tự được lấy trong xâu st, lấy n kí tự từ
vị trí vt
- Hàm Length(st), cho giá trị là số lượng kí tự trong xâu st (độ dài của xâu)
- Hàm Pos(st1,st2) cho giá trị là vị trí xuất hiện đầu tiên của xâu st1 trong xâu st2
Trang 9- Hàm Upcase(ch), cho kí tự hoa tương ứng của kí tự ch.
c Các bước tiến hành
15’ 1 Giới thiệu cấu trúc chung của thủ tục Delete
- Chiếu lên màn hình cấu trúc chung của thủ tục
Begin st:= 'Lop 10A chung minh';
writeln('xau truoc khi xoa la: ',st);
Delete(st,8,9);
writeln('xau sau khi xoa la: ',st); readln;
End
- Hỏi: Kết quả đưa ra màn hình?
- Thực hiện chương trình để học sinh quan sát
2 Giới thiệu cấu trúc chung của hàm Coppy
- Chiếu lên cấu trúc chung của hàm Coppy:
Hàm copy(st,vt,n), cho giá trị là một xâu kí tự được
- Chú ý quan sát vàsuy nghĩ để trả lờicâu hỏi
- Ghi bài vào vở vàsuy nghĩ
- kết quả đưa ra mànhình :
xau truoc khi xoa la:Lop 10A chung minh xau sau khi xoa la:Lop 10A
Trang 10lấy trong xâu st, lấy n kí tự từ vị trí vt.
- Chiếu ví dụ:
Var st1, st2:String[20];
Begin st1:= 'Lop 10A chung minh';
writeln('xau ban dau khi xoa la: ',st1);
st2:=coppy(st1,1,7); writeln('xau sao chep la: ',st2);
readln;
End
- Hỏi: Kết quả đưa ra màn hình?
- Thực hiện chương trình để học sinh quan sát
3 Giới thiệu hàm length
- Chiếu cấu trúc chung của hàm length:
Hàm Length(st), cho giá trị là số lượng kí tự trong
xâu st (độ dài của xâu)
Var st1, st2:String[20];
Begin st:= 'Lop 10A chung minh';
writeln(length(st)); readln;
End
- Hỏi: Kết quả đưa ra màn hình?
- Chú ý theo dõi, ghibài và suy nghĩ để trảlời câu hỏi
- Kết quả: trên mànhình:
xau ban dau la: Lop10A chung minh xau sao chep la: Lop10A
- Chú ý theo dõi vàsuy nghĩ trả lời câuhỏi
- Kết quả: 17
Trang 11- Thực hiện chương trình để học sinh quan sát.
4 Giới thiệu hàm Pos
- Chiếu cấu trúc chung của hàm Pos:
Hàm Pos(st1,st2) cho giá trị là vị trí xuất hiện đầu
tiên của xâu st1 trong xâu st2
- Hỏi: Kết quả đưa ra màn hình?
- Thực hiện chương trình để học sinh quan sát
5 Giới thiệu hàm Upcase
- Chiếu cấu trúc chung của hàm Upcase:
- Hàm Upcase(ch), cho kí tự hoa tương ứng của kí tự
ch
chiếu ví dụ:
Var st:String[20]; 1:byte;
- Chú ý theo dõi vàsuy nghĩ trả lời câuhỏi
- Kết quả: 1
- Chú ý theo dõi vàsuy nghĩ trả lời câuhỏi
Trang 12st:= 'Lop 10A chung minh';
For i:=1 to length(st) Do st[i]:=Upcase(st[i]);
writeln(vt)); readln;
End
- Hỏi: Kết quả đưa ra màn hình?
- Thực hiện chương trình để học sinh quan sát
6 Giới thiệu thủ tục Insert
- Chiếu cấu trúc chung của thủ tục Insert
- Hàm Insert(st1,st1,vt), thực hiện việc chèn xâu st1
và xâu st2 tại vị trí vt
chiếu ví dụ:
Var st1, st2:String[20];
Begin
st2:= 'Lop 10A chung minh'; st1:=' thpt Viet Yen1';
Insert(st1,st2,8); writeln(st1)); readln;
End
- Hỏi: Kết quả đưa ra màn hình?
- Thực hiện chương trình để học sinh quan sát
- Kết quả đưa ra mànhình:
LOP 10A CHUNGMINH
- theo dõi, ghi bài vàsuy nghĩ để trả lờicâu hỏi
- In ra màn hình xâu:Lop 10A chung minhthpt Viet Yen1
Trang 13IV Đánh giá cuối bài (5’)
1 Nội dung đã học: Cách khai báo biến kiểu xâu, tham chiếu phần tử kiểu xâu vàmột số hàm, thủ tục
2 Câu hỏi và bài tập về nhà: Xem phần lý thuyết và làm bài tập sgk và sbt
Trang 14KIỂU XÂU (TIẾT 2)
I-MỤC TIÊU:
1.Kiến thức:
- Bước đầu sử dụng được kiểu dữ liệu xâu, cách khai báo
- Nắm được một số thủ tục và hàm liên quan đến xâu và áp dụng giải quyết các bàitoán đơn giản
2.Kỹ năng:
- Khai báo được kiểu dữ liệu xâu trong ngôn ngữ lập trình Pascal Sử dụng đượcbiến xâu và các phép toán, các hàm và thủ tục trên xâu để giải quyết một bài toánđơn giản
II-ĐỒ DÙNG DẠY HỌC:
1.Chuẩn bị của giáo viên:
- Phòng máy tính thực hành
- Một số chương trình mẫu viết sẵn để giới thiệu ví dụ
2.Chuẩn bị của học sinh:
- Sách giáo khoa, vở ghi
III-HOẠT ĐỘNG DẠY VÀ HỌC:
1 Hoạt động 1: Kiểm tra 15 phút:
a Mục tiêu: Đánh giá mức độ hiểu và vận dụng kiểu mảng vào giải quyết bài toán
Trang 15b Nội dung: Viết chương trình nhập vào các giá trị mảng hai chiều gồm N dòng
và M cột (N, M nhập từ bàn phím) các số nguyên Tìm và đưa ra màn hình số nhỏnhất trong mảng?
2.Hoạt động 2: Rèn luyện kỹ năng khai báo biến kiểu xâu và một số hàm và
thủ tục so sánh trong xâu
a Mục tiêu: Học sinh nắm được ý nghĩa và cấu trúc chung của phép so sánh và sửdụng để giải quyết bài toán
b Nội dung: bài toán nhập vào họ tên của hai người và đưa xâu dài hơn Nếu
bằng nhau thì đưa ra xâu nhập sau
c Các bước tiến hành
TG Hoạt động của giáo viên Hoạt động của HS
10’ - Để lưu họ tên của hai người, cần
dùng biến gì?
- Có thể dùng biến mảng một chiều
không?
- Yêu cầu 2 học sinh lên giải quyết
bài toán bằng hai cách: Dùng biến
mảng và dùng biến kiểu xâu
- Yêu cầu hs theo dõi hai cách giải
quyết bài toán và rút ra nhận xét và
cách dùng biến kiểu mảng 1 chiều và
biến kiểu xâu, nhận xét cách nhập và
xuất của hai biến này?
- Có thể dùng biến mảng một chiềuđược
- Hai hs lên bảng viết hai chương trìnhtheo hai cách khác nhau
- HS trả lời
Trang 16- GV cho 1 học sinh lên viết chương
trình trực tiếp trên máy bằng cách
dùng biến kiểu xâu Rồi GV chạy hai
chương trình để HS thấy được rõ sự
khác nhau khi dùng biến kiểu xâu và
biến kiểu mảng
- Theo dõi trên màn hình hai chươngtrình thực hiện như thế nào để đưa ranhận xét
3 Hoạt động 3: Rèn luyện kỹ năng khai báo biến và kỹ năng sử dụng hàm
length, cách truy nhập các phần tử của xâu.
a Mục tiêu: Học sinh nắm được ý nghĩa và cấu trúc chung của hàm length và sửdụng để giải quyết bài toán Biết các truy nhập các phần tử của xâu
10’ - Chiếu nội dung ví dụ 2 và
Trang 17ví dụ 3.
- Hỏi: Để so sánh được kí tự
đầu tiên và kí tự đầu tiên,
thao tác như thế nào?
- Yêu cầu hs viết chương
trình trên máy và chạy
- hs viết chương trình trên máy và chạychương trình
- theo dõi chương trình của bạn và so sánh vớichương trình của mình, rút ra nhận xét
- Theo dõi bài mẫu của GV và hoàn thiệnchương trình
4 Hoạt động 4: Rèn luyện kỹ năng vận dụng kiểu xâu, phép ghép xâu và các
hàm, thủ tục tác động đến xâu để giải quyết bài toán.
a Mục tiêu: Học sinh vận dụng được hàm length và các thủ tục, Delete, copy
b Nội dung:
- Ví dụ 4: Nhập một xâu từ bàn phím và đưa ra màn hình xâu thu được từ nó bởiviệcloại bỏ kí tự trắng
Trang 18- Ví dụ 5: Nhập vào từ bàn phím một xâu s1, tạo xâu s2 gồm tất cả các chữ số cótrong xâu s1 (Giữ nguyên thứ tự) và đưa ra màn hình.
c Các bước tiến hành
10’ - Chiếu nội dung ví dụ 4 và
ví dụ 5
- Hỏi: Để xoá được kí tự
trắng trong xâu, cần dung
- Yêu cầu hs viết chương
trình trên máy và chạy
- Xoá tại vị trí i, mà s[i]=’ ‘, xoá 1 kí tự
- hs viết chương trình trên máy và chạychương trình
- theo dõi chương trình của bạn và so sánh vớichương trình của mình, rút ra nhận xét
- Theo dõi bài mẫu của GV và hoàn thiện
Trang 19kinh nghiệm viết chương
trình
chương trình
IV Đánh giá cuối bài (2’)
1 Nội dung đã học: Cách khai báo biến kiểu xâu, tham chiếu phần tử kiểu xâu vàmột số hàm, thủ tục
2 Câu hỏi và bài tập về nhà: Xem phần lý thuyết và làm bài tập sgk và sbt
Trang 20- Khai báo biến xâu
- Nhập, xuất cho giá trị biến xâu
- Duyệt qua tất cả các kí tự trong xâu
- Sử dụng được các hàm và thủ tục chuẩn
3 Thái độ
- Tích cực, chủ động và sáng tạo trong thực hành
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
- Phòng máy vi tính, máy chiếu Projector
2 Chuẩn bị của học sinh:
Sgk, kiến thức đã học
Trang 21III Hoạt động dạy - học
1 Hoạt động 1: Tìm hiểu một chương trình, đề xuất phương án để học sinh có
được kĩ năng làm việc với kiểu xâu
a Mục tiêu:
- Học sinh biết và hiểu được chương trình, tính được kết quả của chương trình Biết đề xuất phương án cảI tiến
b Nội dung:
- Nhập một xâu, kiểm tra xem có phải là xâu Palindrome hay không?>
Chương trình minh họa sgk - tr.73
c Các bước tiến hành
20’ 1 Tìm hiểu đề bài
- Giới thiệu đầu bài lên màn hình chiếu
- Diễn giải: Xâu Palindrome là xâu mà
đọc từ trái qua phải cũng được kết quả
giống như đọc từ phải qua trái
- Yêu cầu HS lấy hai ví dụ về xâu
Palindrome?
2 Tìm hiểu chương trình gợi ý
- Chiếu chương trình lên màn hình
- Theo dõi và nghiên cứu đàu bài
- Lấy hai ví dụ về xâu palindrome:abcdcba; 1234321;
- Theo dõi chương trình trên mànhình
- Trả lời
Trang 22-Hỏi: Chương trình có chức năng gì?
cho kết quả là gì?
- Thực hiện chương trình để kiểm
nghiệm suy luận của hs
3 Cải tiến chương trình
- Nêu yêu cầu mới: Viết lại chương trình
mà không sử dụng biến trung gian p
- Yêu cầu: Nhận xét về các cặp đối xứng
nhau trong xâu Palindrome?
- Hỏi: Kí tự thứ i đối xứng với kí tự ở vị
trí nào trong xâu?
- Hỏi: Cần phải so sánh bao nhiêu cặơp
kí tự trong xâu để biết xâu đó có là xâu
- Yêu cầu hs nhập dữ liệu cho sẵn của
gv và thông báo kết quả
- Thực hiện trên máy và kiểmnghiệm suy luận của mình
- Chú ý theo dõi yêu cầu mới vàsuy nghĩ trả lời
- Các kí tự này giống nhau
- Kí tự thứ i đối xứng vứi kí tự thứlength() – i+1
- so sánh tối đa length() div 2 cặp
kí tự trong xâu
- Có thể dùng cấu trúc lặp Forhoặc While
- Viết chương trình trên máy
- Thông báo kết qủa
2 Hoạt động 2: Rèn luyện kỹ năng lập trình
a Mục tiêu:
Trang 23- Học sinh biết phân tích bài toán và áp dụng kiểu dữ liệu xâu
- Giới thiệu đầu bài lên màn hình
chiếu Nêu mục đích của bài toán
- Chia lớp thành nhiều nhóm,
mỗi nhóm 2 học sinh 1 máy tính
- Nêu dữ liệu vào, dữ liệu ra của
bài toán?
- Nêu nhiệm vụ chính để giải
quyết bài toán?
2 Yêu cầu học sinh viết chương
trình trên máy đã được giao
- Yêu cầu học sinh lập trình xong
sớm tìm một số bộ test
- Yêu cầu học sinh nhập dữ liệu
- Theo dõi và nghiên cứu đàu bài
- Xác định dữ liệu vào và ra
Trang 24vào theo bộ test của giáo viên đã
chọn và thông báo lên kết quả
khi thực hiện chương trình
- Xác nhận chương trình viết
ađúng, sai
- Test theo bộ test của giáo viên
- Thông báo kết quả và sửa lại chươngtrình cho hoàn chỉnh
IV Đánh giá cuối bài (5’)
1, Những kiến thức đã học
- Một số thuật toán đơn giản liên quan đến xâu kí tự Kiểm tra một xâu đối xứng,tìm tần xuất xuất hiện của các kí tự có trong xâu
2 Bài tập về nhà: Bài tập sgk và sbt