Ngày soạn: 12/12/2008 Ngày dạy:……/…… /……… Tiết 28 KIỂU DỮ LIỆU XÂU I. Mục tiêu *Kiến thức : - Biết xâu là một dãy kí tự (có thể coi xâu là mảng 1 chiều). - Biết cách khai báo xâu, truy cập phần tử của xâu. *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. *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 như: xem xét gảii quyết vấn đề một cách cẩn thận, chu đáo, có sáng tạo, không thỏa mãn với kết quả ban đầu đạt được,…… II) Phương pháp. - Đặt và giải quyết vấn đề. III) Phương tiện. - GV: SGK, SGV, sách tham khảo. - HS: Sgk, vở ghi. IV) Hoạt động dạy và học. 1. Ổn định tổ chức lớp. 2. Kiểm tra bài cũ: Cú pháp khai báo mảng một chiều, mảng 2 chiều? Cho ví dụ. 3. TiÕn tr×nh d¹y häc: HOẠT ĐỘNG GV HOẠT ĐỘNG HS NỘI DUNG -Để viết chương trình nhập họ tên của 30 hs trong lớp, ta sẽ chọn kiểu dữ liệu nào? Khai báo khai báo như thế nào? -Có những khó khăn nào gặp phải? -Do vậy ngôn ngữ lập trình có một kiểu dữ liệu mới cho phép ta nhập/xuất dữ liệu cho xâu bằng một lệnh. -Giới thiệu một số khái niệm có liên quan về xâu (chuỗi). -Khai báo kiểu mảng một chiều gồm 30 kí tự. -Chương trình viết dài dòng. Khi nhập dữ liệu phải gõ nhiều phím. -Học sinh chú ý lắng nghe. §12. KIỂU DỮ LIỆ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ự gọi là một phần tử của xâu- Số lượng kí 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 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 được đánh chỉ số là 1 Ho ạ t động 1 : Khai báo biến xâu: -Yêu cầu học sinh tìm hiểu khai báo biến xâu trong ngôn ngữ Pascal. -Ý nghóa của từ String,[n] là gì? -Yêu cầu học sinh cho ví dụ -Nếu không có [n] thì số lượng tối đa là bao nhiêu? -Số lượng kí tự trong xâu là gì? -Độ dài của xâu có tính khoảng trắng không? -Hằng kí tự được viết như thế nào? -Xâu chỉ gồm một kí tự trống được viết như thế nào? Chiều dài là bao nhiêu? -Xâu rỗng được viết như thế nào? Chiều dài? Ho ạ t động 2 : Các thao tác xử lý xâu -Giới thiệu lệnh nhập xuất dữ liệu cho biến xâu trong ngôn ngữ Pascal. -Yêu cầu học sinh xem sách giáo khoa về phép ghép xâu, các phép so sánh. -Giải thích kỹ phép so sánh hai xâu với nhau. -Học sinh xem cấu trúc khai báo biến xâu SGK. -String là tên kiểu xâu, [n] là gí trò qui đònh số lượng kí tự tối đa mà biến xâu có thể chứa -Học sinh cho ví dụ -Số kí tự tối đa là 255 -Là độ dài của xâu -Có tính khoảng trắng -Hằng kí tự được viết trong cặp dấu nháy đơn. -Được viết: ‘ ‘, có chiều dài là 1 -Được viết: ‘‘, có chiều dài là 0. -Học sinh chú ý theo dõi - Học sinh dọc sách giáo khoa. -Học sinh chú ý theo dõi. -Học sinh so sánh - Trong ngôn ngữ Pascal, tham chiếu tới phần tử thøng được viết <tên biến xâu>[chỉ số] Cách khai báo và sử lí câu trong ngôn ngữ Pascal: 1. Khai báo biến xâu: - Pascal sử dụng khóa trong STRING để khai báo xâu. Độ dài tối đa của xâu được viết trong [ ] sau từ khóa STRING. Khai báo như sau: Var <tên biến>: String [Độ dài tối đa của xâu]; * Ví dụ: Var Ten: String [10]; Họ_dem: String [50]; Que_quan: String; Chú ý: - Nếu không khái báo độ dài tối đa cho xâu kí tự thì độ dài ngầm đònh cho xâu là 255. - Độ dài lớn nhất của xâu là 255 kí tự. - Hằng xâu kí tự được đặt trong cặp nháy đơn (‘’). 2. Các thao tác xử lý xâu: - Với các xâu kí tự có các phép ghép xâu và phép so sánh hai xâu kí tự. + Phép ghép xâu: Kí hiệu bằng dấu +. Ví dụ: ‘Ha’ + ‘Noi’ cho kết quả là ‘HaNoi’. + Phép so sánh: <, <=, >, >=, =, <>. Pascal tự động so sánh -Cho biết hai xâu sau đây xâu nào lớn hơn: ‘abcdsagg’ và ‘abcdasgfgsfs’ -Giới thiệu một số thủ tục , hàm chuẩn dùng để xử lí xâu. -Giới thiệu một số thủ tục , hàm chuẩn dùng để xử lí xâu. -Học sinh chú ý lắng nghe và theo dõi trong SGK trang 70 -Học sinh chú ý lắng nghe và theo dõi trong SGK trang 70 lần lượt các kí tự từ trái sang phải. Ví dụ: ‘AB’ < ’AC’ ; ‘ABC’ > ‘ABB’ ; ’ABC’ < ’ABCD’. Một thủ tục chuẩn dùng để xử lí xâu: Delete (St: String; vt, n: Integer); xóa n kí tự của xâu St, bắt đầu từ vò trí vt. Insert (S1 , S2: String; vt: Integer); Chèn xâu S1 vào xâu S2 bắt đầu từ vò trí vt của S2. Val (St:String;m:Integer;x:Intege r or real); Đổi xâu kí số St thành số. Nếu không đổi được thì vò trí gây lỗi được lưu trong biến m, nếu đổi thành công thì m = 0 và giá trò xâu kí số lưu trong biến x. Str (x : Integer; St : String); Chuyển số x thành xâu kí tự tương ứng và lưu trong biến St. Một số hàm chuẩn: Copy (St : String ; vt , n : Integer) : String; Sao chép từ xâu St n kí tự từ vò trí vt. Pos (S1 , S2 : String) : Integer; trả về vò trí xuất hiện đầu tiên của xâu S1 trong xâu S2. Length (St : String) : Integer; Độ dài thực của xâu St. Upcase (ch : Char) : Char; Trả về chữ cái hoa tương ứng với chữ cái thường ch (Giữ nguyên nếu ch không phải chữ cái thường). Chr (x : Byte) : Char; Trả về kí tự vò trí x trong bảng mã ASCII Ord (ch : Char) : Byte; Trả về vò trí kí tự ch trong bảng mã ASCII. 3. Củng cố : - Cú pháp khai báo biến xâu. - Nhập xuất dữ liệu kiểu xâu. 4. Dặn dò : + Xem lại bài + Chuẩn bò bài tiếp các ví dụ. . ASCII - Mỗi kí tự gọi là một phần tử của xâu - Số lượng kí 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. dạy:……/……../……… Tiết 28 KIỂU DỮ LIỆU XÂU I. Mục tiêu *Kiến thức : - Biết xâu là một dãy kí tự (có thể coi xâu là mảng 1 chiều). - Biết cách khai báo xâu, truy