I. MỤC TIÊU BÀI HỌC:
1. 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.
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 độ:
II. CHUẨN BỊ:
1. Tài liệu, bài tập: SGK, SGV.
2. Dụng cụ, thiết bị: Phòng máy vi tính.
III. TIẾN TRÌNH LÊN LỚP:
1. Ổ định, tổ chức lớp: CBL báo cáo sĩ số.
2. Kiểm tra bài cũ: Không.
3. Bài giảng:
Ngày soạn: 26/01/2008. Bài: §12. KIỂU XÂU (Tiết PPCT: 25) I. MỤC TIÊU BÀI HỌC: 1. 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. 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 độ: II. CHUẨN BỊ: 1. Tài liệu, bài tập: SGK, SGV. 2. Dụng cụ, thiết bị: Phòng máy vi tính. III. TIẾN TRÌNH LÊN LỚP: 1. Ổ định, tổ chức lớp: CBL báo cáo sĩ số. 2. Kiểm tra bài cũ: Không. 3. Bài giảng: Hoạt động của Thầy và Trò Nội dung ghi bảng Hoạt động 1: -Nội dungHĐ: Tìm hiểu về Xâu và cách sử dụng. -Mục tiêu: HS biết được ý nghĩa của xâu, biết được khái niệm của xâu. Biết khai báo biến xâu, nhập/xuất dữ liệu cho biến xâu và tham chiếu đến từng phần tử trong xâu. -Các bước tiến hành: GV dẫn dắt: Để lưu Họ và tên của HS có tên là ‘Nguyen Van A’ thì ta chọn kiểu dữ liệu như thế nào? Khai báo biến như thế nào? HS: Kiểu mảng một chiều gồm 20 kí tự. Khai báo một biến mảng A để lưu để lưu họ và tên của HS. GV: Yêu cầu HS viết đọan chương trình để nhập/xuất dữ liệu cho từng phần tử. HS: readln(A[1]); readln(A[2]); readln(A[3]); readln(A[4]); . . . GV: Đoạn chương trình trên có những khó khăn gì? HS: Dài dòng; Khi nhập dữ liệu phải thực hiện gõ nhiều phím. GV dẫn dắt: Để khắc phục những khó khăn trên, cần có một kiểu dữ liệu mới cho phép nhập/xuất dữ liệu cho dãy kí tự bằng một lệnh. Đó là Kiểu xâu. HS: Chú ý lắng nghe. GV: Yêu cầu HS tham khảo SGK để tìm hiểu về kiểu xâu. HS: Nghiên cứu SGK để trả lời các câu hỏi của GV. GV: Trong phần khai báo, từ khóa STRING có ý nghĩa gì? HS: Từ khóa STRING là tên kiểu xâu. GV: biến HoTen có độ dài tối đa là bao nhiêu? HS: là 26. GV: Khi khai báo không có [độ dài lớn nhất của xâu] thì độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là bao nhiêu? HS: là 255. Hoạt động 2: -Nội dungHĐ: Tìm hiểu các phép toán liên quan đến xâu. -Mục tiêu: HS biết các phép toán liên quan đến xâu. Diễn đạt dược các phép toán đó trong NNLT Pascal. -Các bước tiến hành: GV cho VD chương trình đơn giản: Var s : String; Begin s := ‘Ha’ + ‘Noi’; Write(s); End. GV: Chương trình trên cho kết quả? HS: s = ‘Ha Noi’. GV: Chứ năng của phép cộng? HS: Là phép toán nối xâu thừ hai vào cuối xâu thứ nhất. GV cho VD chương trình đơn giản: Var kq : boolean; Begin kq := ‘AB’ < ‘AC’; Write(kq); End. GV: Chương trình trên cho kết quả? HS: kq = TRUE. GV: Chứ năng của phép so sánh? HS: Là việc thực hiện so sánh hai xâu với nhau. 1/ Tìm hiểu kiểu xâu : VD : Các xâu kí tự đơn giản : ‘Ha Noi’ ; ‘2008 la nam Mau ty’ ; . . . *KN: -Xâu là dãy 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 không gọi là xâu rỗng. Kí hiệu của xâu rỗng là ‘ ‘. *Các NNLT đều có quy tắc, cách thức cho phép xác định kiểu xâu : +Tên kiểu xâu ; +Cách khai báo biến kiểu xâu ; +Số lượng kí tự của xâ ; +Các phép tóan thao tác với xâu ; +Cách tham chiếu đến phần tử của xâu. Ta có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự. Các kí tự của xâu được đánh số thứ tự, thường bắt đầu từ 1. *Tham chiếu tới phần tử của xâu : tên_biến_xâu[chỉ_số] VD : Biến HoTen lưu giá trị hằng xâu ‘Nguyen Van A’. HoTen[3] cho kí tự ‘u’ là kí tự thứ 3 của biến xâu HoTen ; HoTen[7] cho kí tự ‘ ’ là kí tự thứ 7 của biến xâu HoTen. *Khai báo: Var : STRING[độ dài lớn nhất của xâu]; VD : var HoTen : STRING[26] ; Biến HoTen có độ dài tối đa là 26. Khi khai báo không có [độ dài lớn nhất của xâu] thì độ dài lớn nhất của xâu ngầm định là 255. VD: var GhiChu: STRING; Biến GhiChu có độ dài tối đa là 255. 2/ Các thao tác xử lí xâu: a/ Phép ghép xâu: kí hiệu(+). -Được sử dụng để ghép nhiều xâu thành một xâu. VD: ‘Ha’ + ‘Noi’ Xâu kết quả là: ‘Ha Noi’ -Có thể thực hiện phép ghép xâu đối với các hằng và biến xâu. VD: var s : string; s := ‘Ha Noi’; s + ‘-‘ + ‘Viet Nam’ Xâu kết quả là: ‘Ha Noi – Viet Nam’ *Lưu ý: Xâu kết quả có độ dài tối đa là 255. Nếu quá trình ghép xâu vượt quá 255 thì phần sau bị cắt bỏ. b/ Phép so sánh: (=, , , =) So sánh hai xâu với nhau theo quy tắc: -Xâu A 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 phải trong xâu A có mã ASCII lớn hơn VD: ‘Ab’ > ‘AB’ -Nếu xâu A và xâu B có độ dài khác nhau và A là đọan đầu của B thì A nhỏ hơn B. VD: ‘abc’ < ‘abcdef’ 4.Tổng kết nội dung, đánh giá cuối bài: -Khai báo biến: VAR ten_bien: STRING[độ dài lớn nhất của xâu]; -Tham chiếu đến từng phần tử trong xâu: tên_biến[chỉ sô]. -Phép ghép xâu; các phép so sánh. 5.Dặn dò, kế hoạch học tập tiết sau: Xem phần kiến thức lí thuyết còn lại trong bài. IV. NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM: Ngày soạn: 26/01/2008. Bài: §12. KIỂU XÂU (Tiết PPCT: 26) III. TIẾN TRÌNH LÊN LỚP: 1. Ổ định, tổ chức lớp: CBL báo cáo sĩ số. 2. Kiểm tra bài cũ: Khai báo biến A, B thuộc kiểu xâu, cho VD xâu A > xâu B. 3. Bài giảng: Hoạt động của Thầy và Trò Nội dung ghi bảng Hoạt động 1: -Nội dungHĐ: Tìm hiểu về một số hàm và thủ tục chuẩn liên quan đến xâu trong NNLT Pascal. -Mục tiêu: HS biết một số hàm và thủ tục chuẩn liên quan đến xâu, Nắm được cấu trúc chung, hiểu được các tham số của hàm và thủ tục. Biết được chức năng của các hàm và thủ tục. -Các bước tiến hành: GV: Giới thiệu cấu trúc chung của thủ tục Delete(st, vt, n). HS: Cho biết ý nghĩa của Delete và các tham số st, vt, n. GV Viết chương trình VD: Var st:string; Begin St:=’abcdef’; Delete(st, 4, 2); Write(st) End. HS: Cho biết kết quả của chương trình. GV: Giới thiệu cấu trúc chung của thủ tục Insert(st1, st2, vt). HS: Nghe, sau đó cho ví dụ. GV Viết chương trình VD: Var st1, st2:string; Begin St1:=’xy’; St2:= ‘abcdef’; Insert(st1, st2, 4); Write(st2) End. HS: Cho biết kết quả của chương trình. GV: Giới thiệu cấu trúc chung của hàm Copy(st, vt, n). HS: Nghe, sau đó cho ví dụ. GV Viết chương trình VD: Var st, kq:string; Begin St:= ‘abcdefgh’; kq:= Copy(st, 2, 5); Write(kq) End. HS: Cho biết kết quả của chương trình. GV: Giới thiệu cấu trúc chung của hàm Length(st). HS: Nghe, sau đó cho ví dụ. GV Viết chương trình VD: Var st :string; Begin St:= ‘abcdefgh’; Write(Length(st)); End. HS: Cho biết kết quả của chương trình. GV: Giới thiệu cấu trúc chung của hàm Pos(st1, st2). HS: Nghe, sau đó cho ví dụ. GV Viết chương trình VD: Var st2 :string; vt1, vt2 : byte; Begin st2:= ‘abcdefgh’; vt1:= Pos(‘bcd’, st2); vt2:= Pos(‘xy’, st2); Write(vt1, vt2); End. HS: Cho biết kết quả của chương trình. GV: Giới thiệu cấu trúc chung của hàm Pos(st1, st2). HS: Nghe, sau đó cho ví dụ. GV Viết chương trình VD: Var ch :char; Begin ch:= ‘a’; Write(Upcase(ch)); End. HS: Cho biết kết quả của chương trình. Hoạt động 2: -Nội dungHĐ: Rèn luyện kĩ năng vận dụng hàm và thủ tục chuẩn liên quan đến xâu trong NNLT Pascal. -Mục tiêu: HS biết sử dụng hàm và thủ tục để giải quyết một số bài tóan. -Các bước tiến hành: GV: Hướng dẫn HS làm một số VD trong SGK. VD1: (SGK tr 71) GV: Cho HS đọc nội dung của VD và xác định bài toán. HS: Đưa ra Input, Output của bài tóan. GV: Hướng dẫn HS viết chương trình. HS: Thực hiện. VD2: (SGK tr 71) GV: Cho HS đọc nội dung của VD và xác định bài toán. HS: Đưa ra Input, Output của bài tóan. GV: Hướng dẫn HS viết chương trình. HS: Thực hiện. VD3: (SGK tr 72) GV: Cho HS đọc nội dung của VD và xác định bài toán. HS: Đưa ra Input, Output của bài tóan. GV: Hướng dẫn HS viết chương trình. HS: Thực hiện. 2/ các thao tác xử lí xâu: (tt) c/ Thủ tục DELETE(st, vt, n) Xóa trong biến xâu st, xóa n kí tự bắt đầu từ vị trí vt. VD: st := ‘abcdef’ Delete(st, 4, 2); kết quả st := ‘abcf’ d/ Thủ tục INSERT(st1, st2, vt) Chèn xâu st1 vào xâu st2, bắt đầu ở vị trí vt. VD: st1:=‘xy’; st2 := ‘abcdef’; Insert(st1, st2, 4); kết quả st2:= ‘abcxydef’ e/ Hàm COPY(st, vt, n) Tạo một xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt trong xâu st. VD: st:= ‘abcdefgh’; Copy(st, 2, 5); cho kết quả: ‘bcdef’ f/ Hàm LENGTH(st) Cho giá trị là độ dài xâu st. VD: st:= ‘abcdefgh’ Length(st); cho giá trị là 8. g/ Hàm POS(st1,st2) -Cho giá trị là vị trí xuất hiện đầu tiên của xâu st1 trong xâu st2. -Nếu xâu st1 không có trong xâu st2 thì cho giá trị 0. VD: st2:= ‘abcdefgh’; Pos(‘bcd’, st2); cho giá trị là 2 Pos(‘xy’, st2); cho giá trị là 0. h/ Hàm UPCASE(ch) Cho chữ cái in hoa ứng với chữ cái trong ch. VD: ch:= ‘a’ Upcase(ch); cho kết quả là ‘A’ 3/Một số ví dụ: VD1: SGK tr 71 Var a, b : string; Begin Write(‘Nhap ho ten thu nhat: ’); readln(a); Write(‘Nhap ho ten thu hai: ’); readln(b); If length(a) > length(b) then write(a) Else write(b); Readln End. VD2: SGK tr 71 Var a, b : string; x: byte; Begin Write(‘Nhap xau thu nhat: ’); readln(a); Write(‘Nhap xau thu hai: ’); readln(b); x:= length(b); If a[1] = b[x] then write(‘Trung nhau’) Else write(‘Khac nhau’); Readln End. VD3: SGK tr 72 Var a : string; i, k: byte; Begin Write(‘Nhap xau: ’); readln(a); k:= length(a); for i:= k downto 1 do write(a[i]); Readln End. 4.Tổng kết nội dung, đánh giá cuối bài: -Thủ tục: Delete(st,vt,n); Insert(st1, st2, vt). -Hàm: Copy(st, vt, n); Length(st); Pos(st1, st2); Upcase(ch). 5.Dặn dò, kế hoạch học tập tiết sau: -Học bài và làm bài số 10 SGK tr.80. -Xem trước nội dung bài tập thực hành số 5 IV. NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM:
Tài liệu đính kèm: