I. MỤC TIÊU BÀI HỌC:
1. Kiến thức:
• Biết được nguyên nhân tại sao sinh ra kiểu sữ liệu xâu
• Phân biệt được sự giống và khác giữa kiểu mảng các ký tự với xâu.
• Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng ký tự của xâu.
• Biết các phép toán, thủ tục và hàm thông dụng liên quan đến xâu.
2. Kĩ năng:
• Nhận biết được trường hợp nào cần sử dụng kiểu xâu.
• Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal.
• Nhận biết được biến xâu và các phép toán xử lí trên xâu.
GIÁO ÁN GIẢNG DẠY Người soạn: Nguyễn Thị Hòa Ngày soạn: 02/03/2010 Giáo viên hướng dẫn: Hồ Ngọc Phụng. Ngày dạy: 04/03/2010 Lớp: 11B6 Tiết 28 §12. KIỂU XÂU (Tiết 1) I. MỤC TIÊU BÀI HỌC: Kiến thức: Biết được nguyên nhân tại sao sinh ra kiểu sữ liệu xâu Phân biệt được sự giống và khác giữa kiểu mảng các ký tự với xâu. Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng ký tự của xâu. Biết các phép toán, thủ tục và hàm thông dụng liên quan đến xâu. Kĩ năng: Nhận biết được trường hợp nào cần sử dụng kiểu xâu. Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal. Nhận biết được biến xâu và các phép toán xử lí trên xâu. Thái độ: Ham thích môn học, có tính kỷ luật cao. 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 vấn đề một cách cẩn thận, chu đáo, sáng tạo. II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC: Phương pháp: Giải quyết vấn đề, thuyết trình, diễn giảng, vấn đáp. Phương tiện: Bảng Chuẩn bị Giáo viên : Giáo án, sách giáo viên, tài liệu tham khảo Học sinh: Vở ghi chép, sách giáo khoa. III. TIẾN TRÌNH LÊN LỚP Ổn định tổ chức lớp (1’) Nắm sĩ số: Vắng: Ổn định trật tự, tạo tâm lý tốt để bắt đầu tiết học. Kiểm tra bài cũ. (5’) - Hỏi: 1. Hãy cho biết mảng một chiều là gì? 2. Em hãy khai báo biến mảng 1 chiều có tên Hoten gồm 30 kí tự? Trả lời: 1. Nêu định nghĩa mảng một chiều 2. - Var Hoten : array[1..30] of char; - Type Mang_ht =array[1..30] of char; Var Hoten: Mang_ht; - Nhận xét và cho điểm.( Có thể mời học sinh khác nhận xét) Nội dung bài mới. TG HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG Hoạt động 1: Nguyên nhân sinh ra kiểu dữ liệu xâu (3’) - Dữ liệu trong các bài toán không chỉ thuộc kiểu số mà cả kiểu phi số - dạng kí tự Cho ví dụ : Viết chương trình nhập họ tên của 30 học sinh trong lớp, cho biết tên bạn nào dài nhất. Với các kiểu dữ liệu em đã học, làm thế nào để lưu trữ họ tên của học sinh? Var Hoten: array[1..30] of char; Hoten 1 2 .. 30 Vấn đề đặt ra là khi số lượng phần tử của mảng bằng 30 kí tự, mà mỗi lần nhập chỉ được 1 kí tự, thì số lần nhập là bao nhiêu? - Có những khó khăn nào gặp phải? => Nhận xét và kết luận: Chúng ta có thể dùng mảng một chiều với kiểu phần tử là kiểu char để lưu họ tên của học sinh, tuy nhiên sẽ gặp rất nhiều khó khăn khi thao tác trên mảng đó như: nhập, xuất(phải dùng vòng lặp for và phải Enter nhiều lần khi nhập từ bàn phím). - Do vậy, để giải quyết khó khăn đó, 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 một dãy kí tự bằng một lệnh đó là kiểu xâu. - Vậy xâu là gì? Khai báo ra sao?... Chúng ta sẽ tìm hiểu bài 12. kiểu xâu. Chú ý theo dõi - Dùng mảng một chiều với kiểu phần tử là kiểu char. - 30 - 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. Tiết 28. KIỂU XÂU. Hoạt động 2: Tìm hiểu về kiểu xâu. 5’ 3’ 3’ Cho một số dãy kí tự ví dụ như: ‘Le Van Anh’; ‘12345’=> khái niệm. +> Đưa và giải thích về khái niệm. +>Nhắc lại: Kí tự bao gồm các chữ cái thường và hoa như a, b, c, ..., z, A, B, C, .., Z, các chữ số thập phân 0, 1, 2, .., 9 và một số kí tự khác như các phép toán +> Dựa vào khái niệm và các ví dụ trên, em nào hãy cho cô 1 ví dụ khác? - Hỏi: Xâu có bao nhiêu kí tự? - Hỏi: Xâu chỉ gồm một kí tự trắng được viết như thế nào? Độ dài xâu bằng bao nhiêu? - Hỏi: Xâu rỗng được viết như thế nào? Độ dài xâu bằng bao nhiêu ? - Để khai báo biến có kiểu dữ liệu xâu ta sử dụng tên dành riêng STRING, tiếp theo là độ dài lớn nhất của xâu(<=255), được ghi trong cặp dấu []. Theo cú pháp như sau: - Nêu và giải thích về cách khai báo biến kiểu xâu. * Cho ví dụ: - Yêu cầu học sinh cho ví dụ? Hỏi: Khi khai báo không có[n] thì số lượng kí tự tối đa là bao nhiêu? - Giới thiệu cấu trúc chung. - Yêu cầu học sinh tìm một ví dụ. - Hỏi: Có gì giống và khác nhau so với cách tham chiếu đến từng phần tử của mảng. Hoten[2]=? Hoten[3]=? - Chú ý theo dõi - Lấy ví dụ - Trả lời. - Kí hiệu của xâu gồm một kí tự trắng là ‘ ’. Xâu này có độ dài là 1. - Kí hiệu của xâu rỗng là ‘’. Xâu này có độ dài là 0. - Số kí tự tối đa là 255. - Giống cấu trúc chung khi tham chiếu tên biến[chỉ số] ‘e’ ‘ ’ 1. Khái niệm - Xâu là một dãy kí tự trong bảng mã ASCII Ví dụ: ‘LỚP 11B6’ - Mỗi kí tự được 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 xâu Ví dụ: Xâu trên có 8 kí tự => Độ dài của xâu trên là 8. Chú ý: - Xâu kí tự được đặt trong cặp nháy đơn (‘’). - Xâu có tối đa 255 kí tự - Xâu không có kí tự nào được gọi là xâu rỗng. 2. Khai báo ² Cú pháp: Var : String[độ dài lớn nhất]; Trong đó: - String: Từ khóa khai báo kiểu xâu. * Ví dụ: Var Hoten: String [50]; Var Que_quan: String[60] Chú ý: - Trong mô tả xâu có thể bỏ qua phần khai báo độ dài. Ví dụ: Que_quan: String; - Nếu không khai báo độ dài tối đa cho xâu kí tự thì độ dài ngầm định cho xâu là 255. ² Tham chiếu đến phần tử của xâu: Có thể xem xâu là mảng 1 chiều - Cách tham chiếu tới phần tử của xâu giống kiểu mảng Tên biến[chỉ số]. Ví dụ: Hoten:= ‘Le Anh’ Ví dụ: Hoten[5]= ‘n’; Hoạt động 3: Tìm hiểu các thao tác xử lí xâu. 2’ 5’ 5’ 10’ +>Tìm hiểu chức năng của một số phép toán trong kiểu xâu qua một số ví dụ. - Phép ghép xâu: Kí hiệu phép cộng - Sử dụng để ghép nhiều xâu thành một xâu. - Thực chất phép ghép xâu là viết tiếp xâu sau dấu cộng vào cuối xâu trước dấu cộng. - Nếu xâu sau khi ghép có nhiều hơn 255 kí tự => báo lỗi +> Lấy ví dụ - So sánh xâu: - Thực hiện so sánh các cặp kí tự từ trái sang phải theo quy tắc sau: - Nêu các qui tắc so sánh. - Nhắc lại các mã thập phân của các kí tự trong bảng mã ASCII. - A(65) è Z(90) - a(97) è z(122). - ‘0’ (48) è ‘9’(57) - Cho các ví dụ cụ thể và hỏi HS trả lời. Ví dụ: ‘Lop 11B6’ ? ‘Lop 11B5’ Lan ? Lam Lưu ý : Một xâu có độ dài nhỏ hơn có thể lớn hơn (>) xâu có độ dài lớn. Ví dụ: ‘AC’ < ‘ABC’ Giới thiệu cấu trúc chung của các thủ tục và lấy ví dụ minh họa. - Với ví dụ trên sẽ cho ta kết quả như thế nào? - Bạn nào cho cô biết, với ví dụ trên sau khi thực hiện lệnh Insert thì giá trị của xâu s2 thu được là gì? Giới thiệu cấu trúc chung của các hàm và lấy ví dụ minh họa - Với ví dụ trên sẽ cho ta kết quả như thế nào? - Lấy thêm ví dụ cho học sinh thực hiện. Chú ý theo dõi So sánh Chú ý theo dõi, chép bài ‘abef’ ‘Truong THPT Phong Dien’ - Chú ý theo dõi và trả lời câu hỏi. 3. Các thao tác xử lí xâu a. Phép ghép xâu: - Kí hiệu là dấu ( +) - Ghép nhiều xâu thành một xâu. Ví dụ: ‘Le Van’ + ‘ An’ èkết quả: ‘Le Van An’ b. Các phép so sánh xâu: +> Gồm các toán tử: =, , , =. Qui tắc: - A> B Kí tự khác nhau đầu tiên của xâu A có mã ASCII lớn hơn. Ví dụ: AC> AB; - A Nếu xâu A là đoạn đầu của xâu B ‘An’< ‘Anh’ - A=B Hai xâu A và B giống nhau hoàn toàn. Ví dụ: ‘Tin hoc’= ‘Tin hoc’; c) Các thủ tục: * Delete(s, vt, n): Xóa n kí tự bắt đầu từ vị trí vt trong xâu s. Ví dụ: s:= ‘abcdef’; Delete(s, 3, 2); Kết quả: s = ‘abef’ * Insert(s1, s2, vt): Để chèn xâu s1 vào xâu s2, bắt đầu ở vị trí vt. Ví dụ: s1 := ‘THPT ’ s2 := ‘Truong Phong Dien Insert(s1, s2, 8); Kết quả : s2 = ‘Truong THPT Phong Dien d) Các hàm: * Copy(S, vt, n): Để tạo xâu mới gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu S. Ví dụ: S := ‘Mon Tin Hoc’ S1 := Copy(S, 5, 3); Kết quả : S1=‘Tin’ * length(S): Cho giá trị là độ dài xâu S. Ví dụ : S := ‘Thua Thien Hue’; N := length(S); Kết quả : N = 14. * Pos(s1, s2): Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2. Ví dụ: s1 := ‘bc’ s2 := ‘abcdef’ Vt := Pos(s1, s2); Kết quả : Vt = 2. * upcase(ch): Cho kí tự in hoa của kí tự thường ch Ví dụ: ch := ‘a’; upcase(ch); Kết quả : ‘A’. 4. Củng cố và bài tập về nhà. ( 2’) 1. Những nội dung đã học Khái niệm kiểu xâu Cách khai báo biến kiểu xâu. Các thao tác xử lí xâu: phép ghép xâu, phép so sánh xâu, các hàm và thủ tục. 2. Câu hỏi và bài tập về nhà - Xem trước nội dung phần ví dụ của SGK GIÁO VIÊN HƯỚNG DẪN SINH VIÊN THỰC TẬP HỒ NGỌC PHỤNG NGUYỄN THỊ HÒA
Tài liệu đính kèm: