Thái độ : - Giúp học sinh cảm thấy hiểu rõ hơn khi lập chương trình giải các bài toán cần sử dụng kiểu dữ liệu xâu.. - Phân tích yêu cầu của bài toán Nhập 2 xâu, xuất ra xâu dài hơn nế
Trang 1Trường thực tập: Trường THPT Nguyễn Trung Trực Năm học:2009-2010
Họ và tên giáo viên hướng dẫn : Trần Văn Kỹ
Họ và tên sinh viên thực tập: Phạm Văn Dũng MSSV:K31103309
Bài 12: KIỂU XÂU
(tiết 2)
I.Mục đích, yêu cầu :
Kiến thức :
- Ý nghĩa của các hàm copy(S,vt,N), length(s), pos(s1,s2), upcase(ch)
- Tìm hiểu một số ví dụ để biết cách sử dụng hàm và thủ tục
Kĩ năng :
- Hiểu và sử dụng được hàm, thủ tục để giải quyết những bài toán đơn giản
Thái độ :
- Giúp học sinh cảm thấy hiểu rõ hơn khi lập chương trình giải các bài toán cần sử dụng kiểu dữ liệu xâu
II.Chuẩn bị:
Giáo viên: giáo án, sách giáo khoa, slide
Học sinh: sách giáo khoa, tập ghi chép
III.Phương pháp, phương tiện:
- Phương pháp : thuyết trình , vấn đáp
- Phương tiện : bảng, phấn, máy chiếu, máy tính
IV.Các bước tiến hành
1 Ổn định lớp.
2 Đặt vấn đề: Tiết trước các em đã được học cách khai báo và làm quen với phép ghép xâu, so
sánh, và hai thủ tục delete(st, vt, n) và insert(s1, s2, vt) Tiết này các em sẽ được làm quen với
liên quan đến xử lý xâu Bài 12: Kiểu Xâu(tt)
3 Bài giảng:
Bài 12: Kiểu xâu (tiếp theo)
2) Các thao tác xử lí xâu:
c) hàm copy(S, vt, N)
Ý nghĩa: 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.
Ví dụ 1: S1: = ‘De Thuong’
S2: = copy(S1, 4, 6);
S2 = ‘Thuong’;
Ví dụ 2: S1:= ‘Gia Dinh’
S2:= copy(S1,1,3);
- Hãy cho biết ý nghĩa của hàm copy
- Đọc lại ý nghĩa của hàm copy
- Cho ví dụ về hàm copy
- Cho biết kết quả của xâu S2
- 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.
Trang 2S2= ‘Gia’;
d) Hàm length(S)
Ý nghĩa: Cho giá trị độ dài xâu S.
Ví dụ 1: S: = ‘11C5’;
length(S) = 4;
Ví dụ 2: S:= ‘Chu Van An’;
length(S)=10;
e) Hàm pos(s1, s2)
Ý nghĩa: Cho vị trí xuất hiện đầu tiên
của xâu s1 trong xâu s2
Ví dụ 1: s1: =‘me’;
s2: = ‘ba me’;
pos(s1, s2) = 4;
Ví dụ 2: s1:=’em’;
s2:=’ba me’;
pos(s1, s2) = 0;
f) Hàm upcase(ch):
Giới thiệu ý nghĩa của hàm upcase và
cách sử dụng
Ví dụ 1: ch: = ‘d’;
upcase(ch) = ‘D’;
Ví dụ 2: ch: = ‘E’;
upcase(ch) = ‘E’;
3 Một số ví dụ
Ví dụ 1 : Nhập vào họ tên của hai
người vào hai xâu, đưa ra màn hình
xâu nào dài hơn, nếu hai xâu bằng
nhau thì xuất ra xâu thứ hai
- Đoạn chương trình:
Var a,b : String ;
Begin
Write('Nhap ho ten thu 1 : ') ;
Readln(a) ;
Write('Nhap ho ten thu 2 : ') ;
Readln(b) ;
If length(a) > length(b) then
- Hãy cho biết ý nghĩa của hàm length
- Cho ví dụ về hàm length
- Cho biết kết quả của hàm
- Hãy cho biết ý nghĩa của hàm pos
- Cho ví dụ về hàm pos
- Vậy kết quả của ví dụ 2 là bao nhiêu?
- Hãy cho biết ý nghĩa của hàm upcase
- Cho ví dụ về hàm upcase
- Phân tích yêu cầu của bài toán( Nhập 2 xâu, xuất ra xâu dài hơn nếu bằng nhau thì xuất ra xâu thứ 2)
- Viết lên bảng ví dụ cụ thể để mô phỏng
- Cho học sinh xem đoạn chương trình và phân tích ý nghĩa của từng dòng lệnh
- Xâu S2= ‘Gia’.
- Cho giá trị độ dài xâu S
- Cho giá trị là 10
- Cho vị trí xuất hiện
đầu tiên của xâu s1 trong xâu s2
- Giá trị bằng 0
- Lắng nghe ghi bài
- Nhớ hoặc tham khảo sách về các hàm vừa được học Ứng dụng đúng về hàm tính độ dài của xâu để so sánh( hàm
length).
- Chú ý lắng nghe và ghi chép lại
Trang 3Write(a)
else
Write(b);
Readln ;
End
Ví dụ 2 : Nhập 2 xâu, kiểm tra xem 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
hay không ?
- Đoạn chương trình:
Var a,b : String ;
x : Byte ;
Begin
Write('Nhap xau thu 1 : ');
Readln(a) ;
Write('Nhap xau thu 2 : ');
Readln(b) ;
x := length(b) ;
If a[1] = b[x] then
Write('Trung nhau')
else
Write('Khac nhau');
Readln ;
End
Ví dụ 3 : Nhập 1 xâu, viết ra màn
hình xâu đó theo thứ tự ngược lại
của các ký tự trong xâu
- Đoạn chương trình:
Var i,k : Byte ;
a : String ;
- Gọi học sinh đọc đề bài và phân tích yêu cầu đề bài và hướng giải quyết bài toán
- Chú ý khi truy xuất đến phần tử thứ i thì phải được xác định bởi tên biến xâu tiếp đến là i viết
trong dấu ngoặc đóng [ ] Rồi liên hệ qua hàm length để tính
chiều dài của xâu( ứng với kí tự
cuối cùng của xâu)
- Cho học sinh xem đoạn chương trình và giải thích ý nghĩa từng dòng lệnh
- Gọi học sinh đọc đề bài và phân tích nội dung yêu cầu của đề
- Giải thích nếu mà cho i chạy từ
1 đến n là for i:=1 to n do, còn
nếu cho i chạy ngược lại từ n về 1
thì dùng for i:=n downto 1 do
Nhưng chú ý n ở đây là hàm
length.
- Cho học sinh xem đoạn chương trình và giải thích ý nghĩa từng dòng lệnh
- Đọc đề bài và nhớ về cách truy xuất phần tử của xâu
- Suy luận ra được cách tính được phần tử cuối cùng của xâu thứ hai
- Lắng nghe và ghi chép lại
- Đọc đề bài và xác định yêu cầu của bài toán
- Hiểu được ý nghĩa của
vòng lặp for…
downto…do và tại sao dùng hàm length.
- Chú ý lắng nghe và ghi chép lại
Trang 4Write('Nhap xau : ') ;
Readln(a) ;
k := length(a) ;
For i := k downto 1 do
Write(a[i]) ;
Readln ;
End
Ví dụ 4 : Nhập 1 xâu, viết ra màn
hình xâu đó nhưng đã được loại bỏ
các dấu cách nếu có
- Đoạn chương trình:
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
b := b+a[i] ;
Write(b) ;
Readln ;
End
Ví dụ 5 : Nhập 1 xâu kí tự s1, tạo xâu
s2 gồm các chữ số có trong xâu s1,
xuất kết quả ra màn hình.
- Đoạn chương trình
Program Xulixau ;
Var s1,s2 : String ;
i : Byte ;
Begin
Write('Nhap xau s1 : ') ;
- Gọi học sinh đọc đề bài và phân tích nội dung yêu cầu của đề
- Giải thích nên dùng 1 xâu rỗng
để chứa những kí tự khác với dấu cách
- Cho hoc sinh xem đoạn chương trình và giải thích ý nghĩa từng dòng lệnh
- Gọi học sinh đọc đề bài và phân tích nội dung yêu cầu của đề
- Giải thích khởi tạo xâu s2 rỗng
để lưu trữ những kí tự là số trong xâu s1 Phải có điều kiện để xác định số trong xâu s1
- Cho hoc sinh xem đoạn chương trình và giải thích ý nghĩa từng dòng lệnh
- Đọc đề bài và xác định được yêu cầu của bài toán
- Hiểu được tại sao dùng xâu rỗng để lưu trữ những kí tự khác dấu cách
- Chú ý lắng nghe và ghi chép lại
- Đọc đề bài và xác định được yêu cầu của bài toán
- Hiểu được tại sao dùng xâu rỗng và điều kiện để xác định số trong xâu s1
- Chú ý lắng nghe và ghi chép lại
Trang 5Readln(s1) ;
s2 := '' ;
For i := 1 to length(s1) do
If ('0'<=s1[i]) and (s1[i]<='9')
then
s2 := s2 + s1[i] ;
Write(s2);
Readln ;
End
4 Củng Cố:
- Nhắc lại các hàm vừa được học( copy, length, pos, upcase).
- Chú ý xem lại các ví dụ trong SGK
5 Dặn dò:
- Về nhà xem lại bài và làm lại các ví dụ trên SGK
- Xem và đọc trước bài tập thực hành số 5
V Rút kinh nghiệm – Bổ sung:
Giáo viên hướng dẫn phê duyệt Rạch giá ngày 23 tháng 02 năm 2010
Sinh viên thực tập