§12. KIỂU XÂU (TIẾT 2) 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. II. ĐỒ DÙNG DẠY HỌC 1. Chuẩn bị của giáo viên - Máy vi tính, máy chiếu projector để giới thiệu ví dụ, sách giáo viên. 2. Chuẩn bị của học sinh - Sách giáo khoa. III. HOẠT ĐỘNG DẠY-HỌC 1. 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 CỦA 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 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. 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. 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 - 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. 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. 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? 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) - 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; Begin readln(st); if pos(‘ ’, st)<>0 then write(‘Co’) else write(‘Khong’); End. - Có thể sử dụng For để tìm dấu cách trong 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 - 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. 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; - 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. 6. Quan sát cấu trúc chung của thủ tục Insert. 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); - 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’; 2. Hoạt động 2: 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 CỦA 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 đã 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ớ. viết để chính xác hóa lại cho học sinh. IV. ĐÁNH GIÁ CUỐI BÀI 1. 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) 2. Câu hỏi và bài tập về nhà - Học bài cũ - Giải bài tập số 10 trang 80. . 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:=. - 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