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 (166.68 KB, 6 trang )
<span class='text_page_counter'>(1)</span>Gi¸o ¸n chi tiÕt líp 11 «n tËp häc kú 2 PhÇn: kiÓu X¢U TiÕt theo PPCT: 46. Ngêi so¹n: GV Ph¹m Anh Tïng. Ngµy so¹n: 12 th¸ng 04 n¨m 2013. TuÇn häc thø: 35. I. Mục đích 1.Kiến thức: - Ôn lại cho học sinh phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên quan. - Giúp cho học sinh nắm được một số thuật toán cơ bản: tạo xâu mới, đếm số lần xuất hiện một ký tự,... 2.Kỹ năng: -Khai báo biến kiểu xâu. -Nập, xuất giá trị cho biến xâu. -Duyệt qua tất cả các ký tự của xâu. -Sử dụng được các hàm và thủ tục chuẩn. 3.Thái độ: Tích cực vàc chủ động trong thực hành. II. Chuân bị 1. Giáo viên: Giáo án, SGK, máy chiếu. 2. Học sinh: Chuẩn bị bài ở nhà. III. Phương pháp: - Đặt vấn đề. - Thuyết trình, vấn đáp. - Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng trong ví dụ IV. Tiến trình bài học. 1) Ổn định tổ chức: Kiểm tra sĩ số lớp. a.Triển khai bài mới: HOẠT ĐỘNG DẠY- HỌC NỘI DUNG Hoạt động 1:(Tìm hiểu cách khai báo biến, sử dụng I.Tìm hiểu khai báo biến, các hàm và hàm và thủ tục trong chương trình) thủ tục thông qua một số chương trình Gv:Đưa từng chương trình lên máy chiếu để Hs quan có sẳn: sát và tìm hiểu. -Giáo viên yêu cầu Hs gõ một số chương trình sau vào NNLT Pascal, rồi chạy chương trình để kiểm tra VD 1 : tính đúng đắn của thuật toán. Var s1,s2 : String ; -Với mỗi ví dụ, Gv đi sâu vào giải thích từng câu x : Byte ; lệnh trực tiếp đáp ứng yêu cầu của ví dụ, như vậy các Begin em tiếp thu nhanh hơn. Write('Nhap xau thu 1 : '); Hs: Soạn thảo từng ví dụ vào máy và tìm hiểu cách sử Readln(s1) ; dụng biến, hàm và thủ tục... Write('Nhap xau thu 2 : '); Ví dụ 1 : Nhập 1 xâu, kiểm tra xem ký tự đầu tiên của Readln(s2) ; xâu S1 có trùng với ký tự cuối cùng của xâu S2 hay x := length(s2) ; không ? If s1[1] = s2[x] then Write('Trung nha') else Write('Khac nhau'); Readln ; End . VD 2 : Var i,k : Byte ; a : String ; Begin Write('Nhap xau : ') ; Readln(a) ;.
<span class='text_page_counter'>(2)</span> k := length(a) ; For i := k downto 1 do Write(a[i]) ; Readln ; Ví dụ 2 : Nhập 1 xâu, viết ra màn hình xâu đó theo thứ End . tự ngược lại của các ký tự trong xâu . VD 3 : Var i,k : Byte ; a,b : String ; Begin Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; b :='' ; For i := 1 to k do if a[i] <> '' then b := b+a[i] ; Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu đó nhưng đã Write(b) ; được bỏ tất cả các ký tự là dấu cách . Readln ; End . VD 4 : Var s1,s2 : String ; i : Byte ; 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] ; Write(s2); Readln ; Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu gồm các ký End . tự số của xâu đó . Hoạt động 2:(Tìm hiểu cách khai báo biến, sử dụng hàm và thủ tục trong chương trình) II.Soạn thảo chương trình và tìm hiểu Gv:Đưa nội dung bài tập lên máy chiếu cách khai báo biến và một số câu lệnh: Nhập vào từ bàn phím một xâu. Kiểm Hãy gõ chương tình và chạy thử với các bộ test như tra xâu đó có phải là xâu đối xứng hay sau: không. Xâu đối xứng có tính chất: đọc A=’abccba’ nó từ phải sang trái cũng thu được kết A=’fgđhfs’ quả giống như đọc từ trái sang phải (Còn gọi xâu là palindrome). Hs:Quan sát trên màn hình máy chiếu và SGK để gõ chương trình vào NNLT Pascal. a.Hãy chạy thử chương trình sau: Var Gv: Quan sát Hs gõ chương trình và đưa ra câu hỏi i,x:Byte; thảo luận như sau: a,p:String; Với hai bộ test trên thì kết quả xuất ra màn hình như Begin thế nào? Write(‘Nhap xau a=’); Readln(a); P:=’’; Hs: Thực hành rồi trả lời kết quả. For i:=length(a) Downto 1 Do p:=p+a[i];.
<span class='text_page_counter'>(3)</span> Gv: Hãy sửa lại chương trình trên mà không sử dụng biến P? Hs:Thảo luận theo nhóm (2Hs/máy) -Dùng biến kt -Soạn thảo chương trình -Chạy thử chương trnhf với bộ Test trên. Gv: -Quan sát rồi đưa chương trình hoàn chỉnh lên máy chiếu để Hs so sánh -Ngoài ra còn có cách thứ 2: While i<=(x div2) And (a[i]=a[x-i+1] Do i:=i+1 If i>(x div 2) Then Write(‘Xau là palindrome) Else Write(‘Xau khong phai la palindrome);. If a=p Then Write(‘Xau là palindrome) Else Write(‘Xau khong phai la palindrome); Readln; End.. b.Hãy viết lại chương trình trên, trong đó không dùng biến xâu p? Var i,x:Byte; a,p:String; Kt:Boolean; Begin Write(‘Nhap xau a=’); Readln(a); Kt:=True; X:=length(a); For i:=1 To x div 2 Do Gv:Yêu cầu hs kiểm tra với một số bộ dữ liệu được If a[i]<> a[x-i+1] Then kt:=False; nhập vào từ bàn phím và giải thích từng câu lệnh ở If Kt Then Write(‘Xau là trong 4 ví dụ. palindrome) Else Write(‘Xau khong phai la palindrome); Readln; End. V. Củng cố: - Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành. - Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,... VI. Bài tập về nhà:. Học lại bài đã học và nghiên cứu lại nội dung lý thuyết và bài tập kiểu tệp và thao tỏc với tệp để hôm sau học bài ôn tập các kiến thức liên quan đến kiểu tệp. VII. Rút kinh nghiệm, bổ sung: ....................................................................................................................................................... ....................................................................................................................................................... ........................................................................................................................................................
<span class='text_page_counter'>(4)</span> Gi¸o ¸n chi tiÕt líp 11 BÀI TẬP VÀ THỰC HÀNH 5(Tiết 2). Ngêi so¹n: GV Ph¹m Anh Tïng. Ngµy so¹n: th¸ng 0 n¨m 2013. TuÇn häc thø: 27.. TiÕt theo PPCT: 31.. I. Mục đích 1.Kiến thức: - Hs tự xây dựng một số thật toán về xâu và soạn thảo trong NNLT Pascal. - Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên quan. 2.Kỹ năng: -Khai báo biến kiểu xâu. - Nhập, xuất giá trị cho biến xâu. - Duyệt qua tất cả các ký tự của xâu. - Sử dụng được các hàm và thủ tục chuẩn. 3.Thái độ: - Tích cực vàc chủ động trong thực hành. II. Chuân bị - Giáo viên: Giáo án, SGK, máy chiếu. - Học sinh: Chuẩn bị bài ở nhà. III. Phương pháp: Thực hành + Vấn đáp tái hiện IV. Tiến trình bài học. I.ỔN ĐỊNH LỚP(1’): II.KIỂM TRA BÀI CŨ(3’): Gọi một Hs lên bảng viết Hãy nêu cú pháp và ý nghĩa các hàm và thủ tục cơ bản xử lý xâu? Mỗi thủ tục hoặc hàm lấy một ví dụ? a.Đặt vấn đề(1’): Hôm nay chúng ta học bài “Bài tập và Thực hành5(t2)” để kiểm tra một số thuật toán, một số thủ tục và hàm xử lý xâu. b.Triển khai bài mới: HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC Hoạt động 1(15’) (Rèn luyện kỷ năng lập trình) I.Vận dụng kiểu dữ liệu xâu để lập Gv:Đưa câu hỏi lên máy chiếu trình: S=’AbaCDacd’ Bài 2: Viết chương trình nhập từ bàn Hãy cho biết số lần xuất hiện của mỗi chữ cái tiếng phím một xâu S và thông báo số lần Anh trong S ( không phân biệt chữ hoa hay chữ xuất hiện của mỗi chữ cái tiếng Anh thường)? trong S ( không phân biệt chữ hoa hay Hs:Đếm rồi trả lời. chữ thường). Gv: Hãy nêu Input và Output của bài toán? Hs: Input:Nhập xâu S Input:Nhập xâu S Output: Đếm số lần xuất hiền chữ Output: Đếm số lần xuất hiền chữ cái tiếng anh cái tiếng anh Gv: Trong bảng chữ cái tiếng anh có bao nhiêu chữ cái? Hs:Gồm có 26 chữ cái Gv:Hướng dẫn Dem[A]:=0; Dem[B:=0; … Dem[Z=0; Hãy viết câu lệnh khởi tạo các biến trên như thế nào? Hs:Sử dụng câu lệnh For. Var Dem:array['A'..'Z'] Of Byte; S:string; Gv: Hãy viết đoạn chương trình đếm số lần xuất hiện i:Byte;.
<span class='text_page_counter'>(5)</span> chữ cái trong tiếng Anh? Hs: Suy nghĩ trả lời If S[i] in ['A'..'Z'] Then Begin S[i]:=upcase(S[i]); Dem[S[i]]:=Dem[s[i]]+1; End; Gv:Yêu cầu hoạt động theo nhóm (2Hs/1máy tính) theo mẫu sau: Var Dem:array['A'..'Z'] Of Byte; S:...; i:...; ch:...; Begin Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:=......; For i:=1 to Length(S) Do If S[i] in ['A'..'Z'] Then Begin ............ End; For ch:='A' to 'Z' Do If Dem[S[i]]<> 0 Then Writeln(..................); Readln; End. Hãy viết chương trình đầy đủ và chạy thử chương trình để để tra xem kết quả đúng? Hs:Thảo luận theo nhóm để điền và chạy chương trình rồi báo cáo kết quả. Gv:Quan sát và đưa toàn bộ chương trình lên máy chiếu và chạy thử để Hs quan sát. Hoạt động 2: Vận dụng các hàm, thủ tục để viết chương trình. Bài 3 Nhập vào bàn phím một xâu, thay thế tất cả cụm kí tự ‘anh’ bằng cụm kí tự ‘em’ VD: Input: ‘ewrewranhsffanh’ Output:’ewrewremsffem’ Ý tưởng: xóa cụm từ ‘anh’ và chèn cụm từ ‘em’ Gv: ta cần dung những hàm, hay thủ tục nào? Hs: Hàm Ínert, thủ tục xóa, và hàm pos để biết vị trí cần chèn, xóa. Viết chương trình đầy đủ:. ch:char; Begin Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:=0; For i:=1 to Length(S) Do If S[i] in ['A'..'Z'] Then Begin S[i]:=upcase(S[i]); Dem[S[i]]:=Dem[s[i]]+1; End; For ch:='A' to 'Z' Do If Dem[S[i]]<> 0 Then Writeln('so lan xuat hien ',ch,' la',Dem[ch]); Readln; End.. II.Vận dụng các hàm, thủ tục để viết chương trình. S1=’anh’, s2=’em’ N=pos(s1,s); Delete(s,n,3);{xóa cụm từ anh} Insert(s2,s,n); var s,s1,s2:string; i,n:integer; begin write('nhap xau');readln(s); s1:='anh'; s2:='em'; while pos(s1,s)<>0 do begin i:=pos(s1,s) ; delete(s,i,3); insert(s2,s,i); end; write(s); write( pos(s2,s1)); readln end..
<span class='text_page_counter'>(6)</span> V. Củng cố(2’): - Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành. - Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,... - Cần nắm thuật toán đếm số lần xuất hiện chữ cái tiếng anh, kểu tra xâu đối xứng. VI. Dặn dò(1’): Đưa lên màn hình máy chiếu như sau: -Tiết sau học tiết: Tiết 33: Bài tập -Bài tập về nhà: 1.Nhập từ bàn phím một xâu. Thay thế tất cả các cụm kí tự 'anh' bằng cụm kí tự 'em'. VII. Rút kinh nghiệm, bổ sung: ....................................................................................................................................................... ........................................................................................................................................................
<span class='text_page_counter'>(7)</span>