Tải bản đầy đủ (.docx) (13 trang)

Bai 12 Kieu xau

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (135.64 KB, 13 trang )

<span class='text_page_counter'>(1)</span>I. Thông tin chung 1. Trường: THPT Kỳ Sơn 2. Môn học: Tin học 3. Thông tin nhóm: II. Nội dung: TÊN CHỦ ĐỀ: KIỂU XÂU Lớp: 11 Thời lượng dạy học: 02 Tiết (Tiết 30,31) I. 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. 2. Kỹ năng - Sử dụng được một số thủ tục, hàm thông dụng về xâu. - Viết được một số chương trình đơn giản có sử dụng xâu. 3. Năng lực hướng tới: - Kĩ năng, hiểu biết về phần mềm, thiết bị CNTT-TT: Gõ đúng quy cách. Có khả năng xác định và giải quyết các vấn đề đơn giản đối với dữ liệu kiểu xâu. - Mô hình hóa các tình huống thực tiễn xảy ra phụ thuộc vào cấu trúc kiểu xâu trong tin học. - Sử dụng CNTT-TT trong giao tiếp: Sử dụng thuật ngữ CNTT-TT chính xác. - Đạo đức, hành vi phù hợp khi sử dụng CNTT-TT: Phân biệt giữa thế giới thực và thế giới ảo. II. MÔ TẢ CÁC MỨC ĐỘ NHẬN THỨC VÀ NĂNG LỰC ĐƯỢC HÌNH THÀNH Nội dung. Loại câu hỏi/bài tập. Nhận biết. Mở đầu. Câu hỏi/bài tập định tính. HS nhận ra các kiểu dữ liệu đã học; phân biệt được sự khác nhau cơ bản giữa xâu và mảng một. Thông hiểu. Vận dụng thấp. Vận dụng cao.

<span class='text_page_counter'>(2)</span> chiều 1. Khai báo. Câu hỏi/bài Hs lấy được tập định một số ví dụ tính về xâu kí tự đơn giản trong thực tế. Câu hỏi. Hs chỉ ra được dạng kí tự xâu trong tình huống thực tế.. Câu hỏi. ND1.DT.NB1 ND1. DT. TH1 Bài tập định lượng Bài tập thực hành 2. Các thao tác xử lí xâu. Câu hỏi/bài Hs mô tả cấu tập định trúc các thao tính tác xử lí xâu.. Câu hỏi ND2.DT.NB1 Bài tập định lượng. Hs biết cơ chế hoạt động của hàm và thủ tục trong kiểu xâu để chỉ ra được hoạt động một lệnh dạng cụ thể. Câu hỏi ND2.DL.NB1. Bài tập thực hành. Hs chỉ ra được các thành phần trong các thao tác xử lí xâu cụ thể. Câu hỏi ND2.DT.TH1 Hs hiểu ý nghĩa các hàm và thủ tục trong xâu để giải thích được hoạt động cụ thể.. Hs viết được câu lệnh trong kiểu xâu để thực hiện một tình huống quen thuộc.. Câu hỏi Câu hỏi ND2.DL.TH1 Hs sửa lỗi lệnh về thao tác trong chương. ND2.DL.VDT 1.

<span class='text_page_counter'>(3)</span> trình quen thuộc có lỗi Câu hỏi ND2.TH.TH1 3. Một số ví dụ. Câu hỏi/bài Hs mô tả cấu tập định trúc, ý nghĩa tính lệnh của kiểu xâu. Câu hỏi. Hs chỉ ra được các thành phần của hàm và thủ tục cụ thể. Câu hỏi. ND3.DT.NB1 ND3.DT.TH1 Bài tập định lượng Bài tập thực hành. Hs sửa lỗi lệnh của kiểu xâu trong chương trình quen thuộc.. Câu hỏi ND3.TH.TH1. Hs vận dụng các lệnh của kiểu xâu kết hợp câu lệnh đã học để viết chương trình đơn giản. Câu hỏi ND3.TH.VDT 1. III. CÂU HỎI VÀ BÀI TẬP 1. Nhận biết. Câu MD1.DT.NB1. Em hãy cho biết kiểu dữ liệu có thể khai báo cho các dữ liệu tương ứng sau: 2007 10.5 True 2007 la nam Quy Suu Câu MD2.DT.NB2. Em hãy lấy một ví dụ xâu kí tự đơn giản trong đời sống? Câu MD3.DT.NB3. Phân biệt sự khác nhau giữa xâu và mảng? Câu ND1.DT.NB1. Có nhất thiết khai báo độ dài lớn nhất của xâu không?.

<span class='text_page_counter'>(4)</span> Câu ND2.DT.NB1. Trong lập trình Pascal, xâu kí tự không có kí tự nào gọi là ? A. Xâu không; B. Xâu rỗng; C. Xâu trắng; D. Không phải là xâu kí tự; Câu ND2.DL.NB1. Trong ngôn ngữ lập trình Pascal, khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự ? E. S : string; F. X1 : string[100]; G. S : string[256]; H. X1 : string[1]; Câu ND3.DT.NB1. Trình bày cấu trúc, ý nghĩa hàm sao chép? Câu ND3.DL.NB1. Trong ngôn ngữ lập trình Pascal, để tìm vị trí xuất hiện đầu tiên của xâu ‘hoa’ trong xâu S ta có thể viết bằng cách nào trong các cách sau ? I. S1 := ‘hoa’ ; i := pos(S1, ‘hoa’) ; J. i := pos(‘hoa’, S) ; K. i := pos(S, ’hoa’) ; L. i := pos(‘hoa’, ‘hoa’) ; 2. Thông hiểu. Câu ND1.DT.TH1. Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là đúng ? M.S : char ; N. S : string[300]; O. S : string; P. Cả 3 câu đều đúng ; Câu ND2.DT.TH1. Độ dài tối đa của xâu kí tự trong PASCAL là a. 256 c. 255. b. 65535 d. 257. Câu ND2.DL.TH1. Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả gì ? A. Độ dài xâu S khi khai báo; B. Số ký tự hiện có của xâu S không tính các dấu cách; C. Số ký tự của xâu không tính dấu cách cuối cùng D. Số ký tự hiện có của xâu S. Câu ND2.TH.TH1. Hãy chỉ ra lỗi trong chương trình sau: i := pos(‘’, S); { ‘ ’ là 2 dấu cách } while i <> 0 do Begin Delete(S, i, 1) ;.

<span class='text_page_counter'>(5)</span> i := pos(‘ ’, S) ; End; Câu ND3.DT.TH1. Trong ngôn ngữ lập trình Pascal, để xóa đi ký tự đầu tiên của xâu ký tự S ta viết : Q. Delete(S, 1, 1); R. Delete(S, i, 1); { i là biến có giá trị bất kỳ } S. Delete(S, length(S), 1); T. Delete(S, 1, i); { i là biến có giá trị bất kỳ } Câu ND3.DL.TH1. Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ? X := length(S) ; For i := X downto 1 do If S[i] = ‘ ’ then Delete(S, i, 1) ;. { ‘ ’ là một dấu cách }. U. Xóa dấu cách đầu tiên trong xâu ký tự S V. Xóa dấu cách thừa trong xâu ký tự S W.Xóa dấu cách tại vị trí cuối cùng của xâu S X. Xóa mọi dấu cách của xâu S Câu ND3.TH.TH1. Hãy sửa lỗi sai trong đoạn chương trình sau: S1 := ‘anh’ ; S2 := ‘em’ ; i := pos(S2, S) ; While i <> 0 do Begin Delete(S, i, 2) ; Insert(S1, S, i) ; i := pos(S2, S) ; End. 3. Vận dụng. Câu ND2.DL.VDT1. Viết câu lệnh đưa ra kết quả độ dài xâu s? Câu ND3.TH.VDT1. Viết chương trình chèn xâu s1 vào xâu s2? 4. Vận dụng cao. IV. KẾ HOẠCH THỰC HIỆN CHỦ ĐỀ Nội dung. Hình thức tổ. Thời. Thời. Thiết bị DH, Học. Ghi chú.

<span class='text_page_counter'>(6)</span> Kiểu xâu. chức dạy học. lượng. điểm. liệu. Tại lớp. 2 tiết. 30,31. SGK, máy chiếu. V. THIẾT KẾ TIẾN TRÌNH DẠY HỌC Hoạt động 1. Khởi động/mở bài 1. Mục tiêu: Tạo nhu cầu tìm hiểu về 1 kiểu dữ liệu mới – Kiểu xâu. 2. Nhiệm vụ học tập của học sinh: Nhập các số từ bàn phím theo yêu cầu của GV. 3. Cách thức tiến hành hoạt động: Chia lớp thành 4 nhóm. Hoạt động của HS. Hoạt động của GV Nhập vào từ bàn phím rồi đưa ra màn hình các số sau: a) 687. a) Nhập N là 1 số kiểu Integer, N=687 b) Không thể nhập 1 số như câu a.. b) 123456789101112131415 - Có thể dùng kiểu mảng nhưng dài dòng; - Chạy chương trình dùng kiểu xâu để học sinh thấy chương trình sẽ rất ngắn gọn.. Hoạt động 2. Hình thành kiến thức mới 1. Mục tiêu:. - 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. - Sử dụng được một số thủ tục, hàm thông dụng về xâu. 2. Nhiệm vụ học tập của học sinh: Tham gia các hoạt động giáo viên giao. 3. Cách thức tiến hành hoạt động: Chia lớp thành 4 nhóm Hoạt động của HS. Hoạt động của GV Bước 1. Giao nhiệm vụ:. Bước 2. Thực hiện nhiệm vụ được giao Các nhóm nghiên cứu SGK.. Các nhóm nghiên cứu SGK và cho biết: - Xâu là gì? - Cách tham chiếu đến phần tử của.

<span class='text_page_counter'>(7)</span> xâu? - Nêu cách khai báo xâu trong Pascal và cho 1 số ví dụ? Bước 3. Báo cáo kết quả và thảo luận - Xâu là một dãy kí tự trong bảng mã -. -. ASCII. 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 của xâu. Xâu có độ dài bằng 0 gọi là xâu rỗng. Tham chiếu tới phần tử trong xâu được xác định thông qua chỉ số của phần tử trong xâu. Chỉ số phần tử trong xâu thường được đánh số từ 1. Trong ngôn ngữ Pacal, tham chiếu tới phần tử thường được viết : <Tên biến xâu>[chỉ số];. Khai báo - Pascal sử dụng từ khóa STRING để khai báo xâu . Độ dài tối đa của xâu được viết trong [ ] sau từ khóa STRING . Khai báo như sau : Var <tên biến> : String[độ dài lớn nhất của xâu] ; Ví dụ : Var Ten : String[10] ; Ho_dem : String[50] ; Que : String; Bước 4. Đánh giá kết quả. Chú ý : - Nếu không khai báo độ dài tối. đa cho biến xâu kí tự thì độ dài ngầm định của xâu là 255 . - Độ dài lớn nhất của xâu là 255 ký tự..

<span class='text_page_counter'>(8)</span> - Hằng xâu kí tự được đặt trong. cặp nháy đơn ‘ ’. Bước 1. Giao nhiệm vụ: Bước 2. Thực hiện nhiệm vụ được giao. Các nhóm nghiên cứu SGK và cho biết có các thao tác xử lý xâu nào?. Các nhóm nghiên cứu SGK. Bước 3. Báo cáo kết quả và thảo luận - Với các xâu kí tự có các phép phép xâu. và phép so sánh hai xâu kí tự. * Phép ghép xâu : Kí hiệu bằng dấu cộng + - Ý nghĩa: Ghép nhiều xâu thành một. - Có thể ghép xâu với các hằng và biến xâu. Ví dụ : ‘Ha’ + ‘Noi’ cho kết quả là ‘Ha Noi’ * Phép so sánh : <, <=, >, >=, = , <>, Pascal tự động so sánh lần lượt từ kí tự từ trái sang phải. - Quy tắc so sánh xâu: SGK Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ > ‘ABB’, ‘ABC’ <’ABCD’ Ta có các thủ tục và hàm chuẩn sau: * Thủ tục delete(st,vt,n): Xoá n kí tự của biến st bắt đầu từ vị trí vt St. thao tác. kết quả. 'abcdef'. delete(st,5,2); 'abcd'. '. delete(st,1,5); 'Hong'. ong Hong' * Thủ tục insert(s1,s2,vt): Chèn xâu s1 vào xâu s2 từ vị trí vt s1. s2. thao tác. 'PC'. 'IBM486' ins rt(s1,s2,4);. kết quả 'IBM PC 486.

<span class='text_page_counter'>(9)</span> '1'. 'Hinh .2'. insert(s1,s2,6); 'Hinh 1.2'. * Thủ tục Copy(s,vt,n): Tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí của xâu s S. Biểu thức. Kết quả. 'Bai hoc thu 9'. copy(s,9,5); 'thu 9'. * Hàm length(s): Cho giá trị là độ dài xâu s Biểu thức Kết quả. '500 ki tu' length(s);. 9. * Hàm pos(s1,s2): Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2 s2. Biểu thức. kết quả. 'abcdef'. Pos('cd',s2); 3. 'abcdef'. Pos('k',s2);. 0. * Hàm upcase(ch): Cho chữ cái in hoa ứng với chữ cái trong ch Ch. Biểu thức. kết quả. 'd'. upcase(ch) 'D'. 'e'. upcase(ch) 'E' Bước 4. Đánh giá kết quả. Hoạt động 3. Luyện tập 1. Mục tiêu: Củng cố khái niệm về xâu, cách khai báo xâu và các thao tác xử lí xâu. 2. Nhiệm vụ học tập của học sinh: Thực hiện các bài tập theo yêu cầu của GV. 3. Cách thức tiến hành hoạt động: Chia lớp thành 4 nhóm Hoạt động của HS. Hoạt động của GV.

<span class='text_page_counter'>(10)</span> Bước 1. Giao nhiệm vụ: - Nhóm 1, nhóm 2 nghiên cứu ví dụ 1, Bước 2. Thực hiện nhiệm vụ được giao Các nhóm nghiên cứu SGK.. 4 SGK rồi sửa lại chương trình theo yêu cầu: + Ví dụ 1 sửa nếu 2 xâu bằng nhau thì đưa ra xâu nhập trước. + Ví dụ 4 hãy đưa ra màn hình số kí tự trắng có trong xâu. - Nhóm 3, nhóm 4 nghiên cứu ví dụ 2, 5 SGK rồi sửa lại chương trình theo yêu cầu: + Ví dụ 2 sửa kiểm tra xem kí tự cuối cùng của xâu thứ nhất có bằng kí tự cuối cùng của xâu thứ hai không? + Ví dụ 5 sửa tạo xâu s2 gồm tất cả các chữ cái in hoa có trong xâu s1?. Bước 3. Báo cáo kết quả và thảo luận. * Ví dụ 1: Nhập họ và tên của hai người, in ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập trước: var a,b:string; begin write('nhap ho ten thu nhat:'); readln(a); write('nhap ho ten thu hai:'); readln(b); if length(a)=length(b) then write(a) readln.

<span class='text_page_counter'>(11)</span> end. * Ví dụ 2: Nhập hai xâu từ bàn phím và kiểm tra kí tự cuối của xâu thứ nhất có trùng kí tự cuối cùng của xâu thứ hai không. var a,b: string; begin write('nhap xau thu nhat:'); readln(a); wrtie('nhap xau thu hai:'); readln(b); if a[length(a)]=b[length(b)] then Write(‘Trung nhau’) else write('khong trung nhau'); readln and. * Ví dụ 4: Nhập một xâu và in ra màn số kí tự trắng có trong xâu? var i,k,dem:byte; a:string; begin write('nhap xau:'); readln(a); k:=length(a); dem:=0; for i:=1 to k do if a[i]=’ ' then dem:=dem+1; writeln('ket qua:',dem); readln end. * Ví dụ 5: Nhập kí tự từ bàn phím vào xâu 1, tạo xâu 2 với các kí tự in hoa của xâu 1 và in ra màn hình kết quả.

<span class='text_page_counter'>(12)</span> var s1,s2:string; i:byte; begin write('nhap xau s1:'); readln(s1); s2:=’’; for i:=1 to length(s1) do if ('A'=>s1[i]) and (s1[i]<='Z') then s2:=s2+s1[i]; writeln('ket qua:'s2); readln end. Hoạt động 4. Vận dụng 1. Mục tiêu: Vận dụng kiểu xâu để viết chương trình 1 số bài đơn giản về xâu. 2. Nhiệm vụ học tập của học sinh: Vận dụng kiến thức để viết chương trình. 3. Cách thức tiến hành hoạt động: Bài toán: Dùng thủ tục Delete() để giải quyết bài toán ví dụ 4? Dự kiến kết quả:. var i,k:byte; a,b:string; begin write('nhap xau:'); readln(a); k:=length(a); b:=a; for i:=1 to k do if b[i]=’ ' then Delete(b,i,1); writeln('ket qua:',b); readln end. Hoạt động 5. Tìm tòi mở rộng.

<span class='text_page_counter'>(13)</span> 1. Mục tiêu: Vận dụng kiểu xâu để viết chương trình giải quyết 1 số bài toán phức tạp hơn. 2. Nhiệm vụ học tập của học sinh: Vận dụng kiến thức để viết chương trình. 3. Cách thức tiến hành hoạt động: Bài toán: Viết chương trình 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 có giá trị lớn nhất và đưa kết quả ra màn hình. Dự kiến kết quả:. var s1,s2,s3:string; i,j:byte; k:char; begin write('nhap xau s1:'); readln(s1); s2:=’’; for i:=1 to length(s1) do if ('0'=>s1[i]) and (s1[i]<='9') then s2:=s2+s1[i]; s3:=’’; for k:=’9’ downto ‘0’ do for i:=1 to length (s2) do if s2[i]=k then s3:=s3+s2[i]; writeln('ket qua:'s3); readln end..

<span class='text_page_counter'>(14)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×