I. MỤC TIÊU
1. Kiến Thức
Cũng cố các hàm và thủ tục xử lý xâu.
2. Kỹ năng
Viết được chương trình đơn giản khi xử lý xâu.
3. Thái độ
- Hứng thú trong học tập.
- Tích cực tìm hiểu kiến thức mới.
4. Định hướng hình thành năng lực
- Năng lực giải quyết vấn đề thông qua việc trao đổi, thảo luận lựa chọn giải pháp;
- Năng lực tự học và giải quyết vấn đề theo giải pháp đã lựa chọn.
5. Tích hợp
II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1. Chuẩn bị của giáo viên
- Thiết bị dạy học: máy chiếu, máy tính.
- Học liệu: SGK.
2. 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;
- Chuẩn bị bảng phụ.
III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP
1. Ổn định lớp
2. Kiểm tra bài cũ: không kiểm tra bài cũ.
3. Tiến trình bài học
Ngày soạn:06/02/2020 Tiết: 30 Bài 12. KIỂU XÂU I. MỤC TIÊU 1. Kiến Thức Cũng cố các hàm và thủ tục xử lý xâu. 2. Kỹ năng Viết được chương trình đơn giản khi xử lý xâu. 3. Thái độ - Hứng thú trong học tập. - Tích cực tìm hiểu kiến thức mới. 4. Định hướng hình thành năng lực - Năng lực giải quyết vấn đề thông qua việc trao đổi, thảo luận lựa chọn giải pháp; - Năng lực tự học và giải quyết vấn đề theo giải pháp đã lựa chọn. 5. Tích hợp II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH 1. Chuẩn bị của giáo viên - Thiết bị dạy học: máy chiếu, máy tính. - Học liệu: SGK. 2. 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; - Chuẩn bị bảng phụ. III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp 2. Kiểm tra bài cũ: không kiểm tra bài cũ. 3. Tiến trình bài học A. KHỞI ĐỘNG HOẠT ĐỘNG 1. Bài toán nêu vấn đề (5 phút) (1) Mục tiêu: Tạo sự hứng thú đối với việc sử dụng các hàm và thủ tục đã học để viết bài toán cụ thể. (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. (4) Phương tiện dạy học: Bảng phụ. (5) Sản phẩm: Các câu trả lời 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ụ - GV chiếu lên màn hình yêu cầu của bài toán. - GV đặt câu hỏi: cách nhập xâu? Xuất xâu? Chúng ta đã biết cách in hoa 1 kí tự, vậy in hoa cả xâu kí tự thì thực hiện như thế nào? Bước 1. HS nhận nhiệm vụ - Học sinh suy nghĩ phỏng đoán đáp án cho từng câu hỏi. Bài toán: Viết chương trình nhập từ bàn phím 1 xâu là tên của bạn. Thực hiện in hoa xâu vừa nhập và đưa kết quả ra màn hình. #include using namespace std; int i; string s,s1; char ch; int main() { cout<<"moi nhap xau can chuyen doi="; getline(cin,s); s1=""; for(i=0;i<s.length();i++) { ch=s[i]-32; s1=s1+ch; } cout <<s1; return 0; } Bước 2. Quan sát và hướng dẫn HS - GV khuyến khích học sinh suy nghĩ trả lời câu hỏi. Bước 2. HS thực hiện nhiệm vụ - HS suy nghĩ trả lời câu hỏi của GV. Bước 3. GV nhận xét, đánh giá, chốt kiến thức - Ở tiết trước chúng ta đã học về các thủ tục và hàm. Vậy ứng dụng những thủ tục và hàm đó để viết chương trình như thế nào? Tìm hiểu bài mới. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện - HS lắng nghe. B. HÌNH THÀNH KIẾN THỨC VÀ LUYỆN TẬP HOẠT ĐỘNG 1. Chương trình nhập xâu, xuất xâu đơn giản. (10 phút) (1) Mục tiêu: Viết được chương trình nhập xâu, xuất xâu, tính độ dài 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: Hoạt động nhóm. (4) Phương tiện dạy học: Sách giáo khoa, bảng phụ. (5) Sản phẩm: Phần trình bày của mỗi nhóm và các câu hỏi của các nhóm dành cho nhóm trình bày. Hoạt động của GV Hoạt động của HS Nội dung Bước 1. GV giao nhiệm vụ - GV gợi ý: Vd 1:¨ TH1: a:= ‘Nguyen An’; b:= ‘Le Anh’ ®kết quả xuất ra màn hình? ¨ TH2: a:= ‘Le Anh’; b:=‘Nguyen An’ ®kết quả xuất ra màn hình? ¨ TH3: a:= ‘Pham Hieu’; b:=‘Nguyen An’ ®kết quả xuất ra màn hình? - Gv: Nêu các bước giải bài toán vd1? - Gv: Để kiểm tra được họ tên nào dài hơn ta cần phải biết độ dài xâu a và độ dài xâu b. Viết hàm tính độ dài xâu a và hàm tính độ dài xâu b? - Gv: Hãy viết câu lệnh so sánh độ dài hai xâu trên? - GV chia lớp thành 4 nhóm. Yêu cầu học sinh viết chương trình cho bài toán. - Gọi hs lên bảng hoàn thành chương trình. - Gv nhận xét và sửa bài. Bước 1. HS nhận nhiệm vụ - HS thảo luận nhóm trả lời câu hỏi. - Dự đoán câu trả lời của học sinh. TH1: xuất xâu a; TH2 và TH3: xuất xâu b; Các bước giải bài toán: Khai báo biến: a,b: string; Phần thân: Nhập giá trị xâu a, b. So sánh độ dài xâu a và xâu b, nếu độ dài xâu a lớn hơn độ dài xâu b thì đưa ra màn hình xâu a, ngược lại đưa ra màn hình xâu b. - Hàm tính độ dài xâu a và xâu b lần lượt là a.length(), b.length(). - if (a.length() >b.length()) cout<<a; else cout<<b; * Ví dụ 1: Viết chương trình 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. Vd:¨ TH1: a:= ‘Nguyen An’; b:= ‘Le Anh’ ®kết quả xuất ra màn hình xâu a. ¨ TH2: a:= ‘Le Anh’; b:=‘Nguyen An’ ®kết quả xuất ra màn hình xâu b. ¨ TH3: a:= ‘Pham Hieu’; b:=‘Nguyen An’ ®kết quả xuất ra màn hình xâu b. Các bước giải bài toán: Khai báo biến: a,b: string; Phần thân: Nhập giá trị xâu a, b. So sánh độ dài xâu a và xâu b, nếu độ dài xâu a lớn hơn độ dài xâu b thì đưa ra màn hình xâu a, ngược lại đưa ra màn hình xâu b. * Chương trình // vd1 #include using namespace std; string a,b; int main() { cout<<"moi nhap xau a="; getline(cin,a); cout<<"moi nhap xau b="; getline(cin,b); if (a.length()>b.length()) cout <<"xau a lon hon= "<<a; else cout <<"xau b lon hon="<<b; return 0; } Bước 2. Quan sát và hướng dẫn HS - GV động viên khuyến khích học sinh làm việc nhóm viết chương trình. Bước 2. HS thực hiện nhiệm vụ - HS thảo luận nhóm viết chương trình. Bước 3. GV nhận xét, đánh giá, chốt kiến thức - Yêu cầu các nhóm treo bảng phụ lên bảng. - Gv nhận xét và sửa bài. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện - HS treo kết quả bài làm. - Hs góp ý, theo dõi. - Hs ghi bài. HOẠT ĐỘNG 2. Viết đoạn lệnh thực hiện in hoa 1 xâu. (10 phút) (1) Mục tiêu: Viết được đoạn lệnh in hoa một 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: Hoạt động nhóm. (4) Phương tiện dạy học: Sách giáo khoa, bảng phụ. (5) Sản phẩm: Phần trình bày của mỗi nhóm và các câu hỏi của các nhóm dành cho nhóm trình bày. Hoạt động của GV Hoạt động của HS Nội dung Bước 1. GV giao nhiệm vụ - GV đưa ra yêu cầu bài toán. Ở hoạt động này chỉ viết đoạn lệnh thực hiện in hoa xâu và đưa xâu đã được in hoa ra màn hình. - GV gợi ý: + Hàm in hoa chỉ in hoa được một kí tự, vậy làm thế nào để in hoa cả xâu? + Ví dụ xâu cần in hoa là S= ‘nguyen’ vậy để in hoa kí tự thứ nhất ta viết như thế nào? Tương tự kí tự thứ 2? Vậy để in hết xâu cần bao nhiêu câu lệnh? + Xâu gồm 6 kí tự thì 6 câu lệnh, vậy xâu 15 kí tự thì bao nhiêu câu lệnh? + Việc viết nhiều câu lệnh như vậy thì không thuận tiện và tối ưu, vậy có cách nào để thực hiện in hoa 1 xâu tối ưu hơn? - GV yêu cầu các nhóm suy nghĩ viết đoạn lệnh in hoa xâu và in kết quả ra màn hình. Bước 1. HS nhận nhiệm vụ - HS thảo luận nhóm trả lời câu hỏi và viết đoạn lệnh. - Dự đoán câu trả lời của học sinh. + In hoa từng kí tự trong xâu. + ch1=(S[0]-32); ch2=(S[1]-32); - Cần 6 câu lệnh. - 15 câu lệnh. - Sử dụng vòng lặp với số lần biết trước. * Ví dụ 2: Viết đoạn chương trình thực hiện in hoa một xâu (S). s1=""; for(i=0;i<s.length();i++) { ch=s[i]-32; s1=s1+ch; } Bước 2. Quan sát và hướng dẫn HS - GV động viên khuyến khích học sinh làm việc nhóm viết chương trình. Bước 2. HS thực hiện nhiệm vụ - HS thảo luận nhóm viết chương trình. Bước 3. GV nhận xét, đánh giá, chốt kiến thức - Yêu cầu các nhóm treo bảng phụ lên bảng. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện - HS treo kết quả bài làm. C. VẬN DỤNG HOẠT ĐỘNG 1. Bài tập vận dụng (10 phút) (1) Mục tiêu: Viết được chương trình in hoa 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. (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: Bài tập được làm 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ụ - GV đưa ra yêu cầu bài toán, yêu cầu các nhóm vận dụng những kiến thức đã học trong phần hình thành kiến thức và luyện tập để hoàn chỉnh chương trình. - Gv chia lớp thành 4 nhóm, yêu cầu viết chương trình vào bảng phụ. Bước 1. HS nhận nhiệm vụ - HS thảo luận nhóm, viết chương trình vào bảng phụ. - Dự đoán bài làm của học sinh: * Bài toán 1: Viết chương trình nhập từ bàn phím một xâu S. Thực hiện in hoa xâu vừa nhập và in kết quả ra màn hình. Vd:¨ a:= ‘nguyen truong to’; àKết quả xuất trên màn hình là xâu ‘NGUYEN TRUONG TO’ Các bước giải bài toán: Khai báo biến: S: string; Phần thân: Nhập giá trị xâu s. In hoa các kí tự của xâu s. Xuất xâu s. * Chương trình: #include using namespace std; int i; string s,s1; char ch; int main() { cout<<"moi nhap xau can chuyen doi="; getline(cin,s); s1=""; for(i=0;i<s.length();i++) { ch=s[i]-32; s1=s1+ch; } cout <<s1; return 0; } Bước 2. Quan sát và hướng dẫn HS - GV quan sát nhắc nhở học sinh thảo luận nhóm viết chương trình. Bước 2. HS thực hiện nhiệm vụ - HS thảo luận nhóm viết chương trình. Bước 3. GV nhận xét, đánh giá, chốt kiến thức - GV chọn một bài sửa. - Chạy chương trình cho học sinh xem kết quả. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện - HS treo kết quả bài làm của nhóm. Theo dõi và sửa bài. D. TÌM TÒI, MỞ RỘNG HOẠT ĐỘNG 1. Bài toán mở rộng (5 phút) (1) Mục tiêu: Giúp học sinh mở rộng kiến thức về sử dụng hàm và thủ tục để viết chương trình. (2) Phương pháp/Kĩ thuật: Đàm thoại, phát hiện vấn đề. (3) Hình thức tổ chức hoạt động: Thảo luận nhóm. (4) Phương tiện dạy học: Sách giáo khoa, bảng phụ. (5) Sản phẩm: Bài làm của các nhóm 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ụ - Đưa ra yêu cầu bài toán. - GV đặt câu hỏi gợi ý: + Lỗi xẩy ra khi ta nhập xong n chương trình không dừng lại cho ta nhập học sinh thứ 1 mà cho nhập học sinh thứ 2 luôn. + Do khi ta nhập giá trị của n ta nhấn phím enter nên mã của phím enter được lưu trên bộ nhớ đệm do đó khi chương trình gặp lệnh getline(cin,s) nó đọc ngay ký tự này và thấy đây là ký tự kết thúc nó sẽ loại bỏ câu lệnh này và chạy thẳng đến câu lệnh tiếp theo. +Hiện tượng này gọi là trôi lệnh nên trước khi dung getline chúng ta sử dụng câu lệnh fflush(stdin) để xoá bộ nhớ đệm - Yêu cầu các nhóm dựa vào các câu hỏi gợi ý, thảo luận viết chương trình trên vào bảng phụ. Bước 1. HS nhận nhiệm vụ - Các nhóm thảo luận tự trả lời các câu hỏi gợi ý của giáo viên để viết chương trình trên bảng phụ. - Dự đoán câu trả lời của học sinh: Bài toán 2: Viết chương trình nhập họ tên của một lớp học gồm n học sinh. Với n nhập vào từ bàn phím. * Chương trình: #include using namespace std; int n,i; string a[50]; int main() { cout<<"moi n="; cin>>n; for (i=1;i<=n;i++) { fflush(stdin); cout<<"moi nhap hoc sinh "<<i<<"="; getline(cin,a[i]); } for (i=1;i<=n;i++) cout<<"hoc sinh "<<i<<"="<<a[i]<<endl; return 0; } Bước 2. Quan sát và hướng dẫn HS - GV quan sát nhắc nhở học sinh thảo luận nhóm viết chương trình. Bước 2. HS thực hiện nhiệm vụ - HS làm việc theo nhóm. Bước 3. GV nhận xét, đánh giá, chốt kiến thức - GV yêu cầu 1 nhóm nêu kết quả, các nhóm còn lại nhận xét. - GV nhận xét, đánh giá sản phẩm/câu trả lời của hoạt động. Bước 3. Báo cáo, góp ý, bổ sung để hoàn thiện - HS cử đại diện trình bày đáp án của nhóm. - HS nhận xét, bổ sung câu trả lời của nhóm bạn. 4. Củng cố và dặn dò. (5 phút) a. Củng cố - Việc nhập và xuất xâu giống như biến đơn. b. Dặn dò - Học bài. - Viết chương trình cho bài toán mở rộng. IV. RÚT KINH NGHIỆM Mỹ Tho, ngày.....tháng.....năm....... KÍ DUYỆT
Tài liệu đính kèm: