1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Bài tập thực hành 5 (tiết 1)

10 7 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

chương trình thể hiện cho việc kiểm Whileilengths div 2 then Writeln‘ xâu đối xứng’ Else Writeln‘xâu không đối xứng’; - Gi¸o viªn nhËn xÐt vµ yªu cÇu häc sinh về nhà viết chương trình ho[r]

(1)Bµi tËp thùc hµnh 5(tiÕt 1) Ngµy so¹n, ngµy th¸ng n¨m 2008 Ngµy gi¶ng, ngµy th¸ng n¨m 2008 Người soạn: Nguyễn Thị NhungA Giáo viên hướng dẫn: Ngô Thị Tú Quyên I Mục đích yêu cầu Củng cố cho học sinh hiểu biết kiểu xâu.Sau đã chuẩn bị bµi tËp ë nhµ, häc sinh cÇn cã ®­îc nh÷ng kü n¨ng c¬ b¶n lµm viÖc víi x©u lËp tr×nh Cô thÓ lµ:  Khai b¸o d÷ liÖu cho x©u, ®­a mµn h×nh gi¸ trÞ cña x©u  Duyệt qua tất các kí tự xâu để thực xử lý tương ứng vói kí tự đó  Sử dụng các hàm và thủ tục chuẩn đã trình bày SGK  Cung cấp cho học sinh vài thuật toán vản và đơn giản thường gặp xử lý văn bản, rèn luyện số kỹ cài đặt:  T¹o mét x©u míi tõ mét x©u ban ®Çu  §Õm sè lÇn xuÊt hiÖn cña mét ch÷ c¸i mét v¨n b¶n  Gãp phÇn h×nh thµnh vµ rµn luyÖn t­ lËp tr×nh, t¸c phong cña người lập trình II Néi dung cô thÓ ổn định lớp(1p) KiÓm tra sÜ sè : Tæng sè : V¾ng : Cã phÐp : Kh«ng phÐp : TriÓn khai bµi míi *Hoạt động : Hướng dẫn học sinh giải bài 1(SGK)(17p’) Hoạt động giáo viên Hoạt động học sinh GV : Một em hãy đọc yêu cầu HS: §äc bµi bµi tËp1 Lop11.com (2) Một em hãy xác định Input và + Input: X©u s Output cña bµi to¸n trªn ? + Output: Xâu s là xâu đối xứng s không phải là xâu đối xứng - NhËn xÐt, ®­a vÝ dô VD: X©u 1: aabccbaa X©u 2: accshkaa - Xâu nào là xâu đối xứng? Vì sao? - Xâu là xâu đối xứng vì đọc từ ph¶i sang tr¸i còng thu ®­îc kÕt đọc từ trái sang phải - Xâu không phải xâu đối xứng tương tự cách giải thích x©u - C¸ch khai b¸o mét x©u s? - s: string; - Hãy nêu ý tưởng thuật toán - Tạo xâu ngược với xâu ban dựa vào định nghĩa xâu đối ®Çu vµ so s¸nh xem x©u nµy cã xứng theo bài toán đã nêu? gi¸ trÞ b»ng hay kh«ng? - Dùa vµo VD3-VD4 (sgk-71,72) X:= length(s); mà các em đã học từ tiết P:=”; trước, em hãy viết cách tạo For i:= x down to xâu p ngược lại xâu ban đầu là xâu P:=P+s[i]; s? - Ta cÇn kiÓm tra xem x©u P cã - Sau t¹o x©u P ta cÇn lµm g×? b»ng víi x©u s kh«ng - C©u lÖnh If….Then… - Vậy để kiểm tra ta dùng câu lệnh nµo ? - If s=p then writeln(‘xâu đối - Mét em h·y kiÓm tra dïng c©u xøng’) lÖnh nµy Else Writeln(‘xâu không đối xứng’); - Các em hãy quan sát chương trình - Học sinh quan sát đoạn chương tr×nh s¸ch Lop11.com (3) (phÇn a-bt1-sgk73) - VD x©u aaabffbaaa Gọi học sinh đứng chỗ chạy chạy chương trình trên với xâu đã - Học sinh chạy chương trình trên cho b»ng thuyÕt tr×nh - NhËn xÐt : Ngoµi c¸ch trªn ta cßn cã c¸ch kh¸c nh­: + Dựa vào vị trí các ký tự đối xứng x©u mµ kh«ng cÇn ph¶i t¹o xâu chương trình trên VD: aabccbaa - NhËn xÐt ký tù ®Çu vµ ký tù cuèi? - Đây là hai cặp vị trí đối xứng Ký tự thứ và ký tự đứng xâu, và hai cặp vị trí đối xứng này trước ký tự cuối các kí tự tương ứng - Vậy xâu có độ dài n, ký tự vị - Ký tự vị trí i đối xứng với ký tự trí thứ i xâu đối xứng với ë vÞ trÝ: n-i+1 ký tù ë vÞ trÝ nµo x©u? - Để kiểm tra xem xâu đó có phải là - Nếu quá trình kiểm tra ta thấy xâu đối xứng không thì ta cần phải cặp vị trí đối xứng mà cặp kí tự đó kiÓm tra xem tÊt c¶ c¸c kÝ tù ë vÞ trÝ kh«ng cã gi¸ trÞ b»ng th× ta sÏ đối xứng xâu có dõng viÖc kiÓm tra Cßn hay kh«ng NÕu gÆp mét cÆp kh«ng th× ta ph¶i kiÓm tra tÊt c¶ c¸c vị trí đối xứng nào xâu vi cặp vị trí đối xứng xâu ph¹m th× kÕt luËn lu«n lµ x©u kh«ng phải là xâu đối xứng Như ta dừng việc kiểm tra các cặp đối xứng x©u nµo? - Xâu s có độ dài là n phải kiểm - Ta phải kiểm tra (n div 2) cặp tra tất các vị trí đối xứng ta phải vị trí đối xứng kiểm tra bao nhiêu cặp vị trí đối Lop11.com (4) xøng? - ViÖc kiÓm tra nµy ®­îc thùc hiÖn - Ta sÏ sö dông c©u lÖnh lÆp lặp lặp lại với các cặp vị trí đối xøng x©u vËy ta sÏ dïng c©u lệnh nào trường hợp này? - Trong trường hợp này ta nên dùng - Ta nªn sö dông c©u lÖnh lÆp c©u lÖnh lÆp nµo? V× sao? while V× qu¸ tr×nh kiÓm tra gặp cặp vị trí nào đối xøng th× ta dõng viÖc kiÓm tra kh«ng cÇn ph¶i kiÓm tra c¸c vÞ trÝ cßn l¹i cña x©u n÷a - Mét em h·y lªn b¶ng viÕt ®o¹n i :=1; chương trình thể cho việc kiểm While(i<= length(s) div 2) and (s[i]=s[length(s)-i+1]) tra trªn Gi¶ sö nhËp vµo x©u s i:=i+1; If i>(length(s) div 2) then Writeln(‘ xâu đối xứng’) Else Writeln(‘xâu không đối xứng’); - Gi¸o viªn nhËn xÐt vµ yªu cÇu häc sinh nhà viết chương trình hoàn chØnh theo c¸ch thø 2, kh«ng dïng biÕn x©u p Lop11.com - (5) *Hoạt động 2: Hướng dẫn học sinh giải bài tập 2(SGK-73)(20p’) Hoạt động giáo viên Hoạt động học sinh GV : Một em hãy đọc yêu cầu HS: §äc bµi bµi tËp (SGK-73) - Hãy xác định input và output + input: x©u s; bµi to¸n + output: Th«ng b¸o sè lÇn xuÊt hiÖn cña mçi ch÷ c¸i tiÕng anh x©u s(Kh«ng ph©n biÖt ch÷ hoa hay chữ thường) - HS : Nghe gi¶ng vµ ghi bµi - VD: cho x©u aAyxz123 Sè lÇn xuÊt hiÖn kÝ tù a lµ lÇn, kÝ tù y lµ lÇn, kÝ tù x lµ lÇn, kÝ tù z lµ lÇn - GV: Tõ vÝ dô nªu trªn em nµo h·y - HS: Đưa ý tưởng mình nêu ý tưởng để giải bài toán này? - GV: Nhận xét ý tưởng học sinh và đưa ý tưởng để giải bµi to¸n - Chú ý nghe ý tưởng giáo viên *ý tưởng: - Dïng m¶ng dem cã chØ sè tõ ‘A’ ’Z’.Khëi t¹o gi¸ trÞ cho m¶ng - ChuyÓn tÊt c¶ c¸c kÝ tù cña x©u s thµnh c¸c kÝ tù in hoa - Duyệt các kí tự xâu vµ kiÓm tra xem kÝ tù nµo lµ kÝ tù ch÷ c¸i th× t¨ng biÕn dem cho kÝ tự đó - KiÓm tra l¹i c¸c phÇn tö cña m¶ng nÕu phÇn tö nµo cña m¶ng Lop11.com (6) cã gi¸ trÞ kh¸c th× ®­a sè lÇn xuất kí tự tương ứng với chØ sè cña dem GV: Ph©n tÝch qua thuËt to¸n cho häc sinh hiÓu - Mét em h·y nªu c¸ch khai b¸o - a: array[1 10] of integer; mét biÕn thuéc kiÓu m¶ng - ChØ sè cña m¶ng lµ kiÓu ch÷ sè tương tự ta có thể khai b¸o chØ sè theo kiÓu kÝ tù lµ tõ ‘A’ ’Z’ - Giáo viên vứa phân tích ý tưởng và cùng viết chương trình hoàn chØnh víi häc sinh  Viết chương trình - Cùng giáo viên viết chương trình Var hoµn chØnh i: integer; dem: array[‘A’ ’Z’] of integer; s: string; j: char; begin write(‘nhap xau s’); readln(s); for j:= ‘A’ to ‘Z’ dem[j]:=0; for i:=1 to length(s) s[i]:= upcase(s[i]); for i:=1 to length(s) if (s[i]<= ‘Z’) and (s[i]>=’A’) then inc(dem[s[i]]); Lop11.com (7) for j:=’A’ to ‘Z’ if dem[j] <>0 then writeln(‘so lan xuat hien’,dem[j],’la’,dem[j],’lan’); end  Hoạt động 3: Hướng dẫn học sinh làm bài tập 3(sgk-73)(10p’) Hoạt động giáo viên Hoạt động học sinh - Yêu cầu học sinh đọc đề bài - §äc bµi tËp - Hãy xác định bài toán - VÝ dô s=’anh den mua’ -> s=’em den mua’ +Input: x©u s + Ouput: Thay thÕ tÊt c¶ côm kÝ tù ‘anh’ b»ng côm kÝ tù ‘em’ - Hãy nêu ý tưởng bài toán - Ta t×m vÞ trÝ cña tõ ‘¹nh’ xâu s Xoá cùm kí tự đó và chÌn ‘em’ vµo vÞ trÝ ‘anh’ võa xo¸ x©u s ViÕt x©u võa thay thÕ mµn h×nh - T×m vÞ trÝ cña x©u ‘anh’ th× ta sö - Pos(‘anh’,s)=vt dông hµm nµo? - Xãa côm kÝ tù ta dïng hµm nµo? - Delete(s,vt,3); - ChÌn tõ ‘em’ ta dïng hµm nµo? - Insert(‘em’,s,vt); Lop11.com (8) - Trong trường hợp này chúng ta - Ta sÏ sö dông c©u lÖnh While ch­a biÕt ®­îc cã bao nhiªu côm tõ ’anh’ x©u s nªn ta ph¶i sö dông c©u lÖnh nµo ? - Cùng học sinh viết chương trình hoµn chØnh  Viết chương trình Var Vt: byte; - Theo dâi gi¸o viªn cïng gi¸o viªn St: string; viết chương trình hoàn chỉnh Begin Writeln(‘nhap vao xau :’); Readln(s); While pos(‘anh’,s) <> Begin Vt:=pos (‘anh’,s); Delete(st,vt,3); Insert(‘em’,st,vt); End; Writeln(st); Readln; End Lop11.com (9) III Cñng cè(2p’) - Qua c¸c bµi tËp trªn chóng ta vÒ c¸ch t¹o x©u míi tõ x©u ban ®Çu, c¸ch sö dông mét sè hµm chuÈn nh­ upcase(),Pos(), Delete(), Insert() IV.Bµi tËp vÒ nhµ  Các em nhà tự chạy lại các chương trình trên test và trªn m¸y tÝnh Vµ lµm mét sè bµi tËp s¸ch bµi tËp bµi 4.39, 4.40, 4.42 giê sau chóng ta sÏ thùc hµnh trªn phßng m¸y Lop11.com (10) Nhận xét giáo viên hướng dẫn Lop11.com (11)

Ngày đăng: 01/04/2021, 20:25

w