Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC Bài 12: KIỂU XÂU Số tiết: 02 I. Mục tiêu : a. Về kiến thức: • Biết xâu là một dãy kí tự (có thể coi xâu là mảng một chiều). • Biết cách khai báo xâu, truy cập phần tử của xâu. • 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. b. Về kỹ năng: • Khai báo kiểu xâu. • So sánh hai xâu. • Nhận biết và bước đầu sử dụng được các hàm, thủ tục chuẩn nói trên. II. Chuẩn bị : • Giáo viên: giáo án bài học, dụng cụ giảng dạy, các hình mẫu minh họa trực quan. • Học sinh: Học bài cũ, xem và chuẩn bị bài mới. * Các phương pháp sử dụng trong bài: • Gv sử dụng phương pháp thuyết trình kết hợp với vấn đáp gợi mở để học sinh tham gia tích cực vào việc học. III. Tiến trình thực hiện giờ dạy: - Ổn định lớp - Kiểm tra bài cũ: (không) - Tiến trình dạy học: Hoạt động của thầy và trò Nội dung T.gian Hoạt động 1: Đặt vấn đề: - Gv: Dữ liệu trong các bài toán ngoài kiểu số, ta còn có kiểu phi số. Kiểu phi số là dạng các kí tự. Để lưu trữ và xử lí một dãy các kí tự, ta sử dụng kiểu dữ liệu đó là kiểu xâu. Ta vào bài 12: Kiểu xâu 2 phút Tiết 1 Họat động 2: Vào nội dung bài - Gv: Các kí tự trong xâu là những kí tự trong bộ mã nào? - Hs: Trả lời - Gv: Mỗi kí tự sẽ được coi là một phần tử của xâu - Gv: Trong một xâu có bao nhiêu kí tự thì sẽ biết được? - Hs: Trả lời - Gv: Xâu có độ dài bằng 0 gọi là xâu Bài 12: KIỂU XÂU * Một số khái niệm: - Xâu là dãy các kí tự trong bộ mã ASCII - Mỗi kí tự được gọi là một phần tử của xâu - Số lượng kí tự trong một xâu được gọi là độ dài của xâu - Xâu có độ dài bằng 0 gọi là xâu rỗng - Để tham chiếu tới phần tử của xâu được xác định bởi: <tên biến xâu>[chỉ số] 10 phút 1 Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân gì? - Hs: Trả lời - Gv: Để tham chiếu tới phần tử của xâu ta sẽ xác định bằng cách nào? - Hs: Trả lời - Gv: Để khai báo kiểu dữ liệu xâu ta sử dụng từ khóa nào? - Hs: Trả lời - Gv: Cú pháp để khai báo kiểu xâu là gì? - Hs: Trả lời - Gv: Có thể bỏ qua phần khai báo độ dài được không? - Hs: Trả lời - Gv: Lúc đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là bao nhiêu? - Hs: Trả lời - Gv: Để xử lí xâu, ta có một số thao tác như ghép xâu, so sánh,… - Gv: Để ghép xâu ta sẽ sử dụng phép ghép xâu, đó là phép nào? - Hs: Trả lời - Gv: Cho ví dụ sau đó gọi học sinh đưa ra thêm một số ví dụ - Hs: Trả lời - Gv: Các phép so sánh gồm những phép nào? - Hs: Trả lời - Gv: Các phép so sánh có thứ tự ưu tiên như thế nào so với phép ghép xâu - Hs: Trả lời - Gv: Để so sánh hai xâu ta sẽ thực hiện theo các quy tắc nào? - Hs: Trả lời - Gv: Giải thích từng quy tắc, cho ví dụ cho học sinh hiểu. Sau đó đưa ví dụ và cho học sinh xét để đưa ra kết quả - Hs: Trả lời 1. Khai báo: - Biến kiểu xâu có thể khai báo như sau: Var <tên biến>: string [độ dài lớn nhất của xâu]; Ví dụ: var Hoten: string [26]; - Trong khai báo biến kiểu xâu có thể bỏ qua phần khai báo độ dài, khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255. Ví dụ: var khachhang: string; 2. Các thao tác xử lí xâu: a/ Phép ghép xâu: (+) ví dụ: ‘Vung’ +’Tau’ + ’-’ + ‘Viet Nam’ kết quả là: ‘Vung Tau- Viet Nam’ b/ Các phép so sánh (=, <>, <, >, >=, <=) có thứ tự ưu tiên thực hiện thấp hơn phép ghép xâu và thực hiện việc so sánh hai xâu theo các quy tắc sau: • Xâu A Là lớn hơn xâu B nếu như kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn. Ví dụ: A= ‘Anh Hai’ B= ‘Anh Ba’ A > B • Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B Ví dụ: ‘Tin’ < ’Tin Hoc’ • Hai xâu được coi là bằng nhau nếu như chúng giống nhau hoàn toàn Ví dụ: ‘DA LAT’= ‘DA LAT’ 10 phút 25 phút 2 Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân - Gv: Để xử lí ta có thể sử dụng một số hàm và thủ tục - Gv: Giải thích các mục đích của mỗi thủ tục, sau đó cho ví dụ - Hs: Lắng nghe - Gv: Đưa thêm ví dụ và gọi học sinh làm c/ Một số hàm và thủ tục chuẩn: + Thủ tục Delete(st, vt, n): xóa n kí tự của biến xâu st bắt đầu từ vị trí vt Ví dụ: st= ‘abcdef’ Delete(st, 5, 2) KQ: ‘abcd’ + Thủ tục insert(s1, s2, vt): chèn xâu s1 vào xâu s2 bắt đầu ở vị trí vt Ví dụ: S1: ‘ PC ’ S2: ‘IBM468’ Insert(s1, s2, 4) KQ: ‘IBM PC 468’ + Hàm copy(S, vt, N): 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ụ: S: ’Bai hoc thu 9’ Copy(S, 9, 5) KQ: ‘thu 9’ + Hàm length(s) cho giá trị là độ dài xâu s Ví dụ: S: ’500 ki tu’ Length(s) KQ: 9 + Hàm Pos(s1, s2): Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2 Ví dụ: S2: ’abcdef’ Pos(‘cd’, s2) KQ: 3 + Hàm upcase(ch): cho chữ cái in hoa ứng với chữ cái trong ch Ví dụ: Upcase(d) KQ: ‘D’ Tiết 2: - Gv: Viết đề bài lên bảng, phân tích cho học sinh hiểu đề bài, sau đó gợi ý từng câu lệnh, từng bước và gọi học sinh lên bảng xây dựng chương trình cho bài toán. - Hs: Lắng nghe, theo dõi và xưng phong lên bảng - Gv: Viết đề bài lên bảng, phân tích 3. Một số ví dụ: a. Ví dụ 1: nhập họ tên của hai người vào hai biến xâu và đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau. Var a, b: string; Begin Write(‘nhap ho ten thư 1: ’); readln(a); Write(‘nhap ho ten thu 2: ’); readln(b); If length(a)> length(b) then write(a) Else write(b); Readln End. b. Ví dụ 2: nhập hai xâu từ bàn phím và 8 phút 8 phút 3 Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân cho học sinh hiểu đề bài, sau đó gợi ý từng câu lệnh, từng bước và gọi học sinh lên bảng xây dựng chương trình cho bài toán. - Hs: Lắng nghe, theo dõi và xưng phong lên bảng - Gv: Viết đề bài lên bảng, phân tích cho học sinh hiểu đề bài, sau đó gợi ý từng câu lệnh, từng bước và gọi học sinh lên bảng xây dựng chương trình cho bài toán. - Hs: Lắng nghe, theo dõi và xưng phong lên bảng - Gv: Viết đề bài lên bảng, phân tích cho học sinh hiểu đề bài, sau đó gợi ý từng câu lệnh, từng bước và gọi học sinh lên bảng xây dựng chương trình cho bài toán. - Hs: Lắng nghe, theo dõi và xưng phong lên bảng - Gv: Viết đề bài lên bảng, phân tích cho học sinh hiểu đề bài, sau đó gợi ý từng câu lệnh, từng bước và gọi học sinh lên bảng xây dựng chương trình cho bài toán. - Hs: Lắng nghe, theo dõi và xưng phong lên bảng kiểm tra 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 không var x: byte; a, b: string; 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. c. Ví dụ 3: nhập một xâu vào từ bàn phím và đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại var i, k: byte; a: string; begin write(‘nhap xau: ’); readln(a); k: length(a); for i:= k downto 1 do write(a[i]); readln end. d. Ví dụ 4: nhập một xâu vào từ bàn phím và đưa ra màn hình xâu thu được từ nó bởi việc loại bỏ các dấu cách (nếu có) 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(‘ket qua: ’,b); readln end. e. Ví dụ 5: nhập vào từ bàn phím xâu kí tự s1, tạo xâu s2 gồm tất cả các chữ số có trong s1 (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình program xulixau; var i: byte; s1, s2: string; begin write(‘nhap vao xau s1: ’); readln(s1); s2:=’’; 8 phút 8 phút 8 phút 4 Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân for i:= 1 to length(s1) do if (‘0’=< s1[i]) and (s1[i]>= ‘9’) then s2:= s2 + s1[i]; write(‘ket qua: ’,s2); readln end. IV. Củng cố- dặn dò : (3 phút) - Để khai báo kiểu xâu, ta khai báo như sau: + Var <tên biến>: string[độ dài lớn nhất của xâu]; + Var <tên biến>: string; - Để xử lí xâu ta có phép ghép xâu, các phép so sánh, một số hàm và thủ tục như: phép cộng, insert, delete, copy, length, pos,…. - Các em hãy học bài, ôn lại bài cũ và xem trước bài tập và thực hành 4. V. Rút kinh nghiệm sau khi dạy : Tắc Vân, Ngày 09 Tháng 02 năm 2009 Tuần 23, 24 Kí duyệt 5 . Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC Bài 12:. của xâu được xác định bởi: <tên biến xâu>[chỉ số] 10 phút 1 Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân gì? - Hs: Trả lời - Gv: Để tham chiếu tới phần. chúng giống nhau hoàn toàn Ví dụ: ‘DA LAT’= ‘DA LAT’ 10 phút 25 phút 2 Giáo án tin học- khối 11 Tiết 26, 27 Tuần 23, 24 Giáo viên: Trần Tuyết Trân - Gv: Để xử lí ta có thể sử dụng một số hàm