MỤC TIÊU
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.
- Biết cú pháp và ý nghĩa phép ghép xâu, các phép so sánh xâu.
2. Kĩ năng
- Thực hiện được khai báo kiểu xâu, phép ghép xâu, các phép so sánh xâu.
3. Thái độ:
- Nhận thức được cần nghiêm túc, cẩn thận và chính xác khi làm việc với ngôn ngữ lập trình.
4. Định hướng hình thành năng lực
- Tự chủ và tự học trong việc tìm hiểu bài trước khi lên lớp.
- Giao tiếp và hợp tác trong việc thảo luận nhóm.
- Giải quyết vấn đề thông qua việc trao đổi, thảo luận về các bài tập.
Ngày soạn:30/01/2020 Tiết: 28 §12. KIỂ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 một chiều). Biết cách khai báo xâu, truy cập phần tử của xâu. Biết cú pháp và ý nghĩa phép ghép xâu, các phép so sánh xâu. Kĩ năng Thực hiện được khai báo kiểu xâu, phép ghép xâu, các phép so sánh xâu. Thái độ: Nhận thức được cần nghiêm túc, cẩn thận và chính xác khi làm việc với ngôn ngữ lập trình. Định hướng hình thành năng lực Tự chủ và tự học trong việc tìm hiểu bài trước khi lên lớp. Giao tiếp và hợp tác trong việc thảo luận nhóm. Giải quyết vấn đề thông qua việc trao đổi, thảo luận về các bài tập. II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH Chuẩn bị của giáo viên Thiết bị dạy học: Máy chiếu, bảng mã ASCII, câu hỏi trắc nghiệm phần vận dụng, đề bài toán mở rộng. Kí tự Mã ASCII Khoảng cách 32 A 65 B 66 a 97 b 98 Học liệu: Sách giáo khoa, phiếu bài tập, hệ thống bài tập trong phiếu học tập. Chuẩn bị của học sinh Chuẩn bị các nội dung liên quan đến bài học theo sự hướng dẫn của GV trong phiếu học tập. Tìm hiểu kiểu dữ liệu xâu trong C++ và giải các bài tập trong phiếu học tập. III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP Ổn định lớp Kiểm tra bài cũ Tiến trình bài học A. KHỞI ĐỘNG HOẠT ĐỘNG 1. Tìm hiểu các bài toán (5 phút) (1) Mục tiêu: Tạo động cơ để học sinh thấy sự cần thiết phải có kiểu dữ liệu xâu. (2) Phương pháp/Kĩ thuật: Nêu vấn đề. (3) Hình thức tổ chức hoạt động: Cá nhân và thảo luận nhóm. (4) Phương tiện dạy học: Sách giáo khoa, phiếu học tập. (5) Sản phẩm: Các câu trả lời trong phiếu học tập của học sinh. Hoạt động của GV Hoạt động của HS Nội dung Bước 1. GV giao nhiệm vụ Chia lớp thành 4 nhóm tương ứng 4 tổ, nhóm trưởng là tổ trưởng, yêu cầu các nhóm thảo luận về câu 1, câu 2 của phần khởi động trong phiếu học tập. Trình bày nội dung câu hỏi trên phiếu học tập, yêu cầu học sinh thảo luận nhóm, bổ sung vào phiếu học tập. Gv theo dõi hs thảo luận và làm bài, gọi 1 nhóm trình bày, các nhóm khác theo dõi và nhận xét. Gv nhận xét kết luận. Bước 1. HS nhận nhiệm vụ Các nhóm thảo luận và làm bài vào phiếu học tập. Dự đoán câu trả lời của học sinh: w Câu 1. Khai báo biến mảng a Char A [8] ; Nhập mảng A: for i:=0 to 8 do { Cout<<”Nhap A[“<< i<<”]=”; Cin>>A[i]; } w Câu 2: Rất khó khăn cho việc nhập học tên của từng học sinh. Câu 1. Viết đoạn chương trình nhập mảng A chứa dãy kí tự 'Nguyen An' từ bàn phím. Câu 2. Viết đoạn chương trình nhập danh sách họ tên học sinh của lớp 11B1 từ bàn phím. Bước 2. Nêu vấn đề Để giải quyết khó khăn của câu 2 về nhập danh sách họ tên học sinh. Ta đi tìm hiểu 1 kiểu dữ liệu mới đó là kiểu xâu. Tìm hiểu kiểu dữ liệu xâu: khái niệm, cách khai báo, các thao tác xử lý xâu. Bước 2. HS tiếp nhận vấn đề Hs thấy sự cần thiết phải có kiểu dữ liệu xâu. B. HÌNH THÀNH KIẾN THỨC VÀ LUYỆN TẬP HOẠT ĐỘNG 1. Tìm hiểu khái niệm kiểu xâu (5') (1) Mục tiêu: Hiểu khái niệm kiểu xâu. (2) Phương pháp/Kĩ thuật: Đàm thoại - phát hiện, vấn đáp – tìm tòi. (3) Hình thức tổ chức hoạt động: nhóm cặp. (4) Phương tiện dạy học: Sách giáo khoa, phiếu học tập. (5) Sản phẩm: Phát biểu của học sinh về khái niệm kiểu xâu, xác định được tên xâu, độ dài xâu, tham chiếu đến các kí tự trong xâu. Hoạt động của GV Hoạt động của HS Nội dung Bước 1. GV giao nhiệm vụ Cho các xâu kí tự sau: 'Nguyen An' 'KI SU' 'Tet 2018' Quan sát và cho biết thế nào là xâu? N G U Y E N A N 0 1 2 3 4 5 6 7 8 A Xác định: - Tên xâu: - Độ dài xâu (số kí tự trong xâu): - Tham chiếu đến kí tự thứ i của xâu ta viết: - A[4]= ... A[8]= ... Bước 1. HS nhận nhiệm vụ Hs bắt cặp suy nghĩ thảo luận và trả lời câu hỏi. Cá nhân hs hoàn thiện phiếu học tập của mình. Dự đoán câu trả lời của học sinh: w 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. - Tên xâu: A - Độ dài xâu (số kí tự trong xâu): 9 - Tham chiếu đến kí tự thứ i của xâu ta viết: A[i] - A[4]= ‘E’ A[8]= ‘N’ 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. Vd: A=’NGUYEN AN’ - Tên xâu: A - Độ dài xâu (số kí tự trong xâu): 9 - Tham chiếu đến kí tự thứ i của xâu ta viết: A[i] - A[4]= ‘E’ A[8]= ‘N’ Bước 2. Quan sát và hướng dẫn HS GV quan sát HS thực hiện các yêu cầu trả lời các phần trong phiếu học. Bước 2. HS thực hiện nhiệm vụ HS thảo luận vào ghi vào phiếu học tập Bước 3. GV nhận xét, đánh giá, chốt kiến thức GV nhận xét mức độ trả lời của học sinh. Chốt lại đáp án Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện HS lắng nghe và nhận xét lẫn nhau. Hs ghi nhận kết quả. HOẠT ĐỘNG 2. Tìm hiểu khai báo xâu (5') (1) Mục tiêu: Biết cú pháp khai báo kiểu xâu. Vận dụng khai báo được kiểu xâu. (2) Phương pháp/Kĩ thuật: Đàm thoại - phát hiện hoặc Vấn đáp – tìm tòi. (3) Hình thức tổ chức hoạt động: Cá nhân và thảo luận nhóm. (4) Phương tiện dạy học: Sách giáo khoa, phiếu học tập. (5) Sản phẩm: Nội dung hs làm trong phiếu học tập. Hoạt động của GV Hoạt động của HS Nội dung Bước 1. GV giao nhiệm vụ - Cho cú pháp khai báo biến xâu: string ; - Yêu cầu học sinh hoàn thiện vd1 như sau: Vd1: Var chuthich:string; Hãy cho biết xâu chuthich có độ dài tối đa bao nhiêu ký tự? Bước 1. HS nhận nhiệm vụ Cá nhân hs bắt cặp thảo luận để hoàn thiện phiếu học tập của mình. Dự đoán bài làm của hs: a. Khai báo - Vd1: xâu chuthich có độ dài tối đa 255 kí tự 2. Khai báo xâu a. Khai báo string ; - Độ dài của xâu là không cố định mà chỉ phụ thuộc vào giới hạn mà thư viện cung cấp. -Xâu có độ dài bằng 0 gọi là xâu trống. Bước 2. Quan sát và hướng dẫn HS GV quan sát HS thực hiện các yêu cầu trả lời các phần trong phiếu học. GV khuyến khích hs phát biểu. Bước 2. HS thực hiện nhiệm vụ HS thảo luận vào ghi vào phiếu học tập -Muốn biết độ dài của xâu ta sử dụng cấu trúc: Tên biến xâu.max.size(); Bước 3. GV nhận xét, đánh giá, chốt kiến thức Nhận xét câu trả lời của hs. Chốt kiến thức. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện HS trả lời. HS nhận xét lẫn nhau HOẠT ĐỘNG 3. Tìm hiểu cách nhập, xuất xâu. Phép ghép xâu, các phép so sánh xâu (15') (1) Mục tiêu: Biết nhập và xuất xâu giống như nhập giá trị của biến. Biết ý nghĩa phép ghép xâu, các phép so sánh xâu. Vận dụng được phép ghép xâu, các phép so sánh xâu. (2) Phương pháp/Kĩ thuật: Đàm thoại - phát hiện / vấn đáp – tìm tòi. (3) Hình thức tổ chức hoạt động: Cá nhân và thảo luận nhóm. (4) Phương tiện dạy học: Sách giáo khoa, phiếu học tập. (5) Sản phẩm: Nội dung hs làm bài được trong phiếu học tập. Hoạt động của GV Hoạt động của HS Nội dung - Giới thiệu nhập xâu, xuất xâu cũng giống như nhập, xuất giá trị của biến. - Yêu cầu HS Thực hiện vào phiếu học tệp về nhập xâu và xuất xâu - Chốt kết quả của HS. Bước 1. GV giao nhiệm vụ Yêu cầu các nhóm thảo luận về phép ghép xâu và các phép so sánh xâu - Phép ghép xâu (+) dùng để làm gì? - Cho kết quả của các phép ghép xâu sau: ¨ 'Tin'+'hoc'+'11'® . ¨ 'Lop'+' truong'® . ¨ 'Lop em' + ''® . - Hãy tìm hiểu quy tắc so sánh hai xâu và thực hiện so sánh xâu sau và giải thích làm rõ. - So sánh các xâu sau: 'anhem' 'anhba' 'may tinh' 'may tinh IBM' 'tinhoc' 'tinhoc' - nhận nhiệm vụ và thực hiện yêu cầu của giáo viên. - Trình bày nhập xuất xâu. Bước 1. HS nhận nhiệm vụ Các nhóm thảo luận. Các nhóm trình bày phần bài làm trên phiếu học tập. Dự đoán bài làm của hs: a. Phép ghép xâu Kí hiệu là dấu cộng (+), được sử dụng để ghép nhiều xâu thành một xâu. Vd: ¨'Tin'+'hoc'+'11'® 'tinhoc11'; ¨ 'Lop'+' truong'® 'Lop truong' ¨ 'Lop em' + ''®'Lop em' b. Các phép so sánh bằng (=), khác (), nhỏ hơn (), nhỏ hơn hoặc bằng (=). · Kí tự đầu tiên khác nhau trái sang, kí tự nào có max ASCII lớn hơn thì xâu đó lớn hơn. Vd: 'anhem'>'anhba' · 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 nhỏ hơn B. Vd: 'may tinh'<'may tinh IBM' · Hai xâu bằng nhau nếu như chúng giống nhau hoàn toàn. Vd: 'tinhoc' = 'tinhoc' 3. Các thao tác xử lí xâu a. Nhập xâu: Vd: Nhập xâu hoten Cout<<”Nhap xau Hoten”; Cin>>hoten; Lỗi xảy ra khi tên chứa dấu cách trống. Để khắc phục trước khi nhập xâu có chứa dấu cách trống ta sử dụng lệnh: getline(cin,hoten); b. Xuất xâu: Vd: Xuất xâu hoten Cout<<”Ho ten la:”<< hoten; c. Phép ghép xâu Kí hiệu là dấu cộng (+), được sử dụng để ghép nhiều xâu thành một xâu. Vd: ¨'tin'+'hoc'+'11'® 'tinhoc11'; ¨ 'Lop'+' truong'® 'Lop truong' ¨ 'Lop em' + ''®'Lop em' b. Các phép so sánh bằng (==), khác (), nhỏ hơn (), nhỏ hơn hoặc bằng (=). · Kí tự đầu tiên khác nhau trái sang, kí tự nào có mã ASCII lớn hơn thì xâu đó lớn hơn. Vd: 'anhem' > 'anhba' · 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 nhỏ hơn B. Vd: 'may tinh' < 'may tinh IBM' · Hai xâu bằng nhau nếu như chúng giống nhau hoàn toàn. Vd: 'tinhoc' = 'tinhoc' Bước 2. Quan sát và hướng dẫn HS GV quan sát HS thực hiện các yêu cầu/trả lời các phần trong phiếu học tập. GV khuyến khích các nhóm trao đổi, thảo luận. Bước 2. HS thực hiện nhiệm vụ HS làm việc theo nhóm: cá nhân góp câu trả lời để nhóm trưởng trình bày trên bảng phụ. Bước 3. GV nhận xét, đánh giá, chốt kiến thức GV quan sát và chọn ra bài làm tốt nhất của các nhóm. Nhận xét phần trình bày của các nhóm. Chốt kiến thức. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện HS cử đại diện nhóm nêu lên kết quả của nhóm mình. Nhóm khác bổ sung ý kiến HS nhận xét lẫn nhau C. VẬN DỤNG HOẠT ĐỘNG 1. Làm một số bài tập trắc nghiệm, bài tập tự luận trong phiếu học tập (10') Mục tiêu: Làm được các bài tập về phép ghép xâu, các phép so sánh xâu. (2) Phương pháp/Kĩ thuật: Đàm thoại - phát hiện / Vấn đáp – tìm tòi. (3) Hình thức tổ chức hoạt động: Cá nhân và thảo luận nhóm. (4) Phương tiện dạy học: Sách giáo khoa, phiếu học tập. (5) Sản phẩm: Phần bài làm của HS trên phiếu học tập. Hoạt động của GV Hoạt động của HS Nội dung Bước 1. GV giao nhiệm vụ Yêu cầu các nhóm thảo luận với nội dung sau: Bài 1. Chọn đáp án đúng Câu 1:Xâu 'ABBA' lớn hơn xâu: A. 'ABC' B. 'ABABA' C. 'ABCBA' D. 'BABA' Câu 2:Xâu 'ABBA' nhỏ hơn xâu: A. 'A' B. 'ABA' C. 'AAA' D. 'B' Câu 3:Xâu 'ABBA' bằng xâu: A. 'A' B. 'B' C. 'abba' D. Tất cả đều sai Câu 4:Cho A:= 'abc'; B:= 'ABC'; Khi đó B+A cho kết quả? A. 'aAbBcC' B. 'abcABC' C. 'ABCabc' D. 'CBAcba' Câu 5:Cho xâu A:= 'a'; B:= ' b'; Khi đó kết quả A+B là: A. 'ab' B. 'a b' C. 'AB' D. 'A B' Bài 2. Viết đoạn chương trình nhập họ tên của một người từ bàn phím. Thực hiện ghép thêm tên quốc tịch ' - Viet Nam' vào sau tên người đó. Vd: Nhập xâu Hoten: ‘Nguyen An’ à Kết quả xâu Hoten: ‘Nguyen An – Viet Nam’ Bài 3. Viết đoạn chương trình nhập 2 xâu họ tên của hai người từ bàn phím. Hãy so sánh 2 xâu và ghép quốc tịch ' - Viet Nam' vào cuối xâu lớn hơn. Vd: Nhập xâu Hoten1: ‘Nguyen Binh’ Nhập xâu Hoten2: ‘Nguyen Anh Minh’ à Kết quả xâu Hoten1: ‘Nguyen Binh – Viet Nam’ Bước 1. HS nhận nhiệm vụ Hs thảo luận nhóm. Các nhóm trình bày phần bài làm trên phiếu học tập. Dự đoán bài làm của hs: Bài 1. Câu 1B Câu 2D Câu 3D Câu 4C Câu 5B Bài 2. Cout<<”Nhap xau Hoten: “; getline(cin,Hoten); Hoten = Hoten + “ – Viet Nam”; Bài 3. Cout<<”Nhap xau hoten1”; Cin>>hoten1; Cout<<”Nhap xau hoten2”; Cin>>hoten2; If (hoten1>hoten2) hoten1=hoten1 + ’ – Viet Nam’; Else Hoten2= hoten2 + ’ – Viet Nam’; Bài 1. Câu 1B Câu 2D Câu 3D Câu 4C Câu 5B Bài 2. Cout<<”Nhap xau Hoten: “; getline(cin,Hoten); Hoten = Hoten + “ – Viet Nam”; Bài 3. Cout<<”Nhap xau hoten1”; Cin>>hoten1; Cout<<”Nhap xau hoten2”; Cin>>hoten2; If (hoten1>hoten2) hoten1=hoten1 + ’ – Viet Nam’; Else Hoten2= hoten2 + ’ – Viet Nam’; Bước 2. Quan sát và hướng dẫn HS GV quan sát HS làm bài tập. GV chủ động phát hiện khó khăn của HS để chỉ ra được những sai lầm mà HS mắc phải, khuyến khích các nhóm trao đổi, thảo luận. Bước 2. HS thực hiện nhiệm vụ HS làm việc theo nhóm, thống nhất ý kiến và trình bày vào phiếu học tập được phân công. Bước 3. GV nhận xét, đánh giá, chốt kiến thức GV nhận xét về phát biểu của các nhóm. GV nhận xét, đánh giá ý kiến của HS của từng nhóm và chốt đáp án. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện HS nhóm trả lời câu hỏi và giải thích. HS nhận xét lẫn nhau. D. TÌM TÒI, MỞ RỘNG: Dự kiến sẽ giới thiệu, để học sinh về nhà làm, tiết sau nộp sản phẩm. HOẠT ĐỘNG 1. Viết chương trình có sử dụng kiểu dữ liệu xâu Mục tiêu: Tạo động lực tìm tòi trong việc sử dụng kiểu xâu để viết chương trình. (2) Phương pháp/Kĩ thuật: Đàm thoại, phát hiện (3) Hình thức tổ chức hoạt động: Cá nhân và thảo luận nhóm. (4) Phương tiện dạy học: Sách giáo khoa, phiếu học tập. (5) Sản phẩm: Chương trình Pascal mà HS viết được trên giấy. Hoạt động của GV Hoạt động của HS Nội dung Bước 1. GV giao nhiệm vụ về nhà Yêu cầu các nhóm thảo luận bài tập trong phiếu học tập với nội dung sau: Bài 1. Viết chương trình nhập 2 xâu họ tên của hai người từ bàn phím. Hãy so sánh 2 xâu và xuất ra màn hình xâu đã ghép quốc tịch ' - Viet Nam' vào cuối xâu lớn hơn. Vd: Nhập xâu Hoten1: ‘Nguyen Binh’ Nhập xâu Hoten2: ‘Nguyen Anh Minh’ à Kết quả xâu Hoten1: ‘Nguyen Binh – Viet Nam’ Bước 1. HS nhận nhiệm vụ về nhà Cá nhân hs tìm hiểu viết chương trình. Các nhóm trình bày phần bài làm của nhóm mình trên giấy, nộp lại cho giáo viên vào tiết học sau. Dự đoán bài làm của hs: Bài 1. // bai1; #include using namespace std; string Hoten1, Hoten2; int main() { cout<<”nhap xau hoten 1:”; cin>>Hoten1; cout<<”nhap xau hoten 2:”; cin>>Hoten2; If (Hoten1>Hoten2) then { Hoten1=Hoten1+’ – Viet Nam’; Cout<<”Xau lon hon da ghep:”<<Hoten1; } Else { Hoten1=Hoten2+’ – Viet Nam’; Cout<<”Xau lon hon da ghep:”<<Hoten2; } Return 0; } Bài 1. Viết chương trình nhập 2 xâu họ tên của hai người từ bàn phím. Hãy so sánh 2 xâu và xuất ra màn hình xâu đã ghép quốc tịch ' - Viet Nam' vào cuối xâu lớn hơn. Vd: Nhập xâu Hoten1: ‘Nguyen Binh’ Nhập xâu Hoten2: ‘Nguyen Anh Minh’ à Kết quả xâu Hoten1: ‘Nguyen Binh – Viet Nam’ // bai1; #include using namespace std; string Hoten1, Hoten2; int main() { cout<<”nhap xau hoten 1:”; cin>>Hoten1; cout<<”nhap xau hoten 2:”; cin>>Hoten2; If (Hoten1>Hoten2) then { Hoten1=Hoten1+’ – Viet Nam’; Cout<<”Xau lon hon da ghep:”<<Hoten1; } Else { Hoten1=Hoten2+’ – Viet Nam’; Cout<<”Xau lon hon da ghep:”<<Hoten2; } Return 0; } Bước 2. Quan sát và hướng dẫn HS GV theo dõi HS làm bài tập ở nhà bằng cách lên lớp hỏi tình hình thảo luận của các nhóm. GV chủ động phát hiện khó khăn của HS để chỉ ra được những sai lầm mà HS mắc phải, khuyến khích các nhóm trao đổi, thảo luận. Bước 2. HS thực hiện nhiệm vụ HS làm việc cá nhân: làm bài vào vở của mình. HS làm việc theo nhóm, thống nhất ý kiến để nhóm trưởng trình bày bài vào phiếu học tập của nhóm. Bước 3. GV nhận xét, đánh giá, chốt kiến thức GV nhận xét, đánh giá từng sản phẩm. Chốt đáp án. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện phiếu học tập của bản thân Nhóm trưởng nộp sản phẩm. HS nhận xét lẫn nhau thực hiện trong tiết học sau. HS hoàn thiện phiếu học tập của nhóm, sửa vào vở của mình. Củng cố Kiểu dữ liệu xâu, cú pháp khai báo, cách tham chiếu đến các kí tự trong xâu. Phép ghép xâu, các phép so sánh xâu. Dặn dò Học kiểu dữ liệu xâu, cú pháp khai báo, cách tham chiếu đến các kí tự trong xâu, phép ghép xâu, các phép so sánh xâu. Đọc trước các hàm và thủ tục xử lí xâu. IV. RÚT KINH NGHIỆM Mỹ Tho, ngày.....tháng.....năm....... KÍ DUYỆT
Tài liệu đính kèm: