i. Mục tiêu
1. Kiến thức:
- Biết được sự lợi ích của các hàm và thủ tục liên quan xâu trong ngôn ngữ lập trì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 đến xâu của ngôn ngữ lập trình Pascal.
2. Kĩ năng:
- Nhận biết và bước đầu sử dụng được một số hàm và thủ tục để giải quyết một số bài tập đơn giản liên quan.
3. Tư duy:
- Logic các ki ểu đ ã học tạo ta khả năng lập trình với các chương trình phức tạp hơn.
4. Thái độ:
- Chú ý nhiệt tình, tư duy tốt khi lập trình. Hăng hái xây dựng bài.
Tiết 30 Ngày soạn 11/12/09 Bài 14. KIỂU XÂU (TIẾT 2) Ngày giảng /12/09 Môc tiªu Kiến thức: Biết được sự lợi ích của các hàm và thủ tục liên quan xâu trong ngôn ngữ lập trì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 đến xâu của ngôn ngữ lập trình Pascal. Kĩ năng: Nhận biết và bước đầu sử dụng được một số hàm và thủ tục để giải quyết một số bài tập đơn giản liên quan. Tư duy: Logic các ki ểu đ ã học tạo ta khả năng lập trình với các chương trình phức tạp hơn. Thái độ: Chú ý nhiệt tình, tư duy tốt khi lập trình. Hăng hái xây dựng bài. ChuÈn bÞ bµi gi¶ng Ph¬ng tiÖn: GV: Giáo án, bài giảng điện tử. HS: Sách giáo khoa, vở ghi. Xem trước bài học. Ph¬ng ph¸p d¹y häc Gîi më vÊn ®¸p §µm tho¹i §Æt vÊn ®Ò TiÕn tr×nh d¹y häc KiÓm tra bµi cò: - Khai báo biến: VAR tên_biến : STRING[độ dài lớn nhất của xâu]; - Nhập xuất giá trị cho biến xâu: read/readln(); write/writeln(); - Tham chiếu đến từng ký tự trong xâu: tên_biến[chỉ_số]. - Phép ghép xâu: ký hiệu là +, được sử dụng để ghép nhiều xâu thành một xâu - Các phép so sánh: =, , >, =: thực hiện việc so sánh hai xâu. Néi dung bµi gi¶ng: Ho¹t ®éng 1 Tìm hiểu về một số hàm và thủ tục chuẩn liên quan xâu trong ngôn ngữ lập trình Pascal. Ho¹t ®éng cña gi¸o viªn Ho¹t ®éng cua häc sinh 1. Giới thiệu cấu trúc chung của hàm length(st) lên bảng. - Hỏi: Ý nghĩa của Length và của st? - Chiếu chương trình ví dụ: Var st:string; Begin st:= ‘Ha Noi’; Write(length(st)); readln; End. - Hỏi: Kết quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm length() là gì? - Chiếu đề bài tập ứng dụng: Viết chương trình nhập một xâu, in ra màn hình số ký tự ‘a’ có trong xâu. 2. Giới thiệu cấu trúc chung của hàm Upcase(ch). - Chiếu chương trình ví dụ: Var ch:char; Begin ch:= ‘h’; Write(upcase(ch)); readln; End. - Hỏi: Kết quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm upcase()? - Chiếu bài tập ứng dụng: Viết chương trình nhập một xâu, in ra màn hình xâu đó dạng in hoa. 1. Quan sát cấu trúc chung. - Length: là tên hàm, có nghĩa là độ dài, st: là một biểu thức xâu ký tự. - Quan sát chương trình để dự tính kết quả. - Kết quả là: 6 - Quan sát kết quả của chương trình. - Hàm cho số lượng ký tự của xâu st. 2. Quan sát cấu trúc chung của hàm Upcase. - Quan sát chương trình để dự tính kết quả. - Kết quả là: H - Quan sát kết quả của chương trình. - Cho giá trị là chữ cái in hoa của ch. Var st:string; Begin readln(st); For i:=1 to length(st) do write(upcase(st[i])); End. Ho¹t ®éng 2 Hàm Pos. Giới thiệu cấu trúc chung của hàm Pos. Ho¹t ®éng cña gi¸o viªn Ho¹t ®éng cua häc sinh 3. Giới thiệu cấu trúc chung của hàm Pos(s1,s2). - Chiếu chương trình ví dụ: Var vt:byte; Begin vt:=Pos(‘cd’, ‘abcdefcd’); Write(vt); readln; End. - Hỏi: Kết quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm pos? - Thay tham số của hàm Pos trong chương trình bằng Pos(‘k’, ‘abc’). Hỏi kết quả của hàm bằng bao nhiêu? - Chiếu bài tập ứng dụng: Viết chương trình nhập vào một xâu st. Xét xem trong xâu có dấu cách hay không? - Hỏi: Có cách giải nào khác? 3. Quan sát cấu trúc chung của hàm Pos và các ví dụ để biết chức năng. - Quan sát chương trình để dự tính kết quả. - Kết quả là: 3 - Quan sát kết quả của chương trình. - Hàm cho giá tri là một số nguyên là vị trí của xâu st2 trong xâu st2. - Bằng không 0. Var st:string; - Có thể sử dụng For để tìm dấu cách trong xâu. HOẠT ĐỘNG 3 Hàm Copy, thủ tục Delete. Ho¹t ®éng cña gi¸o viªn Ho¹t ®éng cua häc sinh 4. Giới thiệu cấu trúc chung của hàm copy(st,vt,n). - Chiếu chương trình ví dụ: Var st:string; Begin st:=copy(‘bai tap’,3,4); Write(st); readln; End. - Hỏi: Kết quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm copy? - Thay các tham số của hàm copy trong chương trình ví dụ trên như sau và hỏi kết quả in ra màn hình: Copy(‘abc’,1,5) Copy(‘abc’,5,2) Copy(‘abc’,1,0) - Thực hiện chương trình để học sinh thấy kết quả. 5. Giới thiệu cấu trúc chung của thủ tục delete(st,vt,n); - Chiếu chương trình ví dụ: Var st:string; Begin st:= ‘HaNoi’; delete(st,3,2); Write(st); readln; End. - Hỏi: Kết quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi chức năng của thủ tục delete(); - Thay lệnh gán st:= ‘HaNoi’; và thủ tục xóa bởi các lệnh sau và hỏi kết quả in ra màn hình. st:=’abc’; Delete(st,1,5); st:=’abc’; Delete(st,5,2); st:=’abc’; Delete(st,1,0); - Chiếu bài tập ứng dụng: Viết chương trình nhập một xâu và xoá đi các dấu cách thừa ở đầu xâu. 4. Quan sát cấu trúc chug của hàm copy và ví dụ để biết chức năng. - Quan sát chương trình để dự tính kết quả. - Kết quả là: ‘i ta’ - Quan sát kết quả của chương trình. - Hàm cho giá trị là một xâu ký tự được lấy trong xâu st, gồm n ký tự bắt đầu tại vị trí vt. Cho giá trị là: ‘abc’ Cho giá trị là xâu rỗng Cho giá trị là xâu rỗng - Quan sát kết quả của chương trình để kiểm nghiệm suy luận. 5. Quan sát cấu trúc chung của thủ tục Insert và các ví dụ. - Quan sát chương trình để dự tính kết quả. st=’Hai’ - Quan sát kết quả của chương trình. - Thủ tục thực hiện việc xóa đi trong biến xâu st gồm n ký tự, bắt đầu từ vị trí vt. st:= ‘’; xâu rỗng. st:= ‘abc’; st:= ‘abc’; Var st:string; begin readln(st); while st[1]= ‘ ’ do delete(st,1,1); writeln(st); readln; end. HOẠT ĐỘNG 4 Giới thiệu cấu trúc chung của thủ tục Insert. Ho¹t ®éng cña gi¸o viªn Ho¹t ®éng cua häc sinh 6. Giới thiệu cấu trúc chung của thủ tục Insert(st1,st2,vt); - Chiếu chương trình ví dụ: Var st1,st2:string; Begin st2:=‘HaNoi’; st1:= ‘ ’; insert(st1,st2,3); Write(st); readln; End. - Hỏi: Kết quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi chức năng của thủ tục insert(); - Thay lệnh gán st2:=‘HaNoi’; và thủ tục chèn bởi các lệnh như sau và hỏi kết quả: st2:=‘ef’; Insert(‘abc’,st2, 5); st2:=‘ef’; Insert(‘abc’,st2, 0); 6. Quan sát cấu trúc chung của thủ tục Insert. - Quan sát chương trình để dự tính kết quả. - Kết quả st2=’Ha Noi’ - Quan sát kết quả của chương trình. - Thủ tục thực hiện việc chèn xâu st1 vào trong biến xâu st2 bắt đầu tại vị trí vt. st2= ‘efabc’; st2= ‘abcef’; HOẠT ĐỘNG 5 Rèn luyện kĩ năng vận dụng hàm và thủ tục. Ho¹t ®éng cña gi¸o viªn Ho¹t ®éng cua häc sinh 1. Xác định bài toán. - Chiếu nội dung đề bài lên bảng. - Xác định dữ liệu vào, dữ liệu ra. - Hỏi: Các nhiệm vụ chính khi giải quyết bài toán này? - Hỏi: Trong bài này, ta cần sử dụng những hàm và thủ tục nào? 2. Chia lớp làm 3 nhóm. Yêu cầu viết chương trình lên bìa trong. - Thu phiếu trả lời. Chiếu kết quả lên bảng. Gọi học sinh nhóm khác nhận xét, đánh giá và bổ sung. 3. Chiếu chương trình mẫu giáo viên đã viết để chính xác hóa lại cho học sinh. Giáo viên soạn sẵn các ví dụ này để tiện cho học sinh theo dõi trên màn hình cũng như việc chạy thử và không làm mất thời gian ngồi viết chương trình . Với mỗi ví dụ, giáo viên đi sâu vào câu lệnh trực tiếp đáp ứng yêu cầu của ví dụ, như vậy các em sẽ tiếp thu nhanh hơn . Ví dụ 1 : Nhập 1 xâu, viết ra màn hình xâu dài hơn . Ví dụ 2 : Nhập 1 xâu, kiểm tra xem ký tự đầu tiên của xâu S1 có trùng với ký tự cuối cùng của xâu S2 hay không ? 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 . Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu đó nhưng đã được bỏ tất cả các ký tự là dấu cách . Ví dụ 5 : Nhập 1 xâu, viết ra màn hình xâu gồm các ký tự số của xâu đó . 1. Quan sát, suy nghĩ để trả lời. - Vào: Một xâu ký tự bất kỳ. - Ra: Một xâu chỉ có 1 ký trắng giữa hai từ. - Xoá mọi dấu cách thừa đầu xâu và cuối xâu. - Xoá các dấu cách thừa giữa hai từ. - Hàm Pos(), thủ tục delete(); 2. Thảo luận theo nhóm để viết chương trình. - Thông báo kếtquả. - Nhận xét và bổ sung những thiếu sót của nhóm khác. 3. Quan sát và ghi nhớ Một số ví dụ : VD 1 : Program vd1 ; Uses crt ; Var s1,s2 : String ; Begin Clrscr ; Write('Nhap xau thu 1 : ') ; Readln(s1) ; Write('Nhap xau thu 2 : ') ; Readln(s2) ; If length(s1) > Length(s2) then Write(s1) else Write(s2); Readln ; End . VD 2 : Program vd2 ; Uses crt ; Var s1,s2 : String ; x : Byte ; Begin Clrscr ; Write('Nhap xau thu 1 : '); Readln(s1) ; Write('Nhap xau thu 2 : '); Readln(s2) ; x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else Write('Khac nhau'); Readln ; End . VD 3 : Program vd3 ; Uses crt ; Var i,k : Byte ; a : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; For i := k downto 1 do Write(a[i]) ; Readln ; End . VD 4 : Program vd4 ; Uses crt ; Var i,k : Byte ; a,b : String ; Begin Clrscr ; 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 . VD 5 : Program Xulixau ; Uses crt ; Var s1,s2 : String ; i : Byte ; Begin Clrscr ; Write('Nhap xau s1 : ') ; Readln(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 . Cñng cè: Những hàm và thủ tục liên quan đến xâu - Thủ tục Delete(st,vt,n); - Thủ tục Insert(st1,st2,vt); - Hàm Copy(st,vt,n) - Hàm Length(st) - Hàm Pos(st1,st2) - Hàm UpCase(ch) DÆn dß: - Giải bài tập số 10 trang 80. NhËn xÐt Ph¬ng ph¸p: HiÖu qu¶ sö dông: HiÖu qu¶ SD TBDH: ND cÇn ®iÓu chØnh: NhËn xÐt cña gi¸o viªn híng dÉn:
Tài liệu đính kèm: