Tuần : Tiết : 29+30 Ngày soạn: Ngày giảng: Bài12. Kiểu Xâu I. mục tiêu của bài: 1. Kiến thức - Biết xâu là một dãy kí tự (có thể coi xâu là một mảng một chiều). - Biết cách khai báo xâu, truy cập đến các phần tử của xâu. 2. 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. 3. Thái độ - Tiếp tục khơi gợi lòng ham thích giải toán bằng lập trình trên máy tính. - Tiếp tục rèn luyện các phẩm chất cần thiết của ngời lập trình. II. Chuẩn bị của Giáo viên và học sinh: 1. Giáo viên: SGK, giáo án, STK (máy chiếu nếu có). 2. Học sinh: SGK, chuẩn bị trớc bài ở nhà. III. Phơng pháp giảng dạy - Thuyết trình, đàm thoại. IV. Tiến trình bàihọc và các hoạt động: 1. ổn định tổ chức: 1 2. Kiểm tra bài cũ: (Không kiểm tra bài cũ) 3. Bài mới: Tiết 29. * Hoạt động 1: Đa ra một số khái niệm cơ bản về kiểu xâu Hoạt động của GV và HS Nội dung - GV: Đặt vấn đề: Để lu trữ và xử lý Họ tên của một ngời, các kiểu dự liệu đã học có đáp ứng đợc không? - HS: Đa ra một số phơn án. - GV: Phân tích một số phơng án của HS, từ đó đa ra yêu cầu cần sử dụng kiếu mới: Kiều xâu. và đa ra một số khái niệm về kiểu xâu. * Một số khái niệm. - 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 lí tự trong xâu đợc gọi là độ dài của xâu. - Xâu có độ dài bằng 0 đợc gọi là xâu rỗng. - Tham chiếu tới các 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 đánh số là 1. - Trong ngôn ngữ Pascal, tham chiếu đến các phần tử thờng đợc viết. <Tên biến xâu>[chỉ số] * Hoạt động 2: Giới thiệu cách khai báo và xử lí xâu trong ngôn ngữ Pascal Hoạt động của GV và HS Nội dung - GV: Đa ra cách khai báo dự liệu kiểu xâu. - GV: Đây là cách khai báo trong ngôn ngữ Pascal, trong ngôn ngữ khác nhau có thể khai báo khác nhau. - 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: Cách viết xâu trong ngôn ngữ các khác nhau cũng có sự khác nhau. 1. Khai báo. - Pascal sử dụng từ khoá String để khai báo biến xâu, độ dài tối đã của xâu không quá 255 kí tự và đặt trong dấu [ ]. Var <Tên biến>: String[độ dài tối đa của xâu]; * Ví dụ: Ten: String[10]; Hodem: String[8]; Quequan: String[25]; * Chú ý: - Nếu không khai báo độ dài tối đa cho biến xâu thì độ dài tối đa ngầm định là 255. - Độ dài tối đa cho biến xâu là 255 kí tự. - Hằng xâu kí tự đợc đặt trong dấu nháy đơn. * Hoạt động 3: Giúp cho HS biết và sử dụng một các thao tác sử lí với xâu. Hoạt động của GV và HS Nội dung - GV: Ví dụ có xâu kí tự nGuyen vAn A ta cần có bao nhiêu thao tác gì để sửa xâu kí tự này thành Nguyen Văn A? - HS: Đa ra ý kiến của mình. - GV: Phân tích ý kiến và gợi ý để các em nhận ra: + Xoá bớt một số dấu cách. + Chuyển chữ hó về chữ thờng và ngợc lại. 2. Các thao tác sử lí xâu. a. Biểu thức xâu: - Là biểu thức trong đó các toán hạng là các biến xâu, biến kí tự * Phép ghép xâu: kí hiệu + dùng để ghép nhiều xâu thành một xâu Ví dụ: Ha + Noi 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 ớc: - Xâu rỗng là xâu - Xâu A = B nếu chúng giống hệt nhau. - Ví dụ: Tinhoc = Tinhoc -Xâu A > B nếu: + Kí tự đầu tiên khác nhau giữa chúng ở xâu A có mã ASCII lớn hơn ở xâu B. - Ví dụ: Ha Noi > Ha Nam + Xâu B là đoạn đầu của xâu A. - Ví dụ: Xau < Xau ki tu - GV: Giới thiệu bảng phụ (Dùng bảng phụ các thủ tục và hàm chuản xử lí xâu) Sau đó ứng với mỗi thủ tục và hàm GV lấy ví dụ cụ thể b. Các thủ tục và hàm chuẩn xử lí xâu : (Dùng bảng phụ các thủ tục và hàm chuản xử lí xâu). Tiết 30. * Hoạt động 4: Lấy một số ví dụ cụ thể về sử dụng hàm và thủ tục trong xử lí xâu. Hoạt động của GV và HS Nội dung - GV: Lấy một số ví dụ đê HS hiểu rõ hơn về cách sử dụng các hàn trong xâu. - HS: Chú ý nghe giảng và ghi bài. - GV: Vừa giảng bài vừa hỏi HS về các câu lệnh có liên quan đến bài. Và hỏi thêm ý tởng thuật toán của các HS. - HS: Chú ý nghe giảng, ghi bài, suy nghĩ và trả lời các câu hỏi. 3. Một số ví dụ. * Ví dụ 1: Viết chơng trình nhập vào 2 xâu và đa ra màn hình xâu có dài hơn độ dài lớn nhất, nếu 2 xâu bằng nhau đa ra ra xâu nhập sau. Program Length_xau; Var a, b: String; Begin Write(Nhap xau thu nhat :); Readln(a); Write(Nhap xau thu hai :); Readln(b); If length(a)>length(b) then Writeln(a) else Writeln(b); Readln; End. - GV: Lấy một số ví dụ đê HS hiểu rõ hơn về cách sử dụng các hàn trong xâu. - HS: Chú ý nghe giảng và ghi bài. - GV: Vừa giảng bài vừa hỏi HS về các câu lệnh có liên quan đến bài. Và hỏi thêm ý tởng thuật toán của các HS. - HS: Chú ý nghe giảng, ghi bài, suy nghĩ và trả lời các câu hỏi. * Ví dụ 2: Nhập một xâu, kiểm tra xem kí tự đầu tiên của xâu S1 có trùng với kí tự đầu tiên của xau S2 hay không? Nếu trung nhau báo lên màn hình là trung nhau, nếu không thì báo không trùng Program VD2; Uses Crt; Var S1,S2: String; x:Byte; Begin Clrscr; Wrtite(Nhap vao xau S1); readln(S1); Wrtite(Nhap vao xau S2); readln(S2); x:=length(S2); If S1[1] = S2[x] then Writeln(Trung nhau) Else Writeln(Khong trung nhau); Readln; End. - GV: Lấy một số ví dụ đê HS hiểu rõ hơn về cách sử dụng các hàn trong xâu. - HS: Chú ý nghe giảng và ghi bài. - GV: Vừa giảng bài vừa hỏi HS về các câu lệnh có liên quan đến bài. Và hỏi thêm ý tởng thuật toán của các HS. - HS: Chú ý nghe giảng, ghi bài, suy nghĩ và trả lời các câu hỏi. * Ví dụ 3: Nhập một xâu, viết ra màn hình xâu đó theo thứ tự ngợc lại theo các kí tự trong xâu. Program VD3; Uses Crt; Var S1:String; i,k:Byte; Begin clrscr; Write(Nhap xau s1:); Readln(S1); k:=length(S1); For i:=k downto 1 do Writeln(S1); Readln; End. - GV: Lấy một số ví dụ đê HS hiểu rõ hơn về cách sử dụng các hàn trong xâu. - HS: Chú ý nghe giảng và ghi bài. - GV: Vừa giảng bài vừa hỏi HS về các câu lệnh có liên quan đến bài. Và hỏi thêm ý tởng thuật toán của các HS. - HS: Chú ý nghe giảng, ghi bài, suy nghĩ và trả lời các câu hỏi. * Ví dụ 4: Nhập một xâu, viết ra màn hình xâu đó nhng đã đợc bỏ tất cả các kí tự là dấu cách. Program VD4; Uses Crt; Var S1, S2: String; i, k: Byte; Begin clrscr; Write(Nhap xau s1:); Readln(S1); k:=length(S1); b:= ; For i:= 1 to k do If S1[i] <> then S2: = S2 + S1[i]; Writeln(S2); Readln; End. - GV: Lấy một số ví dụ đê HS hiểu rõ hơn về cách sử dụng các hàn trong xâu. - HS: Chú ý nghe giảng và ghi bài. - GV: Vừa giảng bài vừa hỏi HS về các câu lệnh có liên quan đến bài. Và hỏi thêm ý tởng thuật toán của các HS. - HS: Chú ý nghe giảng, ghi bài, suy nghĩ và trả lời các câu hỏi. * Ví dụ 4: Nhập một xâu, viết ra màn hình các kí tự số của xâu đó. Program VD4; 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 (S1[i] >=0 and S1[i]<=9) then S2:=S2 + S1[i]; Writeln(S2); Readln; End. V. Củng cố Dặn dò. - Nhắc lại một số khái niệm mới. - Nhắc lại cấu trúc câu lệnh. - Ra BTVN. . trình, đàm thoại. IV. Tiến trình bài học và các hoạt động: 1. ổn định tổ chức: 1 2. Kiểm tra bài cũ: (Không kiểm tra bài cũ) 3. Bài mới: Tiết 29. * Hoạt động. ghi bài. - GV: Vừa giảng bài vừa hỏi HS về các câu lệnh có liên quan đến bài. Và hỏi thêm ý tởng thuật toán của các HS. - HS: Chú ý nghe giảng, ghi bài,