Giáo án Pascal - Tiết 32 bài 12: Kiểu xâu (tiết 2)

Tiết 32. Bài 12: KIỂU XÂU (tiết 2) I. Mục tiêu 1. Kiến thức: - Hiểu và áp dụng được một số thủ tục và hàm thông dụng đối với kiểu xâu. - Có thể cài đặt được một số chương trình đơn giản có sử dụng kiểu xâu. - Phần minh họa với Pascal, học sinh cần nắm được: o Cách khai báo kiểu xâu. o Ý nghĩa của các phép so sánh, phép ghép xâu. o Ý nghĩa của các hàm chuẩn: length(s), copy(s,vt,n), pos(s1,s2), upcase(ch). Và các thủ tục chuẩn: delete(st,vt,n), insert(s1,s2,vt).

docx24 trang | Chia sẻ: nguyenlinh90 | Lượt xem: 845 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo án Pascal - Tiết 32 bài 12: Kiểu xâu (tiết 2), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Tiết 32. Bài 12: KIỂU XÂU (tiết 2) Mục tiêu Kiến thức: Hiểu và áp dụng được một số thủ tục và hàm thông dụng đối với kiểu xâu. Có thể cài đặt được một số chương trình đơn giản có sử dụng kiểu xâu. Phần minh họa với Pascal, học sinh cần nắm được: Cách khai báo kiểu xâu. Ý nghĩa của các phép so sánh, phép ghép xâu. Ý nghĩa của các hàm chuẩn: length(s), copy(s,vt,n), pos(s1,s2), upcase(ch). Và các thủ tục chuẩn: delete(st,vt,n), insert(s1,s2,vt). Kĩ năng: Khai báo kiểu xâu. So sánh hai xâu. Nhận biết và bước đầu sử dụng các hàm, thủ tục chuẩn với kiểu xâu. Hoạt động nhóm tích cực. Thuyết trình thông qua việc trình bày một sản phẩm chung của cả nhóm. Tư duy, thái độ: Có tinh thần hợp tác, tích cực tham gia bài học. Rèn tư duy lập trình logic trong quá trình lập trình giải quyết một bài toán trên Pascal. Chuẩn bị phương tiện dạy học Học sinh: Ôn các kiến thức về kiểu xâu đã được học trong tiết 31. Giáo viên: Phiếu học tập, chương trình Pascal mẫu để giải các bài tập giao cho học sinh thực hiện, bảng phụ, máy chiếu. Phương pháp dạy học Phương pháp dạy học nhóm. Phương pháp dạy học nêu vấn đề và giải quyết vấn đề. Tiến trình tổ chức bài học Ổn định tổ chức lớp học. Kiểm tra bài cũ thông qua hoạt động “trò chơi khởi động”: (5 phút) Giáo viên(GV) thực hiện phát cho mỗi nhóm 1 tờ giấy A3 màu trắng, 6 tờ giấy A4 khác màu (mỗi nhóm một màu khác nhau), và bút dạ. GV viết lên bảng chủ đề: “KIỂU XÂU”. Yêu cầu học sinh nhớ lại kiến thức về kiểu xâu đã được học trong tiết 31, thư kí của mỗi nhóm viết vào giấy A3 màu trắng tất cả các thông tin mà các thành viên trong nhóm nhớ được. Sau 90 giây, GV yêu cầu các nhóm báo cáo kết quả bằng kĩ thuật XYZ: Lần lượt từng nhóm đọc 1 thông tin mà nhóm nhớ được về kiểu xâu, viết to vào giấy màu A4 và dán lên bảng. Các nhóm sau không được nêu thông tin trùng với nhóm trước. Nhóm nào nêu thông tin trùng hoặc sau 5 giây không nêu thêm được thông tin mới sẽ bị loại. GV tổ chức cho các nhóm báo cáo quay vòng để tìm ra nhóm chiến thắng. Sau khi kết thúc trò chơi, cả lớp thu được một sơ đồ tư duy về các kiến thức liên quan tới kiểu xâu. Dự kiến một sơ đồ tư duy có thể thu được: Cuối cùng, Giáo viên nhận xét đánh giá hoạt động của các nhóm và cho điểm các nhóm. Bài mới: Mở bài: (1 phút) GV sử dụng một bài thơ “Kiểu Xâu” để mở bài: Array là mảng, string xâu. Khai báo đã được học chưa lâu. Cứ var mà viết chẳng sai đâu. Cộng ghép thêm vào xâu hết ngắn. Lớn nhỏ bằng khác cứ so nhau. Hàm thời sẵn có length và pos. Thêm cả copy, upcase hàm. Delete thủ tục xóa, insert chèn. Pascal đâu có khô khan nhỉ. Nếu mà chăm chỉ code vài bài. Tác giả: Đào Thêm. GV: Các em thấy đấy “Pascal đâu có khô khan!” Và để chứng minh điều đó, hôm nay Cô trò mình sẽ tìm hiểu tiếp phần 3. Một số ví dụ. Hoạt động 1: Tìm hiểu một số ví dụ về kiểu xâu (20 phút) Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài học -GV: Đầu tiên chúng ta sẽ tìm hiểu ví dụ 1 trang 71 sách giáo khoa (SGK), GV trình chiếu bằng Turbo Pascal. -GV nhấn mạnh: cách khai báo biến xâu, việc nhập giá trị cho một biến xâu như một biển kiểu đơn giản, và cách sử dụng hàm length(s). -GV test chương trình bằng 2 bộ test, mỗi lần test GV gọi HS dự đoán kết quả trước khi chương trình Pascal in kết quả ra màn hình. + test1: ‘Bui Minh Phuong’ ‘Dao Nhu Phuong’ + test2: ‘Nguyen Khanh Huyen’ ‘Nguyen Thanh Huyen’ -GV: Qua ví dụ 1 các em đã thấy được cách thao tác với biến xâu cũng dễ dàng như các biến kiểu đơn giản mà các em đã học. Và bây giờ chúng ta cùng tìm hiểu tiếp ví dụ số 2 trang 71 SGK để thấy được cách tham chiếu tới từng kí tự của một xâu như thế nào. -GV trình chiếu ví dụ 2 bằng Turbo Pascal. -GV đưa ra câu hỏi: “Các em thấy cách tham chiếu tới từng kí tự của xâu giống với cách tham chiếu của kiểu dữ liệu nào mà các em đã học?” -GV nhận xét câu trả lời của HS và đưa ra đáp án: Cách tham chiếu từng kí tự của xâu giống như cách tham chiếu của mảng một chiều, kí tự thứ i của xâu S được viết: S[i]. -GV thực hiện test chương trình với bộ test: ‘Nguyen Khanh Huyen’ ‘Nguyen Thanh Huyen’ -GV yêu cầu HS đưa ra dự đoán kết quả trước khi chương trình thực hiện in kết quả ra màn hình. -GV đưa câu hỏi: Nếu không sử dụng biến x mà viết trực tiếp b[length(b)] thì chương trình có thực hiện được không? -GV nhận xét câu trả lời của HS và đưa ra chương trình Pascal kiểm chứng. -GV đưa ra câu trả lời cuối cùng là: có thể viết trực tiếp b[length(b)] mà không cần sử dụng thêm biến x. -GV mở rộng kiến thức: trong lập trình mỗi biến chiếm một chỗ nhất định trong bộ nhớ, vậy việc tiết kiệm biến giúp tiết kiệm bộ nhớ. Đồng thời sử dụng biến phù hợp giúp người lập trình kiểm soát chương trình của mình tốt hơn. -GV: Bây giờ chúng ta sẽ thực hành việc tiết kiệm biến trong ví dụ số 3 trang 72 SGK. -GV trình chiếu ví dụ 3 bằng Pascal. -GV đưa câu hỏi: Các em thấy cách sử dụng vòng lặp for – do để duyệt lần lượt các kí tự của một xâu có giống với mảng một chiều không? -GV thực hiện test chương trình bằng bộ test: ‘abcde’ -GV: Chúng ta sẽ thực hành tiếp các thao tác xử lí xâu thông qua ví dụ 4 và ví dụ 5 trang 72 SGK. -GV trình chiếu chương trình ví dụ 4 bằng Pascal. -GV test chương trình với bộ test: ‘a b c d e’ thu được kết quả: ‘edcba’ ngược với thứ tự xuất hiện của xâu ban đầu. Vậy kết luận chương trình lỗi. Yêu cầu HS tìm và sửa lỗi. -GV nhận xét câu trả lời của HS, Sửa lỗi chương trình, và test với bộ số: ‘a b c d e’ For i:=1 to length(a) do if a[i] ' ' then b:=b+ a[i]; -GV đưa một câu hỏi: Em hãy cải tiến chương trình bằng cách không sử dụng thêm biến xâu b mà vẫn in ra kết quả đúng -GV nhận xét câu trả lời của HS, chạy thử chương trình mà HS cải tiến. -GV trình chiếu chương trình mẫu với bộ test ‘a b c d e’. GV có thể chạy thủ công trên bảng để giải thích nếu không có HS nào trả lời đúng. -GV: tương tự ví dụ 4, ví dụ 5 trang 72 SGK yêu cầu tạo một xâu mới từ xâu đã cho. -GV trình chiếu chương trình trên Pascal. Và yêu cầu HS làm theo cách không sử dụng biến xâu S2. -GV chỉnh sửa chương trình theo câu trả lời của HS. Cuối cùng GV trình chiếu chương trình mẫu. -GV tổng kết: qua 5 ví dụ Cô và các em đã cùng thực hành về khai báo, tham chiếu, phép ghép xâu, so sánh xâu, hàm length(s). Sau đây chúng ta sẽ thực hành thêm một số hàm, thủ tục xử lý xâu khác thông qua bài tập trong hoạt động 2. -Học sinh (HS) quan sát và lắng nghe. -HS quan sát, dự đoán kết quả. -HS quan sát. - HS trả lời câu hỏi. -HS quan sát, và dự đoán kết quả. -HS trả lời câu hỏi. -HS quan sát, lắng nghe. -HS quan sát và trả lời. -HS quan sát kết quả. -HS quan sát, lắng nghe. -HS quan sát, sửa lỗi. -HS thảo luận đưa ra câu trả lời. -HS quan sát bài mẫu. -HS quan sát, làm theo yêu cầu. -HS quan sát kết quả. 3. Một số ví dụ Ví dụ 1 Chương trình dưới đây 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. var a,b:string; begin write('Nhap ho ten nguoi thu nhat: '); Readln(a); write('Nhap ho ten nguoi thu hai: '); readln(b); if length(a) > length(b) then write(a) else write(b); readln end. - 2 bộ test + test1: ‘Bui Minh Phuong’ ‘Dao Nhu Phuong’ Kết quả: ‘Bui Minh Phuong’ + test2: ‘Nguyen Khanh Huyen’ ‘Nguyen Thanh Huyen’ Kết quả: ‘Nguyen Thanh Huyen’ Ví dụ 2 Chương trình dưới đây nhập vào hai xâu từ bàn phím và kiểm tra kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không. 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('Khong trung'); readln end. -Bộ test: ‘Nguyen Khanh Huyen’ ‘Nguyen Thanh Huyen’ -Kết quả: Khong trung var a,b:string; begin write('Nhap xau thu nhat: '); readln(a); write('Nhap xau thu hai: '); readln(b); if a[1] = b[length(b)] then write('Trung nhau') else write('Khong trung'); readln end. -Bộ test: ‘Nguyen Khanh Huyen’ ‘Nguyen Thanh HuyeN’ -Kết quả: Trung nhau Ví dụ 3 Chương trình sau nhập một xâu từ bàn phím và đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại. var a:string;i:byte; begin write('Nhap xau: '); readln(a); for i:=length(a) downto 1 do write(a[i]); readln end. -Bộ test: ‘abcde’ -Kết quả: ‘edcba’ Ví dụ 4 Chương trình sau nhập một xâu vào từ bàn phím và đưa ra màn hình xâu thu được từ nó sau khi loại bỏ các dấu cách nếu có. var a,b:string; i:byte; begin write('Nhap xau: ');readln(a); b:=''; for i:=length(a) downto 1 do if a[i] ' ' then b:=b+ a[i]; write(b); readln end. Test lần một: Bộ test: ‘a b c d e’ Kết quả: ‘edcba’ var a,b:string; i:byte; begin write('Nhap xau: ');readln(a); b:=''; for i:=1 to length(a) do if a[i] ' ' then b:=b+ a[i]; write(b); readln end. Test lần hai (Sau khi đã sửa lỗi) Bộ test: ‘a b c d e’; Kết quả: ’abcde’ var a:string; i:byte; begin write('Nhap xau: '); readln(a); for i:=1 to length(a) do if a[i] ' ' then write(a[i]); readln end. Ví dụ 5 Chương trình sau nhập vào từ bàn phím xâu kí tự S1, tạo xâu S2 gồm tất cả các chữ số có trong s1 (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình. var s1,s2:string;i:byte; begin write('Nhap xau S1: ');readln(S1); S2:=''; for i:= 1 to length(a) do if (s1[i] >= '0') and (s1[i]<='9') then S2:=S2+ s1[i]; write(S2); readln end. Bộ test: ‘1a 2b 3c 4d 5e’ Kết quả: ‘12345’ var s1:string;i:byte; begin write('Nhap xau S1: ');readln(S1); for i:=1 to length(s1) do if (a[i] >= '0') and (a[i]<='9') then write(s1[i]); readln end. Hoạt động 2: Bài tập áp dụng (17 phút) Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài học -GV chiếu nội dung bài tập. -GV yêu cầu HS thực hiện phiếu học tập. -GV quan sát hoạt động nhóm của HS, trợ giúp nếu cần. -GV thông báo dừng hoạt động nhóm khi hết giờ hoặc tất cả các nhóm đã kết thúc. -GV cho lần lượt các nhóm lên trưng bày sản phẩm. -GV chọn nhóm xong sớm nhất trình bày sản phẩm của nhóm mình. -GV yêu cầu các nhóm khác nhận xét hoặc đặt câu hỏi. -GV đưa ra kết quả cuối cùng và trình chiếu chương trình mẫu. -HS quan sát. -HS thực hiện phiếu bài tập theo hướng dẫn: Thực hiện hoạt động cá nhân trong 1 phút, sau đó thảo luận nhóm thống nhất kết quả trong 6 phút. -HS dừng hoạt động nhóm theo hiệu lệnh của GV, và mang sản phẩm lên trưng bày. -Nhóm HS xong sớm nhất cử đại diện lên trình bày sản phẩm của cả nhóm. Các HS khác chú ý lắng nghe. -HS nhận xét hoặc đặt câu hỏi. -HS quan sát, lắng nghe. Nội dung bài tập: Bờm rất thích thú với các chương trình được viết bằng Pascal. Bờm có một ước mơ sẽ tạo ra một phần mềm soạn thảo văn bản giống như Microsoft word. Bờm muốn sử dụng Pascal để tạo chức năng tìm kiếm thay thế bằng cách nhập một đoạn văn bản từ bàn phím, thay thế tất cả cụm từ ‘anh’ bằng cụm từ ‘em’. Kết quả in ra màn hình. Bờm đang loay hoay chưa biết làm như thế nào. Các em hãy giúp Bờm thực hiện nhé. -Các bước thực hiện: Bước 1: nhập xâu S Bước 2: Nếu pos(‘anh’,s) = 0 thì in kết quả, kết thúc. Bước 3: xác định vị trí xuất hiện cụm kí tự ‘anh’, i:= pos(‘anh’,s); Bước 4: Xóa cụm kí tự ‘anh’ trong S bắt đầu từ vị trí i. à Delete(s,i,3); Bước 5: Chèn cụm kí tự ‘em’ vào s bắt đầu từ vị trí i. à Insert (‘em’,s,i); Bước 6: Quay lại bước 2. -Chương trình mẫu var s:string; i:byte; begin write('Nhap S= '); readln(s); while pos('anh',s) 0 do begin i:=pos('anh',s); delete(s,i,3); insert('em',s,i); end; writeln(s); readln End. Hoạt động 3: Củng cố bài học (2 phút) GV tổng kết bài học. PHIẾU BÀI TẬP VỀ NHÀ Lý thuyết: Học sinh hoàn thành sơ đồ tư duy mô tả về KIỂU XÂU vào vở ghi theo mẫu sau: GV giao bài tập về nhà cho HS: Học sinh hoàn thành phiếu bài tập về nhà theo gợi ý của Giáo viên. PHIẾU BÀI TẬP VỀ NHÀ Thực hành: Bài thực hành 1: Học sinh thực hành 5 ví dụ trong phần 3 trang 71 sách giáo khoa. Bài thực hành 2: Bờm rất thích thú với các chương trình được viết bằng Pascal. Bờm có một ước mơ sẽ tạo ra một phần mềm soạn thảo giống như Microsoft word. Bờm muốn sử dụng Pascal để tạo chức năng tìm kiếm thay thế bằng cách nhập một đoạn văn bản từ bàn phím, thay thế tất cả cụm từ ‘anh’ bằng cụm từ ‘em’. Kết quả in ra màn hình. Bờm đang loay hoay chưa biết làm như thế nào. Em hãy giúp Bờm thực hiện nhé. Bài thực hành 3: Sau khi thử nghiệm thành công chức năng tìm kiếm và thay thế trong một văn bản bằng chương trình Pascal. Bờm muốn tiếp tục tạo chức năng đếm số lượng từ có trong một câu văn bản được nhập từ bàn phím. Biết rằng: cụm kí tự không chứa kí tự phân cách ‘.’ (dấu chấm), ‘,’ (dấu phẩy), ‘ ‘ (dấu cách) được gọi là một từ. Câu là một đoạn kí tự gồm nhiều từ, nếu câu có nhiều từ thì các từ được phân tách nhau bởi một hoặc một số kí tự phân cách. Ví dụ: theo định nghĩa trên ta có ‘Number’ – câu có 1 từ, ‘The number one’ – câu có 3 từ, ‘One, two, three, four, five, six, seven, eight, nine, ten’ – câu có 10 từ. Em hãy cùng Bờm viết một chương trình Pascal để thử nghiệm chức năng này nhé. SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI Trường THPT Cao Bá Quát – Gia Lâm Môn: Tin học 11 Bài 12: KIỂU XÂU PHIẾU HỌC TẬP Hoạt động cá nhân: (2 phút) Em hãy trình bày ý tưởng, các bước thực hiện bài tập Sau đó trình bày cấu trúc chương trình pascal tương ứng các bước (Có thể trình bày dưới dạng giả mã lệnh). Hoạt động nhóm: (8 phút) Cả nhóm thảo luận thống nhất ý kiến và viết kết quả vào bảng A0 theo mẫu sau: Các bước thực hiện giải bài toán Cấu trúc chương trình pascal (có thể trình bày dưới dạng giả mã lệnh) Nhóm nào hoàn thành trước sẽ được trình bày sản phẩm trước. SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI Trường THPT Cao Bá Quát – Gia Lâm Môn: Tin học 11 Bài 12: KIỂU XÂU PHIẾU BÀI TẬP VỀ NHÀ Lý thuyết: Học sinh hoàn thành sơ đồ tư duy mô tả về KIỂU XÂU vào vở ghi theo mẫu sau: Thực hành: Bài thực hành 1: Học sinh thực hành 5 ví dụ trong phần 3 trang 71 sách giáo khoa. Bài thực hành 2: Bờm rất thích thú với các chương trình được viết bằng Pascal. Bờm có một ước mơ sẽ tạo ra một phần mềm soạn thảo giống như Microsoft word. Bờm muốn sử dụng Pascal để tạo chức năng tìm kiếm thay thế bằng cách nhập một đoạn văn bản từ bàn phím, thay thế tất cả cụm từ ‘anh’ bằng cụm từ ‘em’. Kết quả in ra màn hình. Bờm đang loay hoay chưa biết làm như thế nào. Em hãy giúp Bờm thực hiện nhé. Bài thực hành 3: Sau khi thử nghiệm thành công chức năng tìm kiếm và thay thế trong một văn bản bằng chương trình Pascal. Bờm muốn tiếp tục tạo chức năng đếm số lượng từ có trong một câu văn bản được nhập từ bàn phím. Biết rằng: cụm kí tự không chứa kí tự phân cách ‘.’ (dấu chấm), ‘,’ (dấu phẩy), ‘ ‘ (dấu cách) được gọi là một từ. Câu là một đoạn kí tự gồm nhiều từ, nếu câu có nhiều từ thì các từ được phân tách nhau bởi một hoặc một số kí tự phân cách. Ví dụ: theo định nghĩa trên ta có ‘Number’ – câu có 1 từ, ‘The number one’ – câu có 3 từ, ‘One, two, three, four, five, six, seven, eight, nine, ten’ – câu có 10 từ. Em hãy cùng Bờm viết một chương trình Pascal để thử nghiệm chức năng này nhé. DỰ KIẾN CÁCH LÀM BÀI TẬP VỀ NHÀ CỦA HỌC SINH Bài thực hành 3 trong phiếu bài tập về nhà var s:string; i,dem:byte; begin write('Nhap xau: '); readln(s); dem:=1; for i:=1 to length(s) do if s[i] = ' ' then dem:= dem + 1; writeln(dem); readln end.
Tài liệu liên quan