- 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 GV: Hãy cho một ví dụ về xâu và tử của xâu... cho biết độ dài của chúng..[r]
(1)Ngày soạn: 16/02/2012 PPCT : Tiết 29 Bài 12: KIỂU XÂU (Tiết 1) A Mục đích, yêu cầu Về kiến thức - Học sinh nắm xâu là dãy kí tự (có thể coi xâu là mảng chiều) - Phân biệt giống và khác kiểu mảng kí tự với xâu kí tự - Biết cách khai báo xâu, truy cập phần tử xâu Phần minh hoạ với Pascal, học sinh cần nắm được: - Cách khai báo (hay định nghĩa) kiểu xâu Khi khai báo cần xác định độ dài tối đa xâu (nhỏ độ dài cho phép là 255) - Có thể thực các thao tác nhập, xuất hay xử lý ký tự xâu Về tư tưởng, tình cảm - Làm cho học sinh ngày càng yêu thích môn lập trình và hứng thú với môn học B Phương pháp, phương tiện Phương pháp - Kết hợp các phương pháp giảng day thuyết trình, vấn đáp, thảo luận trên lớp, hoạt động theo nhóm, dùng phương tiện trực quan, Phương tiện Chuẩn bị giáo viên: Bảng đen, phấn, máy tính, máy chiếu (nếu có) Sách giáo khoa Tin học 11 Giáo án Chuẩn bị học sinh: (2) Sách giáo khoa Tin học 11 Vở ghi lý thuyết Các sách tham khảo ngôn ngữ lập trình Pascal (nếu có) C Tiến Trình lên lớp, nội dung bài giảng I Ổn định lớp (2’) - Ổn định lớp - Yêu cầu lớp trưởng báo cáo sĩ số II Kiểm tra bài cũ và gợi động (5’) Kiểm tra bài cũ Giáo viên nêu các câu hỏi, gọi học sinh trả lời, đánh giá, cho điểm: Câu hỏi 1: Mảng chiều là gì? Nêu cách khai báo biến tổng quát mảng chiều Trả lời: Mảng chiều là dãy hữu hạn các phần tử cùng kiểu Khai báo: + Cách 1: Khai báo trực tiếp Var <tên biến mảng>:array[kiểu số] of <kiểu phần tử>; + Cách 2: Khai báo gián tiếp Type <tên kiểu mảng>=array[kiểu số] of <kiểu phần tử>; Var <tên biến mảng> : <tên kiểu mảng>; Câu hỏi 2: Khai báo mảng chiều với tên là Hoten, mảng có 30 phần tử, thuộc kiểu char Trả lời: + Cách 1: Var Hoten: array[1 30] of char; + Cách 2: Type A=array[1 30] of char; Var Hoten: A; Gợi động cơ: (3) Với câu hỏi 2, ta có: Hoten: Array [1 30] of char; Khi ta nhập vào N=15; For i:=1 to N Begin Write (‘Nhap phan tu thu ‘,i,’=’); Readln(Hoten[i]); End; Khi chương trình thực thao tác nhập Hoten thì việc nhập lặp lặp lại 15 lần Như trường hợp này ta không nên dùng kiểu mảng chiều vì nó thời gian mà lại không hiệu Để khắc phục tình trạng này, ngôn ngữ lập trình Pascal có kiểu liệu có cấu trúc khác cho phép ta nhập/ xuất liệu cho xâu lệnh Để hiểu rõ thì hôm chúng ta cùng nghiên cứu bài "Kiểu xâu" III Nội dung bài giảng Nội dung Hoạt động thầy và trò Thời Khái niệm liệu kiểu xâu: GV: Thuyết trình và cho ví dụ gian 10' - Dữ liệu kiểu xâu là dãy các kí tự, minh hoạ đặt dấu nháy đơn (' và ') Các xâu đơn giản: 'Le Trung Dinh' HS: Trật tự nghe giảng và ghi bài 'TP Quang Ngai' đầy đủ - Xâu là dãy các kí tự mã ASCII, kí tự gọi là phần GV: Hãy cho ví dụ xâu và tử xâu cho biết độ dài chúng - Số lượng kí tự xâu gọi là độ dài xâu - Xâu có độ dài là xâu rỗng Kí HS: Suy nghĩ câu trả lời, tham gia xây dựng bài (4) hiệu xâu rỗng ngôn ngữ lập trình GV: Xét ví dụ sau: Pascal: '' Ví dụ: Xâu 'Le Trung Dinh' có độ dài 13 A - Có thể xem xâu là mảng chiều L O P 1 B Có thể xem là mảng chiều mà phần tử là kí tự không? Vì sao? HS: Vận dụng kiến thức đã học để suy nghĩ trả lời GV: Chúng ta đã học cách tham chiếu đến phần tử mảng chiều, cách tham chiếu đến phần tử xâu có giống cách tham chiếu đến phần tử mảng chiều không? HS: Suy nghĩ và đưa câu trả lời GV: Cách tham chiếu giống Để hiểu rõ chúng ta tìm hiểu cách phần tham chiếu đến Tham chiếu tới phần tử xâu: phần tử xâu GV: Thuyết trình, cho ví dụ và - Tham chiếu tới phần tử xâu giải thích xác định tên biến xâu và số đặt cặp ngoặc [ và ], cụ thể <tên HS: Chú ý lắng nghe, ghi bài đầy biến xâu>[chỉ số] đủ Ví dụ: Giả sử biến Lop lưu trữ giá trị GV: Trong phút, nhóm cho xâu 'LOP 11B1' thì Lop[7] cho ta ví dụ, sau đó xác định độ dài 8' (5) kí tự 'B' xâu, tham chiếu tới số phần tử xâu HS: Tích cực làm nhóm GV: Thuyết trình, cho ví dụ, giải Khai báo: 8' - Biến kiểu xâu có thể khai báo sau: thích ví dụ Var <tên biến>: string[độ dài lớn xâu]; HS: Chú ý nghe giảng, ghi bài đầy đủ Trong đó: + Var: từ khoá GV: Cho vài ví dụ khác, yêu + cầu học sinh nhận xét tính đúng : Dấu cách + <tên biến>: tên người lập trình đặt sai và giải thích + Var Hoten: string[99]; + string: tên dành riêng + Var Quequan: string[-4]; + Độ dài lớn xâu <=255 + Var Quoctich: string[255]; + Var Baihat: string; HS: Nhận xét và giải thích Ví dụ: Var Hoten: string[25]; GV: + Var Hoten: string[99]; - Trong mô tả xâu có thể bỏ qua Đúng phần khai báo độ dài Khi đó, độ dài lớn + Var Quequan: string[-4]; xâu nhận giá trị ngầm định Sai Vì độ dài tối đa xâu là 255 không thể mang giá trị âm Ví dụ: Var Ghichu: string; + Var Quoctich: string[255]; Đúng + Var Baihat: string; Đúng Lúc này độ dài tối đa nhận giá trị ngầm định là 255 6' (6) Nhập xuất liệu cho biến xâu GV: Yêu cầu học sinh nhắc lại các - Nhập liệu từ bàn phím dùng thủ thủ tục nhập, xuất liệu tục: NNLT Pascal Read(<biến xâu>); Hoặc Readln(<biến xâu>); - Xuất liệu màn hình dùng thủ tục: Write(<danh sách kết ra>); Hoặc Writeln(<danh sách kết ra>); HS: - Nhập liệu từ bàn phím dùng thủ tục: Read(<danh sách biến vào>); Hoặc Readln(<danh sách biến vào>); - Xuất liệu màn hình dùng thủ tục: Lưu ý: Độ dài xâu nhập vào phải nhỏ độ dài xâu ta khai báo Nếu độ dài xâu Write(<danh sách kết ra>); Hoặc Writeln(<danh sách kết ra>); nhập vào, lớn độ dài khai báo thì các kí tự vượt ngoài độ dài khai báo GV: Dùng ngôn ngữ lập trình bị Pascal viết đoạn chương trình và cho chạy HS: Chú ý quan sát IV Cũng cố bài (5') Qua bài học hôm nay, chúng ta đã biết thêm kiểu liệu có cấu trúc liệu kiểu xâu Tiết đầu tiên bài, các em cần nắm vấn đề bản: + Biết khái niệm liệu kiểu xâu + Biết cách khai báo và tham chiếu phần tử xâu Một số câu hỏi trắc nghiệm khách quan: Câu 1: Xâu là dãy kí tự bảng mã A TCVN3 C UNICODE Hãy chọn phương án đúng Trả lời: B B ASCII D VNI (7) Câu 2: Cho xâu 'Vo Thi Nhu Ngoc ', có độ dài là bao nhiêu? A.15 B 16 C 14 C 17 Trả lời: B Câu 3: Có biến Hoten lưu trữ giá trị xâu 'Vo Thi Nhu Ngoc' thì Hoten[9] cho kí tự nào? A ' ' B 'N' C 'h' D 'u' Trả lời: C Câu 4: Trong các khai báo xâu sau đây, khai báo nào là sai? A var a: string [20]; B var a: string; C var a: string [-40]; D var a: string [253]; Trả lời: C Câu 5: Xâu rỗng kí hiệu? A " " B '0' C ' ' D '' Trả lời: D V Bài tập nhà (1’) - Ôn tập lại bài học hôm - Chuẩn bị trước tiết bài "Kiểu xâu" VI Rút kinh nghiệm Giáo viên hướng dẫn (Kí và ghi rõ họ tên) (8)