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

giao an tin hoc 11 day du20122013

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 (660.64 KB, 96 trang )

<span class='text_page_counter'>(1)</span>Ngµy so¹n: 22/8/2012. TiÕt 1. CHÖÔNG I Mét sè kh¸i niÖm vÒ lËp tr×nh vµ ng«n ng÷ lËp tr×nh §1.Kh¸i niÖm lËp tr×nh vµ ng«n ng÷ lËp tr×nh I. Môc tiªu: 1. KiÕn thøc: - Biết đợc khái niệm về chơng trình dịch. - Phân biệt đợc hai loại chơng trình dịch là biên dịch và thông dịch. - Nắm đợc các thành phần của một ngôn ngữ lập trình nói chung 2. Kü n¨ng - BiÕt vai trß cña ch¬ng tr×nh dÞch - HiÓu ý nghÜa nhiÖm vô cña ch¬ng tr×nh dÞch 3.Thái độ: - ý thức đợc tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn từ t×m hiÓu häc tËp. II. PhÇn chuÈn bÞ 1. ChuÈn bÞ cña gi¸o viªn: - Gi¸o ¸n, SGK, s¸ch gi¸o viªn, s¸ch bµi tËp, 2. ChuÈn bÞ cña häc sinh: - Vở ghi, sách giáo khoa, sách bài tập, đồ dùng học tập. III. Hoạt động dạy –học: híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1.Hoạt động1 Gi¸o viªn ®a néi dung bµi to¸n t×m ph¬ng tr×nh bËc nhÊt ax + b = 0. Vµ kÕt luËn nghiÖm cña ph¬ng tr×nh bËc nhÊt - Hãy xác định các yếu tố Inputvà Output cña bµi to¸n ? - Hãy xác định các bớc để tìm output?. 1. Quan s¸t néi dung bµi to¸n vµ theo dâi yªu cÇu cña gi¸o viªn.. - Diễn giải; hệ thống các bớc này đợc gäi lµ thuËt to¸n . - NÕu tr×nh bµy thuËt to¸n víi mét ngêi níc ngoµi, em sÏ dïng ng«n ng÷ nµo dể diễn đạt? - Nếu diễn đạt thuật toán này cho máy hiÓu, em sÏ dïng ng«n ng÷ nµo? - Diễn giải : Hoạt động để diễn đạt mét thuËt to¸n th«ng qua mét ng«n ng÷ lập trình đợc gọi là lập trình . - Yêu cầu học sinh đọc sách giáo khoa vµ cho biÕt kh¸i niÖm lËp tr×nh . - Hỏi : Kết quả của hoạt động lập tr×nh? 2. Ph¸t phiÕu häc tËp. Yªu cÇu c¸c em ghi c¸c lo¹i ng«n ng÷ lËp tr×nh mµ em biết (Sử dụng kĩ thuật động não viết) - §äc néi dung mét sè phiÕu häc tËp cho c¶ líp cïng nghe.. - Input : a, b- output : x=-b/a . V« nghiÖm, V« sè nghiÖm. Bíc 1 : NhËp a, b. Bíc 2 : NÕu a<>0 kÕt luËn cã nghiÖm x=-b/a. Bíc 3 : NÕu a=0 vµ b<>0, kÕt luËn v« nghiÖm. Bíc 4 : NÕu a=0 vµ b=0, kÕt luËn v« sè nghiÖm . - Ng«n ng÷ TiÕng Anh . - Em dïng ng«n ng÷ lËp tr×nh.. - LËp tr×nh lµ viÖc sö dông cÊu tróc d÷ liÖu vµ các lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật to¸n. - Ta đợc một chơng trình. 2. Tham lh¶o s¸ch gi¸o khoa vµ sö dông vèn hiểu biết về tin học để điền phiếu học tập .. - Ng«n ng÷ m¸y. - Hîp ng÷. - Ng«n ng÷ bËc cao. - Ngôn ngữ máy : Các lệnh đợc mã hóa bằng các kí hiệu 0 – 1. Chơng trình đợc viết trên - Hỏi : Em hiểu nh thế nào về ngôn ngữ ngôn ngữ máy có thể đợc nạp vào bộ nhớ và m¸y, hîp ng÷ vµ ng«n ng÷ bËc cao? thùc hiÖn ngay..

<span class='text_page_counter'>(2)</span> - Ngôn ngữ bậc cao : Các lệnh đợc mã hóa b»ng mét ng«n ng÷ gÇn víi ng«n ng÷ TiÕng Anh. Ch¬ng tr×nh viÕt trªn ng«n ng÷ bËc cao phải đợc chuyển đổi thành chơng trình trên ngôn ngữ máy mới có thể thực hiện đợc. - Phải sử dụng một chơng trình dịch để chuyển đổi. - LËp tr×nh b»ng ng«n ng÷ bËc cao dÔ viÕt - Hỏi : Làm thế nào để chuyển một ch- hơn vì các lệnh đợc mã hóa gần với ngôn ngữ ¬ng tr×nh viÕt tõ ng«n ng÷ bËc cao sang tù nhiªn. LËp tr×nh trªn ng«n ng÷ m¸y rÊt khã, ng«n ng÷ m¸y? thêng c¸c chuyªn gia lËp tr×nh míi lËp tr×nh đợc. - HS suy nghÜ tr¶ lêi c©u hái - Hái : V× sao kh«ng lËp tr×nh trªn ngôn ngữ máy để khỏi phải mất công chuyển đổi mà ngời ta thờng lập trình b»ng ng«n ng÷ bËc cao? 2.Hoạt động 2. Em muèn giíi thiÖu vÒ trêng m×nh cho mét ngêi kh¸ch du lÞch quèc tÕ biết tiếng Anh, có hai cách để thực hiện : C¸ch 1 : CÇn mét ngêi biÕt tiÕng Anh, dÞch tõng c©u nãi cña em sang tiÕng Anh cho ngêi kh¸ch. C¸ch 2 : Em so¹n néi dung cÇn giíi thiÖu ra giÊy vµ ngêi phiªn dÞch dÞch toàn bộ nội dung đó sang tiếng Anh rồi đọc cho ngời khách. - H·y lÊy vÝ dô t¬ng tù trong thùc tÕ vÒ biªn dÞch vµ th«ng dÞch tõ tiÕng Anh sang tiÕng ViÖt. 2. Yªu cÇu häc sinh nghiªn cøu s¸ch giáo khoa và sử dụng các ví dụ trên để cho biÕt c¸c bíc trong tiÕn tr×nh th«ng dÞch vµ biªn dÞch.. Chó ý l¾ng nghe vÝ dô cña gi¸o viªn vµ th¶o luận để tìm ví dụ tơng tự .. - Khi thñ trëng mét chÝnh phñ tr¶ lêi pháng vÊn tríc mét nhµ b¸o quèc tÕ, hä thêng cÇn một ngời thông dịch để dịch từng câu tiếng ViÖt sang tiÕng Anh. - Khi thủ tớng đọc một bài diễn văn tiếngAnh trớc Hội nghị, họ cần một ngời phiên dịch để chuyÓn v¨n b¶n tiÕng ViÖt thµnh tiÕng Anh. 2. Nghiên cứu sách giáo khoa và suy nghĩ để tr¶ lêi. - Biªn dÞch : Bíc 1 : DuyÖt, ph¸t hiÖn lçi, kiÓm tra tÝnh đúng đắn của lệnh trong chơng trình nguồn. Bíc 2 : DÞch toµn bé ch¬ng tr×nh nguån thµnh mét ch¬ng tr×nh trªn ng«n ng÷ m¸y. (Thuận tiện cho các chơng trình ổn định và cÇn thùc hiÖn nhiÒu lÇn). - Th«ng dÞch : Bớc 1 : Kiểm tra tính đúng đắn của lệnh tiếp theo trong ch¬ng tr×nh nguån. Bớc 2 : Chuyển lệnh đó thành ngôn ngữ máy. Bớc 3 : Thực hiện các câu lệnh vừa đợc chuyển đổi . (phù hợp với môt trờng đối thoại giữa ngời và m¸y).. - B¶ng ch÷ c¸i tiÕng ViÖt, sè, dÊu. - C¸ch ghÐp c¸c kÝ tù thµnh tõ, phÐp tõ thµnh c©u. 3. Hoạt động 3 Đặt vấn đề : Có những yếu tố nào dùng - Ngữ nghĩa của từ thành câu. để xây dựng nên ngôn ngữ tiếng Việt? * Lắng nghe và ghi nhớ. * DiÔn gi¶i : Trong ng«n ng÷ lËp tr×nh còng t¬ng tù nh vËy, nã gåm cã c¸c. * Nghiªn cøu s¸ch gi¸o khoa, th¶o luËn theo.

<span class='text_page_counter'>(3)</span> thµnh phÇn : B¶ng ch÷ c¸i, có ph¸p vµ ng÷ nghÜa. * Chia líp thµnh 3 nhãm, ph¸t b×a trong vµ bót cho mçi nhãm vµ yªu cÇu mçi nhãm thùc hiÖn mét nhiÖm vô : - H·y nªu c¸c ch÷ c¸i cña b¶ng ch÷ c¸i tiÕng Anh. - Nêu các kí số trong hệ đếm thập ph©n. - Nêu một số kí hiệu đặc biệt khác.. nhãm vµ ®iÒn phiÕu häc tËp : B¶ng ch÷ c¸i : A B C D E F G H I J K L M N OPQRSTUVWXYZ. abcdefhgijklmnopqrstuvwxyz . Hệ đếm : 0 1 2 3 4 5 6 7 8 9 . Kí hiệu đặc biệt : + - * / = < > [ ] . , _ ; # ^ $ & ( ) { } : “ - Theo dâi kÕt qu¶ cña c¸c nhãm kh¸c vµ bæ sung nh÷ng thiÕu sãt . - TËp trung xem tranh vµ ghi nhí .. - Thu phiÕu tr¶ lêi, chiÕu kÕt qu¶ lªn bảng, gọi đại diện nhóm khác nhận xét, bæ sung. - Treo tranh giáo viên đã chuẩn bị để tiểu kết hoạt động này. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học. - Kh¸i niÖm lËp tr×nh vµ ng«n ng÷ lËp tr×nh. - Cã ba lo¹i ng«n ng÷ lËp tr×nh : Ng«n ng÷ m¸y, hîp ng÷ vµ ng«n ng÷ bËc cao. - Kh¸i niÖm ch¬ng tr×nh dÞch. - Cã hai lo¹i ch¬ng tr×nh dÞch lµ biªn dÞch vµ th«ng dÞch. - Thµnh phÇn cña ng«n ng÷ lËp tr×nh : B¶ng ch÷, có ph¸p vµ ng÷ nghÜa. 2. C©u hái vµ bµi tËp vÒ nhµ. - Mỗi loại ngôn ngữ lập trình phù hợp với những ngời lập trình có trình độ nh thế nµo? - KÓ tªn mét sè ng«n ng÷ lËp tr×nh bËc cao cã sö dông kÜ thuËt biªn dÞch vµ mét sè ng«n ng÷ lËp tr×nh cã sö dông kÜ thuËt th«ng dÞch. - Tr¶ lêi c¸c c©u hái 1, 2, 3, s¸ch gi¸o khoa trang 13. - Xem bµi häc thªm 1 : Em biÕt g× vÒ ng«n ng÷ lËp tr×nh? s¸ch gi¸o khoa trang 6 - Xem tríc bµi häc : C¸c thµnh phÇn cña ng«n ng÷ lËp tr×nh . ********** Ngµy so¹n: 27/8/2012. TiÕt 2. §2.C¸c thµnh phÇn cña ng«n ng÷ lËp tr×nh I. Môc tiªu: 1. KiÕn thøc: - Biết đợc một số khái niệm nh: tên, tên chuẩn, tên dành riêng… 2. Kü n¨ng - Phân biệt đợc tên chuẩn với tên dành riêng và tên tự đặt. - Nhớ các qui định về tên, hằng và biến. - Biết đặt tên đúng, nhận biết tên sai. 3. Thái độ - ý thức đợc tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn từ t×m hiÓu häc tËp. II. PhÇn chuÈn bÞ 1. ChuÈn bÞ cña gi¸o viªn: - Giao ¸n, SGK, s¸ch gi¸o viªn, s¸ch bµi tËp, 2. ChuÈn bÞ cña häc sinh: - Vở ghi, sách giáo khoa, sách bài tập , đồ dùng học tập. II. KiÓm tra bµi cò : III Bµi míi híng dÉn cña gi¸o viªn. Hoạt động của học sinh.

<span class='text_page_counter'>(4)</span> 2. Hoạt động 1 . * Đặt vấn đề : Mọi đối tợng trong chơng trình đều phải đợc đặt tên. - H·y nghiªn cøu s¸ch gi¸o khoa, trang 10, để nêu quy cách đặt tên trong Turbo Pascal? * Treo tranh chứa các tên đúng – sai, yêu cầu học sinh chọn tên đúng . A A BC 6Pq R12 X#y 45 - Tiểu kết cho vấn đề này bằng việc khẳng định lại các tên đúng . * Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa (trang 10 – 11 ) để biết các khái niÖm vÒ tªn giµnh riªng, tªn chuÈn vµ tªn do ngời lập trình đặt . - Chia líp thµnh 3 nhãm, mçi nhãm tr×nh bµy hiÓu biÕt cña m×nh vÒ mét lo¹i tªn vµ cho vÝ dô .. - Treo tranh chøu mét sè tªn trong ng«n ngữ lập trình Pascal đã đợc chuẩn bị sẵn : Program Abs Interger Type Xyx Byte tong - Ph¸t b×a trong vµ bót cho mçi nhãm vµ yªu cÇu häc sinh mçi nhãm thùc hiÖn : + Xác định tên giành riêng. + Xác định tên chuẩn . + Xác định tên tự đặt . - Thu phiÕu häc tËp cña ba nhãm, chiÕu kÕt qu¶ lªn b¶ng, gäi häc sinh nhãm kh¸c nhËn xÐt bæ sung . - Tiểu kết cho vấn đề này bằng cách bổ sung thêm cho mỗi nhóm để đa ra trả lời đúng .. * §éc lËp suy nghÜ vµ tr¶ lêi. * Nghiªn cøu s¸ch gi¸o khoa vµ tr¶ lêi . - Gåm ch÷ sè, ch÷ c¸i, dÊu g¸ch díi. - B¾t ®Çu b»ng ch÷ c¸i hoÆc dÊu g¹ch díi. - §é dµi kh«ng qu¸ 127 . * Quan s¸t tranh vµ tr¶ lêi . A R12 45. * Nghiên cứu sách giáo khoa để trả lời .. - Th¶o luËn theo nhãm vµ ®iÒn phiÕu häc tËp . + Tên dành riêng : Là những tên đợc ngôn ngữ lập trình quy định dùng với nghĩa xác định, ngời lập trình không đợc dùng với ý nghÜa kh¸c . + Tên chuẩn : Là những tên đợc ngôn ngữ lập trình quy định dùng với một ý nghĩa nào đó, ngời lập trình có thể định nghĩa lại để dùng nó với ý nghĩa khác. + Tên do ngời lập trình đặt : Là tên đợc dïng theo ý nghÜa riªng cña tõng ngêi lËp trình, tên này đợc khai báo trớc khi sử dông. C¸c tªn dµnh riªng. - Quan s¸t tranh vµ ®iÒn phiÕu häc tËp .. Tªn dµnh riªng : Program type Tªn chuÈn : Abs Interger Byte Tên tự đặt : Xyx Tong - Quan s¸t kÕt qu¶ cña nhãm kh¸c vµ nhËn xét, đánh giá và bổ sung. - Theo dõi bổ sung của giáo viên để hoàn thiÖn kiÕn thøc .. * §éc lËp suy nghÜ vµ tr¶ lêi . - H»ng sè : 50 60.5 - H»ng x©u : “Ha Noi” “A” - H»ng logic : False - H»ng sè häc lµ c¸c sè nguyªn vµ sè thùc, - tr×nh bµy kh¸i niÖm vÒ h»ng sè, h»ng x©u cã dÊu hoÆc kh«ng dÊu . - H»ng x©u : Lµ chuçi kÝ tù trong bé m· vµ h»ng logic . ASCII, đợc đặt trong cặp dấu nháy. 3. Hoạt đông 2 . * Yªu cÇu häc sinh cho mét sè vÝ dô vÒ h»ng sè, h»ng x©u vµ h»ng logic..

<span class='text_page_counter'>(5)</span> * Ghi bảng : Xác định hằng số và hằng x©u trong c¸c h»ng sau : - 32767 “QB” “50” 1.5E+2 * Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa, cho biÕt kh¸i niÖm biÕn . - Cho vÝ dô mét biÕn .. * Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa vµ hco biÕt chøc n¨ng cña chó thÝch trong ch¬ng tr×nh. - Cho mét vÝ dô vÒ mét dßngchó thÝch . - Hái : Tªn biÕn vµ tªn h»ng lµ tªn giµnh riªng hay tªn chuÈn hay tªn do ngêi lËp trình đặt ? - Hỏi :Các lệnh đợc viết trong cặp dấu {} có đợc TP thực hiện không? Vì sao?. - Hằng logic : Là giá trị đúng (true) Hoặc sai ( False) . * Quan s¸t b¼ng vµ tr¶ lêi . - H»ng sè : - 32767, 1.5E+2 - H»ng x©u : “QB” “50”. * Nghiªn cøu s¸ch gi¸o khoa vµ tr¶ lêi . - Biến là đại lợng đợc đặt tên dùng để lu trữ giá trị. Giá trị này có thể đợc thay đổi trong quá trình thực hiện chơng trình đều phải đợc khai báo . - VÞ dô hai tªn biÕn lµ : Tong, xyz . * Độc lập tham khảo sách giáo khoa để trả lêi . - Cú thích đợc đặt giữa cặp dấu { } hoặc (* *) dùng để giải thích cho chơng trình râ rµng dÔ hiÓu . - {Lenh xuat du lieu} - Là tên do ngời lập trình đặt . - Không. Vì đó là dòng chú thích .. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học . - Khái niệm : Tên, tên chuẩn, tên dành riêng, tên do ngời lập trình đặt, hằng, biến và chó thÝch. 2. C©u hái vµ bµi tËp vÒ nhµ . - Lµm bµi tËp 4, 5, 6, s¸ch gi¸o khoa, trang 13 . - Xem bài đọc thêm : Ngôn ngữ Pascal, sách giáo khoa, trang 14, 15, 16 . - Xem tríc bµi : CÊu tróc ch¬ng tr×nh, s¸ch gi¸o khoa, trang 18. - Xem néi dung phô lôc B, s¸ch gi¸o khoa trang 128 : Mét sè tªn giµnh riªng..

<span class='text_page_counter'>(6)</span> Ngµy so¹n: 29/8/2012. BµI TËP. TiÕt 3. I. Muïc Tieâu - Biết được tại sao cần phải có chương trình dịch - Biết được su khác nhau giữa thông dịch và biên dịch - Biết sự khác nhau giữa tên dành riêng và tên chuẩn - Viết được tên đúng theo quy tắc của Pascal. II. PhÇn chuÈn bÞ 1. ChuÈn bÞ cña gi¸o viªn: - Giao ¸n, SGK, s¸ch gi¸o viªn, s¸ch bµi tËp, 2. ChuÈn bÞ cña häc sinh: - Vở ghi, sách giáo khoa, sách bài tập , đồ dùng học tập. III. Hoạt Động Dạy Học híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Tại sao người ta phải xây dựng 1. Lắng nghe suy nghĩ và trả lời ngôn ngữ lập trình bậc cao? - Lập trình bằng ngôn ngữ bậc cao dễ viết hơn vì các lệnh được mã hoá gần với ngôn ngữ tự nhiên. Nhận xét, đánh giá và cho điểm Chương trình viết bằng ngôn ngữ lập trình bậc cao nói chung không phụ thuộc vào loại máy, nghĩa là 1 chương trình có thể thực hiện trên nhiều loại máy tính khaùc nhau 2. Chương trình dịch là gì? Tại sao - Chương trình dịch là 1 chương trình có chức năng caàn phaûi coù chöông trình dòch? chuyển đổi các ngôn ngữ khác sang ngôn ngữ máy. Cần phải có chương trình dịch để chuyển chương Nhận xét, đánh giá và cho điểm trình được viết bằng các ngôn ngữ khác thành ngôn ngữ máy thì máy tính mới có thể hiểu và thực hiên 3. Biên dịch và thông dịch khác được. nhau nhö theá naøo? - Trong thông dịch không có chương trình đích để lưu Nhận xét, đánh giá và cho điểm trữ. Trong biên dịch cả chương trình nguồn và chương 4. Điểm khác nhau giữa tên dành trình đích có thể lưu trữ lại để sử dụng về sau. rieâng vaø teân chuaån. - Tên dành riêng được dùng với ý nghĩa xác định, Nhận xét, đánh giá và cho điểm không được dùng với ý nghĩa khác. Tên chuẩn được dùng với ý nghĩa nhất định, có thể khai báo và dùng 5. Viết ra 3 tên đúng theo quy tắc với ý nghĩa khác. cuûa Pascal. - 3 tên đúng theo quy tắc của Pascal: Giaûi_PT; Baitap1nangcao; _1chuongtrinh; 6. Cho biết những biểu diễn không phải là biểu diễn hằng trong Pascal - Những biểu diễn không phải là biểu diễn hằng a> 150.0 b> -22 c> 6,23 trong Pascal: d> ‘43’ e> A20 f> c> e> g> h> 1.06E-15 g> 4+6 h> ‘C i> ‘True” Nhận xét, đánh giá và cho điểm IV. Đánh Giá Cuối Bài Caâu hoûi vaø baøi taäp veà nhaø - Tham khaûo theâm 1 soá baøi taäp trong saùch baøi taäp.

<span class='text_page_counter'>(7)</span> - Xem bài đọc thêm: Ngôn ngữ Pascal. Sách giáo khoa trang 14, 15, 16 - Xem trước bài: Cấu trúc chương trình. CH¦¥NG II: CH¦¥NG TR×NH §¥N GI¶N I. Môc tiªu cña ch¬ng . 1. Kiến thức: Học sinh cần nắm đợc: - CÊu tróc chung cña mét ch¬ng tr×nh vµ cÊu tróc cña mét ch¬ng tr×nh Pascal . - C¸c kiÕn thøc c¬ b¶n vÒ kiÓu d÷ liÖu chuÈn, c¸c phÐp to¸n, biÓu thøc, c©u lÖnh g¸n, thủ tục vào/ra đơn giản. - C¸ch so¹n th¶o, biªn dÞch thùc hiÖn vµ hiÖu chØnh ch¬ng tr×nh trong m«i trêng Turbo Pascal. 2. KÜ n¨ng . - BiÕt khai b¸o biÕn. - Biết viết đúng các biểu thức đơn giản trong chơng trình. - Biết khởi động và thoát khỏi Turbo Pascal. - Biết soạn thảo, dịch và thực hiện một số chơng trình Pascal đơn giản theo mẫu có s½n. - Bớc đầu làm quen với lập trình giải một số bài toán đơn giản. 3. Thái độ. - Nghiêm túc trong học tập khi tiếp xúc với nhiều quy định nghiêm ngặt trong lập tr×nh. - cã ý thøc cè g¾ng trong häc tËp vît qua nh÷ng khã kh¨n ë giai ®o¹n ®Çu khi häc lËp tr×nh. - Ham muốn giải các bài tập bằng lập trình, thấy đợc lợi ích của lập trình phục vụ tính to¸n. II. Néi dung cña ch¬ng. Néi dung chñ yÕu cña ch¬ng lµ : - CÊu tróc chung cña mét ch¬ng tr×nh. - Mét sè kiÓu d÷ liÖu chuÈn: KiÓu nguyªn, thùc, kÝ tù, logic. - PhÐp to¸n, biÓu thøc sè häc, biÓu thøc quan hª, biÓu thøc logic, hµm sè häc. - Khai báo biến, lệnh gán, tổ chức vào/ra dữ liệu đơn giản. - So¹n th¶o, dÞch, thùc hiÖn vµ hiÖu chØnh ch¬ng tr×nh.. Ngµy so¹n: 8/9/2012. §3. CÊu tróc ch¬ng tr×nh. TiÕt 4. I. Môc tiªu: 1. Kiến thức: Học sinh cần nắm đợc: - CÊu tróc chung cña mét ch¬ng tr×nh vµ cÊu tróc cña mét ch¬ng tr×nh Pascal . 2. Thái độ - ý thức đợc tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn từ t×m hiÓu häc tËp. II. PhÇn chuÈn bÞ 1. ChuÈn bÞ cña gi¸o viªn: - Giao ¸n, SGK, s¸ch gi¸o viªn, s¸ch bµi tËp, 2. ChuÈn bÞ cña häc sinh: - Vở ghi, sách giáo khoa, sách bài tập , đồ dùng học tập.. III Bµi míi 1. Caáu truùc chung. híng dÉn cña gi¸o viªn Hoạt động của học sinh 1. Phát vấn gợi ý: Một bài tập làm văn em 1. Lắng nghe và suy nghĩ trả lời: thường viết có mấy phần? Các phần có thứ - Có 3 phần.

<span class='text_page_counter'>(8)</span> tự không? Vì sao phải chia ra như vậy?. - Có thứ tự: mở bài, thân bài, kết luận - Dễ viết, dễ đọc, dễ hiểu nội dung 2. Yêu cầu học sinh nghiên cứu sách giáo 2. Nghiên cứu sách giáo khoa, thảo luận và khoa để trả lời câu hỏi sau: một chương trả lời trình coù caáu truùc maáy phaàn - Hai phaàn: [<phaàn khai baùo>] <phaàn thaân chöông trình> 2. Caùc thaønh phaàn cuûa chöông trình. híng dÉn cña gi¸o viªn 1. Yêu cầu học sinh nghiên cứu sách giáo khoa để trả lời các câu hỏi sau: - Trong phần khai báo có những khai báo naøo?. Hoạt động của học sinh 1. Nghiên cứu sách giáo khoa, thảo luận và trả lời - Khai baùo teân chöông trình, khai baùo thö vieän chöông trình con, khai baùo haèng, khai baùo bieán vaø khai baùo chöông trình con.. - Yeâu caàu hoïc sinh laáy ví duï khai baùo teân chương trình trong ngôn ngữ Pascal. - Yeâu caàu hoïc sinh laáy ví duï khai baùo thö viện chương trình con trong ngôn ngữ Pascal. - Yeâu caàu hoïc sinh laáy ví duï khai baùo haèng trong ngôn ngữ Pascal. - Yeâu caàu hoïc sinh laáy ví duï khai baùo bieán trong ngôn ngữ Pascal.. - Caáu truùc: Program ten_chuong_trinh; - Ví duï: Program tinh_tong; - Caáu truùc: Uses ten_thu_vien; - Ví duï: Uses crt; - Caáu truùc: Const ten_hang=gia_tri; - Ví duï: Const maxn=100; - Cấu trúc: Var ten_bien:Kiểu_dữ_liệu; - Ví duï: Var a,b,c:Integer; (a,b,c laø bieán nguyeân). - Yeâu caàu hoïc sinh cho bieát caáu truùc chung Begin của phần thân chương trình trong ngôn ngữ Daõy caùc leänh; laäp trình Pascal. End. 3. Ví duï chöông trình ñôn giaûn. híng dÉn cña gi¸o viªn 1. Tìm hieåu 1 chöông trình ñôn giaûn. Vieát leân baûng 1 chöông trình ñôn giaûn trong ngôn ngữ Pascal Program VD1; Var x,y:byte; t:word; Begin T:=x+y; Writeln(t); Readln; End. - Hoûi: phaàn khai baùo cuûa chöông trình? - Hoûi: phaàn thaân cuûa chöông trình? Coù leänh. Hoạt động của học sinh - Khai baùo teân chöông trình: Program VD1; - Khai baùo bieán: Var x,y:byte; t:word; - Coøn laïi laø phaàn thaân. - Leänh gaùn, leänh ñöa thoâng baùo ra maøn hình.

<span class='text_page_counter'>(9)</span> naøo trong thaân chöông trình? 2. Yêu cầu học sinh lấy 1 ví dụ về 1 chương 2. Thảo luận và trả lời trình trong Pascal khoâng coù phaàn teân vaø Begin phaàn khai baùo Writeln(‘Hello’); Readln; End. IV. Đánh Giá Cuối Bài 1. Những nội dung đã học: Moät chöông trình goàm coù 2 phaàn: + Phaàn khai baùo + Phaàn thaân chöông trình 2. Caâu hoûi vaø baøi taäp veà nhaø - Xem trước nội dung bài: Một số kiểu dữ liệu chuẩn. Ngµy so¹n: 13/9/2012. TiÕt 5. §4.mét sè kiÓu d÷ liÖu chuÈn §5. khai b¸o biÕn I. Môc tiªu 1. KiÕn thøc. - Biết đợc cấu trúc chung của một chơng trình. - Biết đợc một số kiểu dữ liệu chuẩn: Nguyên, thực, kí tự, logic. - Biết đợc cấu trúc chung của khai báo biển. 2. KÜ n¨ng. - Sử dụng đợc kiểu dữ liệu và khai báo biến để viết đợc một chơng trình đơn giản. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - Máy vi tính và máy chiếu projector dùng để chiếu các ví dụ. - Tranh có chứa một số khai báo biến để học sinhc họn đúng – sai . - Mét sè ch¬ng tr×nh mÉu viÕt s½n. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. Hoạt động dạy – học 1. Hoạt động 1 : Tìm hiểu cấu trúc chung và các thành phần của chơng trình. híng dÉn cña gi¸o viªn. 1. Ph¸t vÊn gîi ý : Métbµi tËp lµm v¨n em thêng viÕt cã mÊy phÇn? C¸c phÇn cã thø tù kh«ng? V× sao ph¶i chia ra nh vËy?. Hoạt động của học sinh. 1. L¾ng nghe vµ suy nghÜ tr¶ lêi : - Cã ba phÇn. - Cã thø tù : Më bµi, th©n bµi, kÕt luËn. - Dễ viết, dễ đọc, dễ hiểu nội dung. 2. Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o 2. Nghiªn cøu s¸ch gi¸o khoa, th¶o luËn khoa để trả lời các câu hỏi sau: vµ tr¶ lêi. - Mét ch¬ng tr×nh cã cÊu tróc mÊy phÇn? + Hai phÇn : [<phÇn khaib¸o>] <PhÇn th©n ch¬ng tr×nh> - trong phÇn khai b¸o cã nh÷ng khai b¸o - Khai b¸o tªn ch¬ng tr×nh, khai b¸o th nµo? viÖn ch¬ng tr×nhcon, khai b¸o h»ng, khai b¸o biÕn vµ khai b¸o ch¬ng tr×nh con. CÊu tróc : Program - Yªu cÇu häc sinh lÊy vÝ dô khai b¸o tªn.

<span class='text_page_counter'>(10)</span> ch¬ng tr×nh trong ng«n ng÷ Pascal. - Yªu cÇu häc sinh lÊy vÝ dô khai b¸o th viÖn ch¬ng tr×nh con trong ng«n ng÷ Pascal. - Yªu cÇu häc sinh lÊy vÝ dô khai b¸o h»ng trong ng«n ng÷ Pascal. - Yªu cÇu häc sinh lÊy vÝ dô khai b¸o biÕn trong ng«n ng÷ Pascal. - Yªu cÇu häc sinh cho biÕt cÊu tróc chung cña phÇn th©n ch¬ng tr×nh trong ng«n ng÷ lËp tr×nh Pascal. 3. Tìm hiểu một chơng trình đơn giản. - Chiếu lên bảng một chơng trình đơn gi¶n trong ng«n ng÷ C++ . # include <stdio.h> void main() { Printf(“Xin chao cac ban”); } - Hái : PhÇn khai b¸o cña ch¬ng tr×nh? - Hái : PhÇn th©n cña ch¬ng tr×nh, lÖnh pr×nt cã chøc n¨ng g×? - Chiếu lên bảng một chơng trình đơn gi¶n trong ng«n ng÷ Pascal. Program VD1 ; Var x,y:byte; t:word; Begin t:=x+y; Writeln(t); readln; End - Hái : PhÇn khai b¸o cña ch¬ng tr×nh?. - Hái : PhÇn th©n cña ch¬ng tr×nh? Cã lÖnh nµo trong th©n ch¬ng tr×nh? 4. Yªu cÇu häc sinh lÊy mét vÝ dô vÒ mét ch¬ng tr×nh Pascal kh«ng cã phÇn tªn vµ phÇn khai b¸o.. ten_chuong_trinh ; - VÝ dô : Program tinh_tong ; - CÊu tróc : Uses tªn_th_viÖn; - VÝ dô : Uses crt ; - CÊu tróc : Const tªn_h»ng = gi¸_trÞ; - VÝ dô : Const maxn=100; CÊu tróc : Var tªn_biÕn=kiÓu_d÷_liÖu; - VÝ dô : Var a, b, c : integer; Begin D·y c¸c lÖnh; End. 3. Quan s¸t tranh vµ tr¶ lêi.. - PhÇn khai b¸o chØ cã mét khai b¸o th viÖn stdio.h - PhÇn th©n {} - Lệnh printf dùng để đa thông báo ra mµn h×nh.. - Khai b¸o tªn ch¬ng tr×nh : Program VD1; - Khai b¸o biÕn : Var x, y:byte ;t:word; Var x, y:byte; t:word; - Cßn l¹i lµ phÇn th©n. - LÖnh g¸n, lÖnh ®a th«ng b¸o ra mµn h×nh. 4. Th¶o luËn vµ tr¶ lêi Begin Writeln(“Hello”); Readln; End.. 2. Hoạt động 2 : Tìm hiểu một số dữ liệu chuẩn. híng dÉn cña gi¸o viªn. 1. Đặt vấn đề: Trong toán học, để thực hiện đợc tính toán ta cần phải có các tập sè. §ã lµ c¸c tËp sè nµo? - DiÔn gi¶i: Còng t¬ng tù nh vËy, trong ngôn ngữ lập trình Pascal, để lập trình giải quyÕt c¸c bµi to¸n, cÇn cã c¸c tËp hîp, mçi. Hoạt động của học sinh. 1. Chó ý, L¾ng nghe vµ suy nghÜ tr¶ lêi: - Sè tù nhiªn, sè nguyªn, sè h÷u tØ, sè thùc..

<span class='text_page_counter'>(11)</span> tập hợp có một giới hạn nhất định. - C¸c em cã thÓ hiÓu n«m na: KiÓu d÷ liÖu chuÈn lµ mét tËp h÷u h¹n c¸c gi¸ trÞ, mçi kiÓu d÷ liÖu cÇn mét dung lîng bé nhí cần thiết để lu trữ và xác định các phép toán có thể tác động lên dữ liệu. 2. Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa, tr¶ lêi c¸c c©u hái sau: - Cã bao nhiªu kiÓu d÷ liÖu chuÈn trong ng«n ng÷ Pascal? - trong ng«n ng÷ Pascal, cã nh÷ng kiÓu nguyªn nµo thêng dïng, ph¹m vi biÓu diÓn cña mçi lo¹i? - trong ng«n ng÷ Pascal, cã nh÷ng kiÓu sè thùc nµo thêng dïng, ph¹m vi biÓu diÔn cña mçi lo¹i? - trong ng«n ng÷ Pascal, cã bao nhiªu kiÓu kÝ tù? - trong ng«n ng÷ Pascal, cã bao nhiªu kiÓu logic, gåm c¸c gi¸ trÞ nµo? 3. Giáo viên giải thích một số vấn đề cho häc sinh: + V× sao ph¹m vi biÓu diÔn cña c¸c lo¹i kiÓu nguyªn kh¸c nhau? + MiÒm gi¸ trÞ cña c¸c lo¹i kiÓu thùc, sè ch÷ sè cã nghÜa? 4. Ph¸t vÊn: Muèn tÝnh to¸n trªn c¸c gi¸ trÞ : 4 6 7.5 ta ph¶i sö dông d÷ liÖu g×?. - Liªn tëng c¸c tËp sè trong to¸n häc víi mét kiÓu d÷ liÖu trong Pascal?. 2. Nghiªn cøu s¸ch gi¸o khoavµ tr¶ lêi. - Cã 4 kiÓu: KiÓu nguyªn, kiÓu thùc, kiÓu kÝ tù vµ kiÓu logic. - Cã 4 lo¹i: Byte, word, integer vµ longint. - Cã 2 lo¹i: real, extended. - Cã 1 lo¹i: Char. - Cã mét lo¹i: boolean, gåm 2 phÇn tö: True vµ False. 3. Chó ý l¾ng nghe vµ ghi nhí .. 4. Suy nghÜ vµ tr¶ lêi. KiÓu Real. 3. Hoạt động 3: tìm hiểu cách khai báo biến. híng dÉn cña gi¸o viªn. 1. Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa vµ cho biÕt v× sao ph¶i khai b¸o biÕn?. Hoạt động của học sinh. 1. Nghiªn cøu s¸ch gi¸o khoa vµ tr¶ lêi. - Mọi biến dùng trong chơng trình đều phải đợc khai báo tên biến và kiểu dữ liệu của biến. Tên biến dùng để xác lập quan hệ giữa biến và địa chỉ bộ nhớ nơi lu giữ gi¸ trÞ cña biÕn. - Var <danh s¸ch biÕn>: <kiÓu d÷ - CÊu tróc chung cña khai b¸o biÕn trong liÖu>; ng«n ng÷ Pascal. Var x: word; - Cho ví dụ để khai báo một biến nguyên y: char; vµ mét biÕn kiÓu kÝ tù. 2. Quan sát tranh và chọn khai báo đúng. 2. Treo tranh cã chøa mét sè khai b¸o vµ yêu cầu học sinh chọn khai báo đúng trong ng«n ng÷ lËp tr×nh Pascal? Var x, y, z: word; Var n 1: real; x, y, z: word; X: longint; i: byte; h: integer; i: byte; 3. Treo tranh cã chøa mét sè khai b¸o 3. Quan s¸t tranh vµ tr¶ lêi. biÕn trong Pascal. - Cã 5 biÕn. - Hái: Cã bao nhiªu biÕn tÊt c¶, Bé nhí - tæng bé nhí cÇn cÊp ph¸t. ph¶i cÊp ph¸t lµ bao nhiªu? x (2 byte); y (2 byte); z (4 byte); Var x, y: word; h (2 byte); i (1 byte); táng 11 byte z: longint; h: integer; i: byte;.

<span class='text_page_counter'>(12)</span> IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học - Mét ch¬ng tr×nh gåm cã hai phÇn: PhÇn khai b¸o vµ phÇn th©n. - C¸c kiÓu d÷ liÖu chuÈn: KiÓu sè nguyªn, kiÓu sè thùc, kiÓu kÝ tù, kiÓu logic. - Mọi biến trong chơng trình phải đợc khai báo. Cấu trúc chung của khai báo biến trong Pascal: Var tªn_ biÕn: tªn_kiÓu_d÷_liÖu; 2. C©u hái vµ bµo tËp vÒ nhµ - Lµm bµi tËp 1, 2, 3, 4, 5, schs gi¸o khoa, trang 35. - Xem tríc néi dung bµi: PhÐp to¸n, biÓu thøc, lÖnh g¸n, s¸ch gi¸o khoa, trang 24. - Xem néi dung phô lôc B, s¸ch gi¸o khao , trang 129: Mét sè kiÓu d÷ liÖu chuÈn, mét sè thñ tôc vµ hµm chuÈn.. Ngµy so¹n: 20/9/2012. TiÕt 6. §6. PhÐp to¸n, biÓu thøc, lÖnh g¸n I. Môc tiªu 1. KiÕn thøc - Biết đợc các phép toán thông dụng trong ngôn ngữ lập trình. - Biểu diễn đạt một hình thức trong ngôn ngữ lập trình. - Biết đợc chức năng của lệnh gán. - Biết đợc cấu trúc của lệnh gán và một số hàm chuẩn trông dụng trong ngôn ngữ lập tr×nh Pascal. 2. kÜ n¨ng - Sử dụng đợc các phép toán để xây dựng biểu thức. - Sử dụng đợc lệnh gán để viết chơng trình. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn - S¸ch gi¸o khoa, tranh chøa c¸c biÓu thøc trong to¸n häc. - Tranh chøa b¶ng c¸c hµm sè häc chuÈn, tranh chøa b¶ng ch©n trÞ. - m¸y vi tÝnh vµ m¸y chiÕu Projector. 2. ChuÈn bÞ cña häc sinh - S¸ch gi¸o khoa. III. Hoạt động dạy – học 1. Hoạt động 1 : Tìm hiểu một số phép toán. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. đặt vấn đề: để mô tả các thao tác trong 1. Chó ý l¾ng nghe. thuật toán, mỗi ngôn ngữ lập trình đếu sử dông mét sè kh¸i niÖm c¬ b¶n: PhÐp to¸n, biÓu thøc, g¸n gi¸ trÞ. 2. Phát vấn: Hãy kể các phép toán em đã 2. Suy nghÜ vµ tr¶ lêi : đợc học trong toán học. - PhÐp: Céng, trõ, nh©n, chia, lÊy sè d, - DiÔn gi¶i: Trong ng«n ng÷ lËp trßnh chia lÊy nguyªn, so s¸nh. Pascal cũng có các phép toán đó nhng đợc diễn đạt bằng một cách khác. - Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o - C¸c phÐp to¸n sè häc: + - * / div mod khoa vµ cho biÕt c¸c nhãm phÐp to¸n. - C¸c phÐp to¸n quan hÖ: <, <=, >, >=, =, <> - C¸c phÐp to¸n logic: And, Or, Not. - Hỏi : Phép Div, Mod đợc sử dụng cho - Chỉ sử dụng đợc cho kiểu nguyên. nh÷ng kiÓu d÷ liÖu nµo? - Thuéc kiÓu logic. - Hái: KÕt qu¶ cña phÐp to¸n quan hÖ thuéc kiÓu d÷ liÖu nµo? 2. hoạt động 2: Tìm hiểu biểu thức..

<span class='text_page_counter'>(13)</span> Hµm b×nh ph¬ng: SQR(X) C¨n bËc hai: SQRT(X) Gái trị tuyệt đối: ABS(X) Sin(X) Cos(X) logarit tù nhiªn lnx ln(x) Lòy thõa cña sè e ex exp(x). Kiểu đối số I hoÆc R I hoÆc R I hoÆc R I hoÆc R I hoÆc R I hoÆc R I hoÆc R. KiÓu hµm sè Theo kiểu của đối số R Theo kiểu của đối số R R R R. - Hai biểu thức có cùng kiểu dữ liệu đợc liên kết với nhau bởi phép toán quan hệ cho ta mét biÓu thøc quan hÖ. <biÓu_thøc_1> <phÐp_to¸n_quan_hÖ> <biÓu_thøc_2> - Thø tù thùc hiªn.: + tÝnh gi¸ trÞ c¸c biÓu thøc. + Thùc hiÖn phÐp to¸n quan hÖ. - Các biểu thức quan hệ liên kết với nhau bởi phép toán logic ta đợc biểu thức logic. Biểu thức logic đơn giản là giá trị True hoặc Flase. c. C¸c bíc tiÕn hµnh. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Nêu vấn đề: trong toán học ta đợc làm 1. Suy nghÜ vµ tr¶ lêi. quen víi kh¸i niÖm biÓu thøc, h·y cho biÕt - Gåm hai phÇn: To¸n h¹ng vµ to¸n tö. yÕu tè c¬ b¶n x©y dùng nªn biÓu thøc. - BiÓu thøc sè häc. - NÕu trong mét bµi to¸n mµ to¸n h¹ng lµ biÕn sè, h»ng sè hoÆc hµm sè vµ to¸n tö lµ c¸c phÐp to¸n sè häc th× biÓu thøc cã tªn gäi lµ g×? 2. Treo tranh cã chøa biÓu thøc to¸n häc 2. Quan s¸t vµ tr¶ lêi. lªn b¶ng, yªu cÇu: Sö dông c¸c phÐp to¸n 2*a+5*b+c sè häc, h·y biÓu diÔn biÓu thøc to¸n häc x*y/(2*z) sau thµnh biÓu thøc trong ng«n ng÷ lËp ((x+y)/(1 – (2 /z)))+(x*x/(2*z)) tr×nh. 2a+5b+c xy 2z x+y + x2 1- 2 2z z - Nghiªn cøu s¸ch gi¸o khoa vµ tõ viÖc - Thùc hiÖn trong ngoÆc tríc; Ngoµi ngoÆc x©y dùng c¸c biÓu thøc trªn, h·y nªu thø tù sau. Nh©n, chia, c«ng, trõ sau. thùc hiÖn c¸c phÐp to¸n. 3. Nêu vấn đề: trong toán học ta đã làm 3. Suy nghÜ vµ tr¶ lêi. quen víi mét sè hµm sè häc, h·y kÓ tªn Hàm tri tuyệt đối, hàm căn bậc hai, hàm một số hàm đó? sin, hµm cos. - Trong mét sè ng«n ng÷ lËp tr×nh ta cũng có một số hàm nh vậy nhng đợc diễn đạt bằng một cách khác. - Treo tranh chøa b¶ng mét sè hµm - Quan s¸t tranh vÏ, nghiªn cøu s¸ch gi¸o chuÈn, yªu cÇu häc sinh ®iÒn thªm c¸c khoa vµ lªn b¶ng ®iÒn tranh. th«ng tin nh chøac n¨ng cña hµm , kiÓu cña đối số và kiểu của hàm số. - cho biÓu thøc: -b + h·y - Suy nghÜ, lªn b¶ng tr¶ lêi. biÓu diÔn biÓu thøc trªn sang biÓu thøc (-b+sqrt(b*b – 4*a*c))/(2*a) trong ng«n ng÷ lËp tr×nh . 4. Nêu vấn đề : Khi hai biểu thức số học 4. Suy nghÜ vµ tr¶ lêi. liªn kÕt víi nhau b»ng phÐp to¸n quan hÖ - Gäi lµ biÓu thøc quan hÖ. ta đợc một biểu thức mới, biểu thức đó gọi.

<span class='text_page_counter'>(14)</span> lµ biÓu thøc g×? - H·y lÊy mét vÝ dô vÒ biÓu thøc quan - VÝ dô: 2*x<y hÖ? - CÊu tróc chung: - Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o <BT1> <phÐp to¸n qh> <BT2> khoa vµ cho biÕt cÊu tróc chung cña biÓu thøc quan hÖ? + TÝnh gi¸ trÞ biÓu thøc - Thø tù thùc hiÖn cña biÓu thøc quan + Thùc hiÖn phÐp to¸n quan hÖ. hÖ? - Cho biÕt kÕt qu¶ cña phÐp to¸n quan hÖ - KiÓu logic. thuộc kiểu dữ liệu nào đã học? 5. Nêu vấn đề: Các biểu thức quan hệ đợc 5. Chú ý theo dõi dẫn dắt của giáo viên và liên kết với nhau bởi phép toán Logic đợc suy nghĩ để trả lời. gäi lµ biÓu thøc Logic. - H·y cho mét sè vÝ dô vÒ biÓu thøc logic. - VÝ dô: (A>B) or ((X+1)<Y) vµ (5>2) - trong to¸n häc ta cã biÓu thøc and ((3+2)<7). 5<=x<=11, h·y biÓu diÔn biÓu thøc nµy - BiÓu thøc trong ng«n ng÷ lËp tr×nh : trong ng«n ng÷ lËp tr×nh. (5<=x) and (x<=11). - Thø tù thùc hiÖn biÓu thøc logic. + Thùc hiÖn c¸c biÓu thøc quan hÖ. + Thùc hiÖn phÐp to¸n logic. - KÕt qu¶ cña biÓu thøc logic cã kiÓu d÷ - KiÓu logic. liÖu g×? - Treo tranh cã chøa b¶ng ch©n trÞ cña A - Häc sinh suy nghÜ vµ tr¶ lêi b»ng c¸ch vµ B, yªu cÇu häc sinh ®iÒn gi¸ trÞ cho A ®iÒn vµo b¶ng. and B; A or B; not A. 3. Hoạt động 3 : Tìm hiểu lệnh gán. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. - Giíi thiÖu mét sè vÝ dô vÒ lÖnh g¸n trong Pascal nh sau: x:=4+8; - Gi¶i thÝch: LÊy 4 céng 8, ®em kÕt qu¶ đặt vào x. Ta đợc x=12. - Hái : H·y cho biÕt chøc n¨ng cña lÖnh g¸n? - Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa vµ cho biÕt cÊu tróc chung cña lÖnh g¸n trong ng«n ng÷ Pascal. - Hãy cho một ví dụ để tính nghiệm của ph¬ng tr×nh bËc hai.. - Quan sát ví dụ và suy nghĩ để trả lời.. + TÝnh gi¸ trÞ cña biÓu thøc. + Gán giá trị tính đợc và tên một biến. <tªn_biÕn>:=<biÓu_thøc>; x:=(-b+sqrt(b*b – 4*a*c))/(2*a);. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học. - C¸c phÐp to¸n trong Turbo Pascal: Sè häc, quan hÖ vµ logic. - C¸c biÓu thøc trong Turbo Pascal: Sè häc, quan hÖ vµ logic - CÊu tróc lÖnh g¸n trong Turbo Pascal: tªn_biÕn :=biÓu_thøc; 2. C©u hái vµ bµi tËp vÒ nhµ - Lµm bµi tËp 5, 6, 7, 8, s¸ch gi¸o khoa, trang 35 – 36; - Xem phô lôc A, s¸ch gi¸o khoa trang 121: Mét sè phÐp to¸n thêng dïng vµ gi¸ trÞ phÐp to¸n logic.. Ngµy so¹n: 27/9/2012. TiÕt 7,8. Đ7. Các thủ tục chuẩn vào/ra đơn giản §8. So¹n th¶o dÞch, thùc hiÖn vµ hiÖu.

<span class='text_page_counter'>(15)</span> chØnh ch¬ng tr×nh I. Môc tiªu 1. KiÕn thøc - Biết đợc ý nghĩa của các thủ tục và/ra chuẩn đối với lập trình. - Biết đợc cấu trúc chung của thủ tục vào/ra trong ngôn ngữ lập trình Pascal. - Biết đợc các bớc để hoàn thành một chơng trình. - BiÕt c¸c file ch¬ng tr×nh c¬ b¶n cña Turbo Pascal 7.0 2. KÜ n¨ng. - Viết đúng lệnh vào/ra dữ liệu. - Biết nhập đúng dữ liệu khi thực hiện chơng trình. - Biết khởi động và thoát hệ soạn thảo Turbo Pascal. - Soạn đợc một chơng trình vào máy. - Dịch đợc chơng trình đê phát hiện lỗi cú pháp. - Thực hiện đợc chơng trình để nhập dữ liệu và thu kết quả, tìm lỗi thuật toán và sửa lçi. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn - S¸ch gi¸o khoa, tranh chøa c¸c biÓu thøc trong to¸n häc, m¸y chiÕu Projector, m¸y vi tÝnh, mét sè ch¬ng tr×nh viÕt s½n. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. Hoạt động dạy – học 1. Hoạt động 1: tìm hiểu thủ tục nhập dữ liệu và từ bàn phím. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. nêu vấn đề: Khi giải quyết một bài 1. Chó ý l¾ng nghe dÉn d¾t cña gi¸o viªn. toán, ta phải đa dữ liệu vào để máy tính xử lÝ, viÖc ®a d÷ liÖu b»ng lÖnh g¸n sÏ lµm cho ch¬ng tr×nh chØ cã t¸c dông víi mét d÷ liÖu cố định. Để chơng trình giải quyết đợc nhiÒu bµi to¸n h¬n, ta pahØ sö dông thñ tôc nhËp d÷ liÖu. - Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o - Nghiªn cøu s¸ch gi¸o khoa vµ suy nghÜ khoa và cho biết cấu trúc chung của thủ tục để trả lời. nhËp d÷ liÖu trong ng«n ng÷ lËp tr×nh Read(<tªn_biÕn_1>,...,<tªn_biÕn_k>); Pascal: Readln(<tªn_biÕn_1>,...,<tªn_biÕn_k>); - Nªu vÝ dô: Khi viÕt ch¬ng tr×nh gi¶i - Ph¶i nhËp gi¸ trÞ cho hai biÕn: a, b. ph¬ng tr×nh ax+b=0, ta ph¶i nhËp vµo c¸c - ViÕt lÖnh: Readln(a,b); đại lợng nào? Viết lệnh nhập? 2. Chiếu một chơng trình Pascal đơn giản 2. Quan sát chơng trình ví dụ của giáo cã lÖnh nhËp gi¸ trÞ cã hai biÕn. viªn. - thùc hiÖn ch¬ng tr×nh vµ thùc hiÖn nhËp d÷ liÖu. - Hái : Khi nhËp gi¸ trÞ cho nhiÒu biÕn, - Những giá trị này phải đợc gõ cách nhau ta ph¶i thùc hiÖn nh thÕ nµo? Ýt nhÊt mét dÊu c¸ch hoÆc kÝ tù xuèng dßng. - Yªu cÇu häc sinh thùc hiÖn nhËp d÷ liÖu - Lªn b¶ng thùc hiÖn nhËp theo yªu cÇu cho ch¬ng tr×nh. cña gi¸o viªn. 2. Hoạt động 2: Tìm hiểu thủ tục đa dữ liệu ra màn hình. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. DÉn d¾t: sau khi xö lÝ xong, kÕt qu¶ tìm đợc đang đợc lu trong bộ nhớ. Để thấy đợc kết quả trên màn hình ta sử dụng thủ tôc xuÊt d÷ liÖu.. 1. Chó ý l¾ng nghe dÉn d¾t cña gi¸o viªn..

<span class='text_page_counter'>(16)</span> - Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o - Nghiªn cøu s¸ch gi¸o khoa vµ tr¶ lêi. khoa vµ cho biÕt cÊu tróc chung cña thñ tôc Write(<tªn_biÕn_1>,...,<tªn_biÕn_k>); xuÊt d÷ liÖu trong ng«n ng÷ lËp tr×nh Writeln(<tªn_biÕn_1>,...,<tªn_biÕn_k>); Pascal. - ViÕt lÖnh : Writeln(-b/a); - Nªu vÝ dô: Khi viÕt ch¬ng tr×nh gi¶i ph¬ng tr×nh ax+b=0, ta ph¶i ®a ra mµn h×nh gi¸ trÞ cña nghiÖm –b/a, ta ph¶i viÕt lÖnh nh thÕ nµo? 2. Chiếu một chơng trình Pascal đơn giản 2. Quan sát chơng trình ví dụ của giáo Program vb; viªn. Var x, y, z:integer; Begin Writeln(“nhap vao hai so:”); Readln(x, y); z:=x+y; write(x:6, y:6, z:6); readln; end. - Thùc hiÖn ch¬ng tr×nh vµ thùc hiÖn nhập dữ liệu để học sinh thấy kết quả trên nÒn mµn h×nh. - Hái : Chøc n¨ng cña lÖnh Writeln(); - ViÕt ra mµn h×nh dßng ch÷ vµ ®a con trá - Hái: ý nghÜa cña : 6 trong lÖnh xuèng dßng. Write(...) - Dành 6 vị trí trên màn hình để viết số x, 6 vị trí tiếp để viết số y và 6 vị trí tiếp để - Hái: Khi c¸c tham sè trong lÖnh viÕt sè z. Write() thuéc kiÓu Char hoÆc real th× quy - Khi c¸c tham sè cã kiÓu kÝ tù, viÖc quy định vị trí nh thế nào? định vị trí giống kiểu nguyên. - Khi c¸c tham sè cã kiÓu thùc th× ph¶i quy định hai loại vị trí : Vị trí cho toàn bộ sè thùc vµ vÞ trÝ cho phÇn thËp ph©n. - Cho vÝ dô cô thÓ víi 2 biÕn c kiÓu Char - VÝ dô : Write(c:8); vµ r kiÓu real. Write(r:8:3); híng dÉn cña gi¸o viªn. 1. Đặt vấn đề: Để sử dụng đợc Turbo Pascal, trªn m¸y ph¶i cã c¸c file ch¬ng tr×nh cÇn thiÕt. Tham kh¶o s¸ch gi¸o khoa và cho biết tên các file chơng trình đó? 2. Trình diễn cách khởi động Turbo Pascal th«ng qua m¸y chiÕu Projector. - Giíi thiÖu mµn h×nh so¹n th¶o ch¬ng tr×nh: B¶ng chän, con trá, vïng so¹n th¶o.... Hoạt động của học sinh. 1. Tham kh¶o s¸ch gi¸o khoa vµ tr¶ lêi . Turbo.exe Turbo.tpl Graph.tpu Egavga.bgi vµ c¸c file *.chr 2. Häc sinh quan s¸t vµ ghi nhí.. 2. Hoạt động 3: Tập soạn thảo chơng trình và dịch lỗi cú pháp. híng dÉn cña gi¸o viªn. 1. So¹n mét ch¬ng tr×nh lµm vÝ dô, lu ch¬ng tr×nh, dÞch lçi. - Dùng máy chiếu vật thể để minh họa thap t¸c lu file ch¬ng tr×nh vµ biªn dÞch. 2. So¹n mét ch¬ng tr×nh, hái c¸c lçi có ph¸p trong ch¬ng tr×nh, gäi häc sinh dÞch lçi vµ söa. Program vd1 var x:integer;. Hoạt động của học sinh. 1. Quan s¸t vµ ghi nhí. - Lu: F2 - DÞch lçi: ALT_F9 2. Quan sát và phát hiện lỗi để sửa lỗi cho ch¬ng tr×nh. Program vd1; var x,y:integer; Begin.

<span class='text_page_counter'>(17)</span> Begin Write(‘Nhap mot so nguyen duong); readln(x); y:=sqrt(x); write(y); End.. Write(‘Nhap duong); readln(x); y:=sqrt(x); write(y); End.. mot. so. nguyen. 3. Hoạt động 4: Tập thực hiện chơng trình và tìm lỗi thuật toán để hiệu chỉnh. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Thực hiện chơng trình đã đợc viết ở trªn, nhËp d÷ liÖu, giíi thiÖu kÕt qu¶. - Dùng máy chiếu vật thể để minh hạo thao t¸c thùc hiÖn ch¬ng tr×nh. - Hỏi : Nhóm phím dùng để thực hiện ch¬ng tr×nh? - Yªu cÇu häc sinh nhËp d÷ liÖu vµ thùc hiÖn ch¬ng tr×nh. 2. Giíi thiÖu ch¬ng tr×nh gi¶i ph¬ng tr×nh ax+b=0. Var Begin Readln(a, b); If a<>0 then write(-b/a) else write(“PTVN”); Readln; End. - Yêu cầu học sinh tìm test để chứng minh ch¬ng tr×nh nµy sai.. 1. Quan s¸t gi¸o viªn thùc hiÖn vµ tham kh¶o s¸ch gi¸o khoa. CTRL_F9. 2. Quan sát yêu cầu của giáo viên và độc lập suy nghĩ để tìm test a b x 0 0 VSN. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học. - NhËp d÷ liÖu : Read/Readln(<tªn_biÕn_1>,...,<tªn_biÕn_k>); - XuÊt d÷ liÖu : write/writeln(<tham_sè_1>,...,<tham_sè_k>); - Khởi động Turbo. Soạn thảo chơng trình. Dịch lỗi cú pháp. Thực hiện chơng trình. T×m lçi thuÊt to¸n vµ hiÖu chØnh. 2. C©u hái vµ bµi tËp vÒ nhµ - b»ng thùc hµnh trªn m¸y: + H·y so s¸nh sù gièng nhau vµ kh¸c nhau gi÷a Write(); vµ writeln(); + H·y so s¸nh sù gièng nhau vµ kh¸c nhau gi÷a Read(); vµ Readln(); + T×m hiÓu chøc n¨ng cña lÖnh Readln; Writeln; - §äc tríc néi dung bµi: So¹n th¶o, dÞch, thùc hiÖn vµ hiÖu chØnh ch¬ng tr×nh, s¸ch gi¸o khoa, trang 32. - Viết chơng trình nhập độ dài bán kính và t icnhs chu vi diện tích của hìnhtròn tơng øng. - Lµm c¸c bµi tËp 9, 10, s¸ch gi¸o khoa, trang 36. - §äc tríc néi dung cña phÇn bµi tËp vµ thùc hµnh sè 1, s¸ch gi¸o khoa, trang 33. - Xem phô lôc B, s¸ch gi¸o khoa, trang 122: M«i trêng Turbo Pascal. - Xem phô lôc B, s¸ch gi¸o khoa, trang 136: Mét sè th«ng b¸o lçi.. Ngµy so¹n: 12/10/2012 I- Môc tiªu. Bµi tËp. - Biết khai báo biến hợp lý đỡ tốn bộ nhớ - BiÕt viÕt biÓu thøc to¸n häc sang ng«n ng÷ Pascal. TiÕt 9, 10.

<span class='text_page_counter'>(18)</span> - Biết viết môt số chơng trình đơn giản ở phần bài tập II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - Phòng máy vi tính đã đợc cài đầy đủ Turbo Pascal, máy chiếu projector để hớng dẫn. 2. ChuÈn bÞ cña häc sinh - Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà. III- Néi dung bµi tËp I- Bµi tËp SGK: Bài 4: đáp án b và d Bài 5: đáp án c Bµi 6: (1+z)*((x+y/z)/(a-1/(1+x*x*x))) Bµi 8: ((y<1) or (y=1)) and ((y>abs(x)) or (y=abs(x))) HoÆc (y<=1) and (y>=abs(x)) Bµi 9 (trang 36). Hoạt động của giáo viên Hoạt động của học sinh 1. 1. Định hớng để học sinh phân tích bài to¸n. + Cho häc sinh nhËn xÐt bµi to¸n HS: diÖn tÝch phÇn g¹ch b»ng 1/2 diÖn tÝch h×nh trßn t©m 0(0,0) b¸n kÝnh R = a. Lu ý: số là một hằng trong Pascal và đợc ký hiÖu lµ Pi. Gi¸ trÞ Pi lµ 3,1415926536. -D÷ liÖu vµo - D÷ liÖu ra - C¸ch tÝnh Cho häc sinh lªn viÕt ch¬ng tr×nh (mçi em viÕt 1 phÇn ch¬ng tr×nh). - D÷ liÖu vµo : a - D÷ liÖu ra: S - S:= 1/2Pi*r2 Ch¬ng tr×nh: Program dien_tich; Var a: Real; Begin Write(‘nhap gia tri a (a>0):’);Readln(a); Write(‘Dien tich phan gach lµ: ‘,a*a*Pi/2:2:4); Readln End. NÕu a = 2, kÕt qu¶ sÏ lµ 6.2832. NÕu a =2 th× kÕt qu¶ nh thÕ nµo? ChiÕu bµi to¸n lªn mµn h×nh lín råi cho test kÕt qu¶ bµi to¸n Bµi 10:. Hoạt động của giáo viên Hoạt động của học sinh 1. 1. 1. Định hớng để học sinh phân tích bµi to¸n. -D÷ liÖu vµo -D÷ liÖu vµo : h - D÷ liÖu ra - D÷ liÖu ra : V - C¸ch tÝnh - C¸ch tÝnh V:=sqrt(2*g*h) Cho häc sinh th¶o luËn theo nhãm (5 phót) §¹i diÖn nhãm lªn tr×nh bµy trªn b¶ng Gọi đại diện của nhóm lên trình bày Ch¬ng tr×nh ChiÕu bµi to¸n lªn mµn h×nh lín råi cho Program Van_toc; test kÕt qu¶ bµi to¸n Uses crt; Const g=9.8; Var v, h:Real; Begin Write(’nhap do cao cua vat h = ’);Readln(h); V:=sqrt(2*g*h);.

<span class='text_page_counter'>(19)</span> Writeln(’Van toc khi cham dat la V = ’, V:10:2,’ m/s’); Readln End. II- Mét sè bµi tËp kh¸c: Bµi1: ViÕt ch¬ng tr×nh tÝnh vµ ®a kÕt qu¶ ra mµn h×nh c¸c biÓu thøc sau: IV- Cñng cè: - C¸ch khai b¸o biÕn - Viết đuợc chơng trình đơn giản Bµi tËp vÒ nhµ: a) T = 5x + 9y. Ngµy so¹n: 20/10/2012. Bµi tËp vµ thùc hµnh 1. TiÕt 11. I- Môc tiªu 1. KiÕn thøc: - Biết đợc một chơng trình Pascal hoàn chỉnh - Lµm quen víi c¸c dÞch vô chñ yÕu cña Turbo Pascal trong viÖc so¹n th¶o, lu ch¬ng tr×nh, dÞch ch¬ng tr×nh vµ thùc hiÖn ch¬ng tr×nh. 2. Kü n¨ng - Soạn thảo chơng trình, lu lên đĩa, dịch lỗi cú pháp, thực hiện và tìm lỗi thuật to¸n vµ hiÖu chØnh 3. Thái độ: - Tự giác, tích cực và chủ động trong thực hành. II. Ph¬ng ph¸p, ph¬ng tiÖn d¹y häc - Cho học sinh vào phòng máy (2 phút), ổn định cho 2 em một máy sau đó hớng dẫn cho các em khởi động máy, khổi động CT Turo Pascal trên màn hình nền, cho học sinh đánh chơng trình đơn giản, sau đó hớng dẫn các em sữa lỗi nếu có trên máy chiếu. - Ph¬ng tiÖn: M¸y chiÕu, ph«ng chiÕu III.Néi dung bµi gi¶ng Ho¹t déng 1: T×m hiÓu mét ch¬ng tr×nh hoµn chØnh a) Cho häc sinh gâ ch¬ng tr×nh trong SGK: Ch¬ng tr×nh: Program Giai_PTB2; ues crt; Var a, b, c, D: Real; x1, x2: real; Begin clrscr; Write(‘a, b, c: ‘);Readln(a,b,c); D := b*b – 4*a*c; x1 := (-b – sqrt(D))/(2*a); x2 := -b/a – x1; Write(‘x1 = ‘, x1:6:2,’ x2 =’, x2:6:2); Readln; End.. Hoạt động của giáo viên 1. ChiÕu chu¬ng tr×nh lªn b¶n. Yªu cÇu häc sinh thùc hiÖn c¸c nhiÖm vô: - So¹n ch¬ng tr×nh vµo m¸y - Lu ch¬ng tr×nh - DÞch lçi có ph¸p - Thùc hiÖn ch¬ng tr×nh. Hoạt động của học sinh 1. Quan sát màn hình, độc lập soạn chơng tr×nh vµo m¸y. F2 Alt_F9 Ctrl_F9.

<span class='text_page_counter'>(20)</span> - NhËp d÷ liÖu 1 -3 2 th«ng b¸o kÕt qu¶ - Trë vÒ mµn h×nh so¹n th¶o - Thùc hiÖn ch¬g tr×nh - NhËp d÷ liÖu 1 0 2. Th«ng b¸o kÕt qu¶ - Hái: v× sao cã lçi xuÊt hiÖn - S÷a l¹i chu¬ng ttr×nh kh«ng dïng biÕn d.. x1= 1.00 x2 = 2.00 Enter Ctlr_F9 Th«ng b¸o lçi Do c¨n bËc 2 cña mét sè ©m Readln(a,b,c); x1 := (-b-sqrt(b*b-4*a*c))/(2*a); x2:= (-b+sqrt(b*b-4*a*c))/(2*a) Writeln(‘x1=’,x1:6:2,’x2=’,x2:6:2,);. Ho¹t déng 2: RÌn luyÖn kü n¨ng lËp ch¬ng tr×nh VD: Viết chơng trình tính diện tích hình đợc tô màu, với a đợc nhập vào từ bàn phím. a a. a. a Hoạt động của giáo viên Hoạt động của học sinh 1. Định hớng để học sinh phân tích bài 1. Phân tích theo yêu cầu của giáo viên to¸n. - D÷ liÖu vµo a -D÷ liÖu vµo - D÷ liÖu ra s - D÷ liÖu ra - TÝnh diÖn tÝch h×nh trßn cã BK (s1) - C¸ch tÝnh TÝnh diÖn tÝch h×nh v¬ng c¹nh a (s2) S:=S1-S2; 2. Yªu cÇu häc sinh so¹n ch¬ng tr×nh vµ lu 2. Thùc hiÖn c¸c yªu cÇu cña gi¸o viªn lên đĩa - So¹n ch¬ng tr×nh - Quan sát hớng dẫn từng học sinh trong - Bấm phím F2, gõ tên file để lu lóc thùc hµnh. - Bấm phím ALT_F9 để dịch lỗi cú pháp - Bấm phím CTRL_F9 để thực hiện chơng tr×nh - Th«ng b¸o kÕt qu¶ cho gi¸o viªn 3. Yªu cÇu häc sinh nhËp d÷ liÖu vµ th«ng 3. NhËp d÷ liÖu theo yªu cÇu. b¸o kÕt qu¶. -Với a=3, ta đợc: S=9(Pi-2)= 10.26 a=3 -Với a = -3, kết quả không đúng, vì độ dài a = -3 c¹nh ph¶i lµ mét sè d¬ng IV- Còng cè: Nội dung đã đợc học: - Các bớc để hoàn thành một chơng trình + Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra + Xác định thuật toán + So¹n ch¬ng tr×nh vµo m¸y + Lu tr÷ ch¬ng tr×nh Ngµy so¹n: 1/11/2012 TiÕt 12. KIEÅM TRA 1 TIEÁT Bài 1: Viết các biểu thức sau sang biểu diễn dạng Pascal.

<span class='text_page_counter'>(21)</span> a/. x+ y x 2+ y. b/. (a+ 4)(b − 2 c+3) r −9( a −1) 2h. 2. c/ ¿ a+sin ( x)− x∨¿ √¿. Bài 2: Viết chương trình tính diện tích tam giác theo công thức sau với độ dài các cạnh nhập từ bàn phím: S=. √ p ( p − a)( p −b)( p −c ). với p =. 1 (a+b+c) 2. Baøi 3: Vieát chöông trình tính vaø ñöa ra maøn hình a. Toång bình phöông cuûa 3 soá nguyeân. b. Caên baäc 2 cuûa toång 3 soá nguyeân Với a, b, c nhập từ bàn phím Bài 4: Viết chương trình tính diện tích và chu vi hình tròn với bán kính nhập từ bàn phím.

<span class='text_page_counter'>(22)</span> CHÖÔNG III.. Tæ chøc rÏ nh¸nh vµ lÆp. I. Môc tiªu cña ch¬ng. 1. KiÕn thøc : Häc sinh cÇn: - HiÓu c¸c kh¸i niÖm rÏ nh¸nh vµ lÆp trong lËp tr×nh. - BiÕt thùc hiÖn c¸c c©u lÖnh rÏ nh¸nh vµ lÆp cña ng«n ng÷ lËp tr×nh Pascal. - Bớc đầu hình thành đợc kĩ năng lập trình có cấu trúc. 2. kÜ n¨ng. - Có khẳ năng phân tích bài toán đơn giản để chọn kiểu cấu trúc điều khiển phù hợp tõng thao t¸c. - Biết diễn đạt đúng các câu lệnh, soạn đợc chơng trình giải các bài toán đơn giản áp dông c¸c lo¹i cÊu tróc ®iÒu khiÓn nªu trªn. 3. Thái độ - TiÕp tôc x©y dùng lßng yªu thÝch gi¶i to¸n b»ng lËp tr×nh trªn m¸y vi tÝnh. - TiÕp tôc rÌn luyÖn c¸c phÈm chÊt cÇn thiÕt cña ngêi lËp tr×nh nh: Xem xÐt gi¶i quyết vấn đề một cách cẩn thận, sáng tạo ... Điều này thể hiện trong suốt quá trình phân tÝch bµi to¸n, lùa chän d÷ liÖu, chon cÊu tróc ®iÒu khiÓn, viÕt ch¬ng tr×nh, dÞch, söa lçi, kiÓm thö, c¶i tiÕn ch¬ng tr×nh. II. Néi dung chñ yÕu cña ch¬ng. - Giíi thiÖu c¸c lo¹i cÊu tróc ®iÒu khiÓn trong lËp tr×nh cÊu tróc lµ rÏ nh¸nh vµ lÆp. Kh¸i niÖm bíc ®Çu vÒ lËp tr×nh cã cÊu tróc. - Giíi thiÖu lÖnh ghÐp Begin – End, lÖnh rÏ nh¸nh If – Then, lÖnh lÆp For – Do vµ While – Do thÓ hiÖn c¸c lo¹i cÊu tróc ®iÒu khiÓn trong ng«n ng÷ lËp tr×nh Pascal. Ngµy so¹n: 8/11/2012. TiÕt 13. §9. CÊu tróc rÏ nh¸nh I Môc tiªu 1. KiÕn thøc. - Học sinh biết đợc ý ngiã của cấu trúc rẽ nhánh. - Học sinh biết đợc cấu trúc chung của cấu trúc rẽ nhánh. - Biết cách sử dụng đúng hai dạng cấu trúc rẽ nhánh trong lập trình: dạng thiếu và dạng đủ. 2. KÜ n¨ng. - Bớc đầu sử dụng đợc cấu trúc rẽ nhánh If ... then ... else ... trong ngôn ngữ lập trình Pascal để viết chơng trình giải quyết đợc một số bài toán đơn giản. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - M¸y vi tÝnh, m¸y chiÕu Overhead, m¸y chiÕu Projector, b×a trong, bót d¹, ch¬ng tr×nh mÉu gi¶i ph¬ng tr×nh bËc hai ax2 + bx + c = 0. 2. ChuÈn bÞ cña häc sinh. - S¸hc gi¸o khoa. III. Hoạt động dạy – học ..

<span class='text_page_counter'>(23)</span> 1. Hoạt động 1: Tìm hiểu ý nghĩa của tổ chức rẽ nhánh. híng dÉn cña gi¸o viªn. 1. Nªu vÝ dô thùc tiÔn minh häa cho tæ chøc rÏ nh¸nh: ChiÒu mai nÕu trêi kh«ng ma An sÏ ®i xem đá bóng, nếu trời ma thì An sẽ xem ti vi ë nhµ. - Yªu cÇu häc sinh t×m thªm mét sè vÝ dô t¬ng tù.. - Yªu cÇu häc sinh ®a ra cÊu tróc chung của các diễn đạt đó. - Yªu cÇu häc sinh lÊy mét vÝ dô cã cÊu tróc chung d¹ng khuyÕt vµ ®a ra cÊu tróc chung đó. 2. Nếu các bớc để kết luận nghiệm của ph¬ng tr×nh bËc hai ax2 +bx+c = 0.. - Chia nhãm líp thµnh 3 nhãm vµ yÕu cầu vẽ sơ đồ thực hiện của các bớc trên bìa trong. - Chọn hai bài để chiếu lên bảng, gọi học sinh thuộc nhóm khác nhận xét đánh gi¸ kÕt qu¶ vµ bæ sung. 3. Tiểu kết cho hoạt động này bằng cách bæ sung vµ chÝnh x¸c bµi tËp cña häc sinh.. Hoạt động của học sinh. 1. chó ý theo dâi c¸c dÉn d¾t vµ vÝ dô cña giáo viên để suy nghĩ tìm ví dụ tơng tự.. - Nếu đội tuyển bóng đá Việt Nam thắng đội Indonesia thì sẽ đợc đá tiếp tranh huy ch¬ng vµng víi Th¸i Lan, nÕu kh«ng th¾ng Indonesia thì Việt Nam sẽ tranh huy chơng đồng với Mianmar. - NÕu ... th× ... nÕu kh«ng ... th× ... - NÕu lµm xong bµi tËp sím An sÏ sang nhµ Ngäc ch¬i. NÕu ... th× ... 2. Theo dâi vµ thc hiÖn yªu cÇu cña gi¸o viªn. + TÝnh delta. + NÕu delta<0 th× kÕt luËn ph¬ng tr×nh v« nghiÖm. + NÕu delta>=0 th× kÕt luËn ph¬ng tr×nh cã nghiÖm: x = (-b+sqrt(delta))/(2a) x = (-b – sqrt(delta))/(2a) - Thực hiện vẽ sơ đồ (giống nh phần nội dung) - Nhận xét, đánh giá và bổ sung những thiÕu sãt cña nhãm kh¸c. 3. Quan s¸t h×nh vÏ cña c¸c nhãm kh¸c vµ của giáo viên để ghi nhớ. 2. Hoạt động 2: Tìm hiểu cấu trúc lệnh rẽ nhánh IF – THEN – ELSE trong ngôn ng÷ lËp tr×nh Pascal. híng dÉn cña gi¸o viªn. 1. Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸ khoa vµ dùa vµo c¸c vÝ dô cña tæ chøc rÏ nhánh để đa ra cấu chúc chung của lệnh rẽ nh¸nh. 2. Nêu vấn đề trong trờng hợp khuyết: Khi kh«ng dÒ cËp dÕn viÖc g× s¶y ra nÕu ®iÒu kiÖn kh«ng th¶o m·n, ta cã cÊu tróc nh thÕ nµo? 3. Yêu cầu học sinh vẽ sơ đồ thực hiện cña lÖnh rÏ nh¸nh d¹ng khuyÕt vµ d¹ng đủu lên bảng.. Hoạt động của học sinh. 1. Nghiªn cøu s¸ch gi¸o khoa vµ tr¶ lêi. If <®iÒu kiÖn> then <lÖnh 1> else <lÖnh 2>; 2. Häc sinh chó ý l¾ng nghe vµ tr¶ lêi: - Khi đó ta có lệnh khuyết. If <®iÒu kiÖn> then <lÖnh>; 3. Vẽ sơ đồ thực hiện nh đã đợc trình bày trong phÇn néi dung..

<span class='text_page_counter'>(24)</span> 4. G¬i ý sù cÇn thiÕt cña lÖnh ghÐp. §a cÊu tróc cña lÖnh ghÐp. 4. Theo dõi dẫn dắt của giáo viên để trả - Khi gi¶i thÝch vÒ lÖnh, lÖnh 1, lÖnh 2, lêi gi¸o viªn nãi: Sau then vµ else c¸c em thÊy - Ta ph¶i nhãm nhiÒu lÖnh thµnh mét chỉ đợc phép đặt một lệnh. Trong thực tế, lÖnh thêng l¹i lµ nhiÒu lÖnh . - Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa và cho biết cấu trúc để ghép cáclệnh - CÊu tróc cña lÖnh ghÐp thµnh mét líp. Begin <c¸c lÖnh cÇn ghÐp>; End; 3.Hoạt động 3: Rèn luyện kĩ năng vận dụng lệnh If. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Nêu nội dung, mục đích yêu cầu của 1. Chó ý dÉn d¾t cña gi¸o viªn. vÝ dô mét. Viết chơng trình nhập vào độ dài hai cạnh cña mét h×nh ch÷ nhËt vµ tÝnh chu vi, diÖn tích của hình chữ nhật đó. - Chơng trình này các em đã viết, hãy - Khi nhập độ dài âm thì dẫn đến chơng cho biÕt cã h¹n chÕ nµo trong ch¬ng tr×nh tr×nh tr¶ lêi chu vi, diÖn tÝch ©m. §iÒu nµy cña c¸c em? kh«ng cã trong thùc tÕ. - Híng gi¶i quyÕt cña c¸c em nh thÕ - Dùng lệnh rẽ nhánh để kiểm tra giá trị nµo? của độ dài cạnh nhập vào. - Nếu độ dài dơng thì tính diện tích ngợc lại thì thông báo độ dài sai. - Yªu cÇu häc sinh vÒ nhµ tiÕp tôc hoµn thiÖn ch¬ng tr×nh. 2. Nêu nội dung của bài tập, mục đích 2. Ghi đề bài, chú ý mục đích yêu cầu của yªu cÇu cña bµi tËp. bµi tËp. T×m nghiÖm cña ph¬ng tr×nh bËc hai. - Hãy nêu các bớc chính để trả lời + TÝnh delta. nghiÖm cña ph¬ng tr×nh bËc hai. + NÕu delta<0 th× kÕt luËn ph¬ng tr×nh v« nghiÖm. + NÕu delta>=0 th× kÕt luËn ph¬ng tr×nh cã nghiÖm: x = (-b+sqrt(delta))/(2a) x = (-b – sqrt(delta))/(2a) - Trong bµi to¸n nµy ta cÇn bao nhiªu - Cã thÓ sö dông hai lÖnh rÏ nh¸nh d¹ng lÖnh rÏ nh¸nh. D¹ng nµo? khuyÕt, còng cã thÓ sö dông mét lÖnh d¹ng đủ. - Tæ chøc líp thµnh 3 nhãm, yªu cÇu häc - Th¶o luËn vµ viÕt ch¬ng tr×nh lªn b×a sinh viÕt ch¬ng tr×nh hoµn thiÖn lªn b×a trong. trong. - thông báo kết quả viết đợc. - Thu phiÕu tr¶ lêi, chiÕu lªn b¶ng, gäi - Nhận xét, đánh giá và bổ sung những học sinh nhóm khác nhận xét đánh giá. thiÕu sãt cña c¸c nhãm kh¸c. - ChuÈn hãa l¹i ch¬ng tr×nh cho c¶ líp - Ghi chép nội dung chơng trình đúng là b»ng ch¬ng tr×nh mÉu gi¸o viªn. giáo viên đã kết luận. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học - CÊu tróc chung cña cÊu tróc rÏ nh¸nh. - Sù thùc hiÖn cña m¸y khi gÆp cÊu tróc rÏ nh¸nh IF. - Sơ đồ thực hiện của cấu trúc rẽ nhánh IF. 2. C©u hái vµ bµi tËp vÒ nhµ. - Tr¶ lêi c©u hái 1, 2, 4, S¸ch gi¸o khoa, trang 50. - ViÕt ch¬ng tr×nh nhËp vµo hai sè bÊt k× vµ in ra mµn h×nh gi¸ trÞ lín nhÊt cña hai sè..

<span class='text_page_counter'>(25)</span> - ViÕt ch¬ng tr×nh gi¶i ph¬ng tr×nh ax4 + bx2 + c = o. - Xem tríc néi dung bµi: CÊu tróc lÆp, s¸ch gi¸o khoa, trang 42. - Xem néi dung phô lôc B, s¸ch gi¸o khoa trang 131: LÖnh rÏ nh¸nh vµ lÆp. - Xem néi dung phô lôc C, s¸ch gi¸o khoa trang 139: LÖnh rÏ nh¸nh vµ lÆp .. Ngµy so¹n: 10/11/2012. TiÕt 14 §10. CÊu tróc lÆp (tiÕt 1). I. Môc tiªu 1. KiÕn thøc - Biết đợc ý nghĩa của cấu trúc lặp. - Biết đợc cấu trúc chung của lệnh lặp for trong ngôn ngữ lập trình Pascal. - Biết sử dụng đúng hai dạng lệnh lặp For trong ngôn ngữ lập trình Pascal. 2. kÜ n¨ng - Bớc đầu sử dụng đợc lệnh lặp For để lập trình giải quyết đợc một số bài toán đơn gi¶n. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - M¸y vi tÝnh, m¸y chiÕu Overhead, b×a trong, bót d¹, m¸y chiÕu Projector, s¸ch gi¸o khoa, s¸ch gi¸o viªn. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. hoạt động dạy – học ..

<span class='text_page_counter'>(26)</span> híng dÉn cña gi¸o viªn. 1. Nếu bài toán đặt vấn đề nh bài toán 1. - Hãy xác định công thức toán học để tÝnh tæng? - Gîi ý ph¬ng ph¸p: Ta xem S nh lµ mét c¸i thïng, c¸c sè h¹ng nh lµ nh÷ng c¸i ca có dung tích khác nhau, khi đó việc tính tổng trên tơng tự việc đổ các ca nớc vào trong thïng S. - Có bao nhiêu lần đổ nớc vào thùng? - Mỗi lần đổ một lợng là bao nhiêu? Lần thứ i đổ bao nhiêu? - Ph¶i viÕt bao nhiªu lÖnh? 2. Nêu bài toán đặt vấn đề nh bài toán 2. - Em hiÓu nh thÕ nµo vÒ c¸ch tÝnh tiÒn göi tiÕt kiÖm trong bµi to¸n 2. - Từ đó, hãy lập công thức tính tiền thu đợc sau tháng thứ nhất. - Ta ph¶i thùc hiÖn tÝnh bao nhiªu lÇn nh vËy? - Dẫn dắt: Chơng trình đợc viết nhơ vậy sẽ rất dài, khó đọc và dễ sai sót. Cần có mét cÊu tróc ®iÒu khiÓn viÖc lÆp l¹i thùc hiÖn c¸c c«ng viÖc trªn. - Trong tất cả các ngôn ngữ lập trình đều cã mét cÊu tróc ®iÒu khiÓn viÖc thùc hiÖn lặp lại so với số lần đã định trớc. 3. Chia líp thµnh 4 nhãm. 2 nhãm viÕt thuËt to¸n gi¶i quyÕt bµi to¸n 1, 2 nhãm viÕt thuËt to¸n gi¶i quyÕt bµi to¸n 2 lªn b×a trong.. Hoạt động của học sinh. 1. Chú ý quan sát bài toán đặt vấn đề. - Rất khó xác định đợc công thức. - Theo dâi gîi ý.. - Phải thực hiện 100 lần đổ nớc. - Mỗi lần đổ 1 a+i - Ph¶i viÕt 100 lÖnh. 2. Chó ý quan s¸t vµ tr¶ lêi c¸c c©u hái. - Víi sè tiÒn S, sau mçi th¸ng sÏ cã tiÒn l·i lµ 0,015*S. - Số tiền này đợc cộng vảôtng số tiền ban đầu để tính lãi cho tháng tiếp theo. - S: = S + 0,015*S; - Ph¶i thùc hiÖn tÝnh 12 lÇn nh vËy. - TËp trung theo dâi gi¸o viªn tr×nh bµy.. 3. Thảo luận theo nhóm để viết thuất toán: Bíc 1: N <– 0; S <– 1/a; Bíc 2: N <– N+1; Bớc 3: nếu : N>100 thì chuyển đến bớc 5. Bíc 4 : S <– S+1/(a+N), Quay l¹i bíc 2. Bíc 5 : §a S ra mµn h×nh råi kÕt thóc. - Thông báo kết quả viết đợc. - Thu kÕt qu¶, chiÕu kÕt qu¶ lªn b¶ng. Gäi - Nhận xét, đánh giá kết quả của nhóm học sinh nhóm khác nhận xét đánh giá. kh¸c. - Theo dâi vµ ghi nhí. - ChuÈn hãa l¹i thuËt to¸n cho häc sinh lÇn cuèi.. 2. Hoạt động 2: Tìm hiểu lệnh lặp For của ngôn ngữ lập trình Pascal. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Yªu cÇu häc sinh nghiªn cøu s¸hc gi¸o 1. §äc s¸ch gi¸o khoa vµ trë lêi khoa vµ cho biÕt cÊu tróc chung cña For? For <Biến đếm>:=<giá trị đầu> To <Giá - Gi¶i thÝch: trÞ cuèi> Do <lÖnh cÇn lÆp>; < Biến đếm>: Là biến kiểu nguyên, kí tự. - Dùng để làm giới hạn cho biến đếm. - Hái : ý nghÜa cña <Gi¸ trÞ ®Çu> <Gi¸ - Cùng kiểu với <Biến đếm> trÞ cuèi>, KiÓu d÷ liÖu cña chóng. <Gi¸ trÞ ®Çu> lµ 1; <Gi¸ trÞ cuèi> lµ 12. - Hái: Trong bµi to¸n göi tiÕt kiÖm, <Gi¸ trÞ ®Çu> <Gi¸ trÞ cuèi> lµ bao nhiªu? <Gi¸ trÞ ®Çu> lµ 1; <Gi¸ trÞ cuèi> lµ 100..

<span class='text_page_counter'>(27)</span> - Hái : Trong bµi to¸n tÝnh tæng <Gi¸ trÞ ®Çu> <Gi¸ trÞ cuèi> lµ bao nhiªu? - DÉn d¾t : Nh÷ng lÖnh nµo cÇn lÆp l¹i ta đặt sau Do. - Hái : Khi nhiÒu lÖnh kh¸c nhau cÇn lÆp - Ph¶i sö sông cÊu tróc lÖnh ghÐp . l¹i ta viÕt nh thÕ nµo? - Hái : Trong bµi to¸n göi tiÕt kiÖm, lÖnh S : = S + 0,015*S; nµo cÇn lÆp l¹i? - Hái : Trong bµi to¸n tÝnh tæng, lÖnh S:=S+ 1 nµo cÇn lÆp l¹i? a+i - Hái : Em cã nhËn xÐt g× vÒ gi¸ trÞ cña <Gi¸ trÞ ®Çu> <Gi¸ trÞ cuèi> <Gi¸ trÞ ®Çu> <Gi¸ trÞ cuèi> ? - Dẫn dắt: Khi đó lệnh For đợc gọi là For tiÕn. Ng«n ngì lËp tr×nh Pascal cßn cã mét d¹ng For kh¸c gäi lµ For lïi. 2. Yªu cÇu: H·y tr×nh bµy cÊu tróc chung 2. Nghiªn cøu s¸ch gi¸o khoa, suy nghÜ, cña For lïi. so sánh với cấu trúc của For tiến để trả lời. For <biến đếm>:=<giá trị cuối> Downto <gi¸ trÞ ®Çu> Do <lÖnh cÇn lÆp>; - Hái : So s¸nh <Gi¸ trÞ ®Çu> <Gi¸ trÞ <Gi¸ trÞ ®Çu> <Gi¸ trÞ cuèi> cuèi> ? - Hái : Trong hai bµi to¸n trªn, d¹ng - Sö dông d¹ng For tiÕn lµ phï hîp . lÖnh For nµo lµ phï hîp? 3. Hoạt động 3: Rèn luyện kĩ năng vận dụng lệnh lặp For. híng dÉn cña gi¸o viªn. 1. Nªu néi dung bµi to¸n 1. Môc tiªu lµ xác định đợc những việc chính cần làm. + Xác định giá trị đầu, giá trị cuối. + Xác định lệnh cần lặp lại. - Yªu cÇu häc sinh tiÕp tôc hoµn thµnh ch¬ng tr×nh ë nhµ. 2. Nªu néi dung bµi to¸n2, môc tiªu lµ viÕt đợc chơng trìn hoàn thiện. - Định hớng những vấn đề chính. - Chia líp thµnh 3 nhãm. Yªu cÇu häc sinh viÕt ch¬ng tr×nh lªn giÊy b×a trong. - Thu phiÕu häc tËp, chiÕu lªn b¶ng, gäi học sinh nhóm khác nhận xét và đánh giá. - ChÝnh x¸c hãa bµi lµm cña häc sinh b»ng ch¬ng tr×nh mÉu.. Hoạt động của học sinh. 1. Chó ý l¾ng nghe vµ tr¶ lêi c¸c yªu cÇu cña gi¸o viªn. - Gi¸ trÞ ®Çu lµ 1, Gi¸ trÞ cuèi lµ 100. S:=S+. 1 a+i. 2. Chó ý l¾ng nghe néi dung vµ yªu cÇu. - Cïng th¶o luËn vµ viÕt ch¬ng tr×nh theo nhãm. - Quan s¸t ch¬ng tr×nh gi¸o viªn híng dÉn vµ ghi nhí.. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học. - Cấu trúc chung của lệnh lặp For. Sơ đồ thực hiện của lệnh của lậnh lặp For. 2. C©u hái vµ bµi tËp vÒ nhµ. - Gi¶i bµi tËp 5.a, 6, s¸ch gi¸o khoa, trang 51. - Xem trớc phần nội dung của cấu trúc lặp có số lần cha xác định While ... - Xem néi dung phô lôc B, s¸ch gi¸o khoa trang 131 : LÖnh rÏ nh¸nh vµ lÆp. - Xem néi dung phô lôc C, s¸ch gi¸o khoa trang 139 : LÖnh rÏ nh¸nh vµ lÆp..

<span class='text_page_counter'>(28)</span> Ngµy so¹n: 22/11/2012. TiÕt 15 §10. CÊu tróc lÆp (tiÕt 2). I. Môc tiªu . 1. KiÕn thøc. - Biết đợc ý nghĩa của cấu trúc lặp có số lần lặp cha xác định . - Biết đợc cấu trúc chung của lệnh lặp While trong ngôn ngữ Pascal. - Biết đợc sự thực hiện của máy khi gặp lệnh lặp While. 2. KÝ n¨ng. - Phân biệt đợc sự giống và khác nhau giữa cấu trúc lặp For và While. - Sử dụng đúng lệnh lặp While trong lập trình. - Bớc đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết đợc một số bài toán đơn giản. II . §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - M¸y vi tÝnh, m¸y chiÕu Overhead, Projector, s¸ch gi¸o khoa, s¸ch gi¸o viªn. 2. ChuÈn bÞ cña häc sinh - S¸ch gi¸o khoa. III. Hoạt động dạy – học . 1. Hoạt động 1 : Tìm hiểu ý nghĩa của cấu trúc lặp có số lần cha xác định . híng dÉn cña gi¸o viªn. 1. Hoạt động 1. a. ChiÕu néi dung cña bµi to¸n 1. - Hái : Sù kh¸c nhau cña bµi to¸n nµy víi bài toán đã viết ở tiết trớc? - Hái : LÆp l¹i bao nhiªu lÇn? - Hỏi : Lặp đến khi nào? b. ChiÕu néi dung cña bµi to¸n 2. - Hái : Sù kh¸c nhau trong bµi to¸n nµy với bài toán đã giải trong tiết trớc? - Hái: Sè lÇn lÆp cña lÖnh? - Hỏi : Lặp đến khi nào? c. Tiểu kết vấn đề: Qua hai ví dụ ta thấy cã mét d¹ng bµi to¸n cã sù lÆp l¹i cña mét sè lÖnh nhng kh«ng biÕt tríc sè lÇn lÆp. CÇn cã mét cÊu tróc ®iÒu khiÓn lÆp l¹i mét công viêc nhất định khi thỏa mãn một điều kiện nào đó.. Hoạt động của học sinh. a. Chó ý l¾ng nghe, quan s¸t vµ suy nghÜ để trả lời. - Bµi tríc: CHo giíi h¹n N. -Bµi nµy: Cho giíi h¹n S. - Cha xác định ngay đợc. - §Õn khi ®iÒu kiÖn 1/a+N < 0,0001 đợc thỏa mãn. b. Chó ý l¾ng nghe, quan s¸t vµ suy nghÜ tr¶ lêi. - Bµi tríc : BiÕt sè th¸ng, hái sè tiÒn. - Bµi nµy: BiÕt sè tiÒn, hái sè th¸ng. - Cha biết trớc, đó chính là số tháng cần t×m . - Đến khi số tiền thu đợc > S1 ddồng. c. Theo dâi vµ ghi nhí kÕt luËn cña gi¸o viªn.. 2. Hoạt động 2: Tìm hiểu cấu trúc lệnh lặp While trong ngôn ngữ lập trình Pascal. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Yªu cÇu häc sinh nghiªn cøu s¸ch gi¸o khoa vµ cho biÕt cÊu tróc chung cña lÖnh lÆp While. - Gi¶i thÝch: + <§iÒu kiÖn>: Lµ biÓu thcø quan hÖ hoặc biểu thức logic, là điều kiện để lặp l¹i. - Hỏi : trong bài toán 1: Điều kiện để lặp l¹i lµ g×? - Hỏi : Trong bài toán 2: Điều kiện để lÆp l¹i lµ g×? + <LÖnh cÇn lÆp>: Lµ c¸c lÖnh cÇn ph¶i. 1. Tham kh¶o s¸ch gi¸o khoa vµ tr¶ lêi. - CÊu tróc chung While <®iÒu kiªn> Do <lÖnh cÇn lÆp>; 1/a+M >0,0001. S < S1.

<span class='text_page_counter'>(29)</span> lÆp l¹i. - Hái : Trong hai bµi to¸n trªn lÖnh cÇn lÆp lµ g×?. S:= S + 0,015*S để tính số tiền. t:= t + 1; để tính số tháng.. S := S + 1/(a + i) để tính tổng. - Hái: Mét sù kh¸c nhau trong lÖnh cÇn i := i + 1; để tăng tỉ số. lÆp cña For vµ While lµ g×? - While ph¶i cã lÖnh t¨ng biÕn chØ sè. - Dùa vµo cÊu tróc chung, h·y cho biÕt m¸y sÏ thùc hiÖn tÝnh <®iÒu kiÖn> tríc hay - Quan s¸t, suy nghÜ vµ tr¶ lêi: thùc hiÖn <lÖnh cÇn lÆp> tríc? + tÝnh biÓu thøc ®iÒu kiÖn tríc. 2. Yêu cầu học sinh vẽ sơ đồ cấu trúc lên + Thùc hiÖn lÖnh cÇn lÆp sau. b¶ng. 2. Lên bảng vẽ sơ đồ cấu trúc của lệnh - Gọi học sinh đánh giá nhận xét. While. - Tiểu kết cho vấn đề bằng cách treo sơ - Nhận xét đúng sai và bổ sung. đồ mãu và giải thích. 3. Hoat động 3: rèn luyện kĩ năng vận dụng lệnh lặp While. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Nªu néi dung bµi to¸n 1. Môc tiªu lµ viÕt ch¬ng tr×nh hoµn thiÖn. - Định hớng các vấn đề chính. + Xác định điều kiện để tiếp tục lặp. + Xác định các lệnh cần lặp. - Chia ra lµm 3 nhãm. Yªu cÇu häc sinh viÕt ch¬ng tr×nh hoµn thiÖn lªn b×a trong. - thu phiÕu tr¶ lêi, chiÕu kÕt qu¶ b»ng m¸y Overhead. - Gäi häc sinh nhãm kh¸c nhËn xÐt vµ đánh giá. - ChÝnh x¸c hãa ch¬ng tr×nh cho c¶ líp. 2. Nªu néi dung cña bµi to¸n 2. Môc tiªu là phân tích để xác định <điều kiện> và <lÖnh cÇn lÆp>. - LÊy mét vÝ dô cô thÓ khi t×m íc sè chung cña hai sè 15 vµ 25. m n 15 25 15 10 5 10 5 5 Tr¶ lêi: 5 lµ íc sè chung lín nhÊt. - Hỏi: Điều kiện để tiếp tục lặp là gì? - Hái : c¸c lÖnh cÇn lÆp l¹i lµ g×?. 1. Chó ý l¾ng nghe vµ suy nghÜ tr¶ lêi c¸c câu hỏi định hớng của giáo viên. - §iÒu kiÖn: S < S1 S:= S + 0,015*S để tính số tiền. t:= t + 1; để tính số tháng. - Tập trung làm việc theo nhóm để viết đợc chơng trình hoàn thiện.. - Yªu cÇu häc sinh viÕt ch¬ng tr×nh hoµn thiÖn bµi to¸n ë nhµ. - Yªu cÇu häc sinh chØ ra hai c©u hái cÇn đặt ra khi gặp bài toán dạng này.. - Đánh giá đúng – sai và bổ sung. - ghi nhí nh÷ng phÇn gi¸o viªn söu ch÷a. 2. Tập trung theo dõi để thấy đợc những c«ng viÖc cÇn thùc hiÖn.. - §iÒu kiÖn : m<> n - L¹nh cÇn lÆp: m:=m-n; hoÆc n:=n-m; - ThuËt to¸n: B1: NÕu m=n th× UC=m, dõng. B2: NÕu m>n th× m:=m-n ngîc l¹i n:=nm; Quay l¹i B1. - SuynghÜ vµ tr¶ lêi: + Điều kiện nào để lặp lại? + Nh÷ng lÖnh nµo cÇn lÆp l¹i?. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học - ý nghĩa của cấu trúc lặp có số lần cha xác định. - CÊu tróc chung cña lÖnh lÆp While trong ng«n ng÷ Pascal. - Sơ đồ thực hiện của lệnh lặp While..

<span class='text_page_counter'>(30)</span> - Sù thùc hiÖn cña m¸y khi gÆp lÖnh lÆp While. 2. C©u hái vµ bµi tËp vÒ nhµ. - Gi¶i bµi tËp 4, 5b, 7, 8, s¸ch gi¸o khoa trang 51. - ViÕt ch¬ng tr×nh tÝnh tæng: S = 1/a + 1/a+1 + 1/a+2 + ..... + 1/a+N + ... cho đến khi 1/a+N <0,0001. - §äc l¹i lÖnh rÏ nh¸nh IF vµ lµm c¸c bµi tËp liªn quan, chuÈn bÞ cho tiÕt sau thùc hµnh. - Xem néi dung bµi thùc hµnh sè 2, s¸ch gi¸o khoa trang 49. - Xem néi dung phô lôc B, s¸hc gi¸o khoa trang 131: LÖnh rÏ nahnhs vµ lÆp . - Xem n«i dung phô lôc C, s¸ch gi¸o khoa trang 139: LÖnh rÏ nh¸nh vµ lÆp.. Ngµy so¹n: 8/12/2012. TiÕt 16 Bµi tËp (tiÕt 1). I. Môc tiªu. 1. KiÕn thøc. - Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh. 2. KÜ n¨ng - RÌn luyÖn kÜ n¨ng sö dông cÊu tróc rÏ nh¸nh trong viÖc lËp tr×nh gi¶i mét sè bµi to¸n cô thÓ. - Lµm quen víi c¸c c«ng cô phôc vô vµ hiÖu chØnh ch¬ng tr×nh. 3. thái độ - Tự giác, tích cực và hcủ động trong thực hành. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - Phòng máy vi tính, máy chiếu Projector để hớng dẫn. 2. ChuÈn bÞ cña häc sinh. - Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà. III. Hoạt đông dạy – học . 1. Hoạt động 1: Làm quen với một chơng trình và các công cụ hiệu chỉnh chơng trình. híng dÉn cña gi¸o viªn. 1. gơi ý để học sinh nêu khái niệm về bộ sè Pitago.. Hoạt động của học sinh. 1. Theo dõi dẫn dắt cuả chọ sinh để nêu kh¸i niÖm vÒ bé sè Pitago: Tæng b×nh ph¬ng cña hai sè b»ng b×nh ph¬ng cña sè cßn l¹i. VÝ dô vÒ bé sè Pitago: 5 4 3 - Yªu cÇu: lÊy mét vÝ dô cô thÓ . a2 = b2 + c2. - Hái : §Ó kiÓm tra bé ba sè a, b, c bÊt k× b2 = a2 + c2. cã ph¶i lµ bé Pitago, ta pahØ kiÓm tra c¸c c2 = a2 + b2. đẳng thức nào? 2. So¹n ch¬ng tr×nh vµo m¸y theo yªu cÇu 2. ChiÕu ch¬ng tr×nh mÉu lªn b¶ng. thùc hiÖn mÉu c¸c thao t¸c: lu, thùc hiÖn cña gi¸o viªn. tõng lÖnh ch¬ng tr×nh, xem kÕt qu¶ trung gian, thùc hiÖn ch¬ng t×nh vµ nhËp d÷ liÖu. - Yªu cÇu häc sinh gâ ch¬ng tr×nh mÉu vµo m¸y. - Yêu cầu học sinh lu chơng trình lên đĩa - BÊm F2, gâ tªn file vµ enter. víi tªn Pytago.pas. - Yªu cÇu häc sinh thùc hiÖn tõng lÖnh cña ch¬ng tr×nh. - bÊm F7, nhËp c¸c gi¸ trÞ a=3, b=4, - Yªu cÇu häc sinh xem c¸c kÕt qu¶ a2, c=5. b2, c2. - Chọn menu Debug để mở cửa sổ hiệu - Yªu cÇu häc sinh tù t×m thªm mét sè chØnh. bé a b c kh¸c vµ so s¸nh. - Quan s¸t qu¸ tr×nh rÏ nh¸nh cña tõng bé d÷ liÖu vµo vµ tr¶ lêi. 2. Hoạt động 2: Rèn luyện kĩ năng lập trình hoàn thiện một bài toán..

<span class='text_page_counter'>(31)</span> híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Nêu nôi dung, mục đích, yêu cầu cảu 1. chú ý theo dõi vấn đề đặt ra của giáo bµi to¸n. viªn. - Hỏi : Bớc đầu tiên để giải bài toán ? - Xác định input. output và thuật giải. - Hỏi : Để xác định ta phải đặt các câu - Mục đích của giải phơng trình? hỏi nh thế nào? Gọi học sinh đặt câu hỏi và + KÕt luËn sè nghiÖm vµ gi¸ trÞ nghiÖm gọi học sinh trả lời cho câu hỏi đó? x. - Để tính đợc nghiệm x cần các đại lợng nµo? + Cần các đại lợng : a b. - Có các bớc xử lí nào để tính đợc x? - Yªu cÇu häc sinh ph¸c häa thu©t to¸n. 2. §éc lËp so¹n ch¬ng tr×nh vµ m¸y. 2. Yªu cÇu häc sinh gâ ch¬ng tr×nh vµo m¸y. - Giáo viên tiếp cận từng học sinh để hớng dẫn và sửa sai. - Thông báo kết quả viết đợc. 3. Yªu cÇu häc sinh nhËp d÷ liÖu. 3. NhËp d÷ liÖu theo test cña gi¸o viªn vµ - NhËp d÷ liÖu víi test 1 2 -2 th«ng b¸o kÕt qu¶ cña hc¬ng tr×nh. 4. Yêu cầu học sinh xác định các testcase, 4. Tìm testcase. nhập dữ liệu, đối sánh kết quả. 0 0 VNV 0 3 VN 2 3 -1.5 NhËp d÷ liÖu vµ th«ng b¸o kÕt qu¶. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học Các bớc để hoàn thành một chơng trình. - Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra, thuật toán. - Soan ch¬ng tr×nh vµo m¸y. - Lu d÷ ch¬ng tr×nh. - Biªn dÞch. - Thùc hiÖn vµ hiÖu chØnh ch¬ng tr×nh. 2. C©u hái vµ bµi tËp vÒ nhµ. - Viết chơng trình nhập vào độ dài ba cạnh cuat một tam giác và tính chu vi, diện tích của tam gicá đó. - Cho ch¬ng tr×nh sau: Program max; var a, b, max:integer; Begin Write(‘nhap vao hai so bat ki’); readln(a, b); If max:=a; If max<b then max:=b; Writeln(max); Readln; End. Hái: Ch¬ng tr×nh thùc hiÖn ch¬ng tr×nh g×, kÕt qu¶ in ra mµn h×nh lµ bao nhiªu? - Viết chơng tình nhập vào ba số bất kì và tìm giá trị bé nhất của ba số đó. - Xem tríc néi dung bµi: kiÓu m¼ng, s¸ch gi¸o khoa, trang 53.. Ngµy so¹n:6/12/2012. TiÕt 17 Bµi tËp (tiÕt 2). I. Môc tiªu. 1. KiÕn thøc. - Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh..

<span class='text_page_counter'>(32)</span> 2. KÜ n¨ng - RÌn luyÖn kÜ n¨ng sö dông cÊu tróc rÏ nh¸nh trong viÖc lËp tr×nh gi¶i mét sè bµi to¸n cô thÓ. - Lµm quen víi c¸c c«ng cô phôc vô vµ hiÖu chØnh ch¬ng tr×nh. 3. thái độ - Tự giác, tích cực và hcủ động trong thực hành. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - Phòng máy vi tính, máy chiếu Projector để hớng dẫn. 2. ChuÈn bÞ cña häc sinh. - Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà. III. Hoạt đông dạy – học . 1. Hoạt động 1: Làm quen với một chơng trình và các công cụ hiệu chỉnh chơng trình. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. gơi ý để học sinh nêu khái niệm về bộ sè Pitago.. 1. Theo dõi dẫn dắt cuả chọ sinh để nêu kh¸i niÖm vÒ bé sè Pitago: Tæng b×nh ph¬ng cña hai sè b»ng b×nh ph¬ng cña sè cßn l¹i. VÝ dô vÒ bé sè Pitago: 5 4 3 - Yªu cÇu: lÊy mét vÝ dô cô thÓ . a2 = b2 + c2. - Hái : §Ó kiÓm tra bé ba sè a, b, c bÊt k× b2 = a2 + c2. cã ph¶i lµ bé Pitago, ta pahØ kiÓm tra c¸c c2 = a2 + b2. đẳng thức nào? 2. So¹n ch¬ng tr×nh vµo m¸y theo yªu cÇu 2. ChiÕu ch¬ng tr×nh mÉu lªn b¶ng. thùc hiÖn mÉu c¸c thao t¸c: lu, thùc hiÖn cña gi¸o viªn. tõng lÖnh ch¬ng tr×nh, xem kÕt qu¶ trung gian, thùc hiÖn ch¬ng t×nh vµ nhËp d÷ liÖu. - Yªu cÇu häc sinh gâ ch¬ng tr×nh mÉu vµo m¸y. - Yêu cầu học sinh lu chơng trình lên đĩa - BÊm F2, gâ tªn file vµ enter. víi tªn Pytago.pas. - Yªu cÇu häc sinh thùc hiÖn tõng lÖnh cña ch¬ng tr×nh. - bÊm F7, nhËp c¸c gi¸ trÞ a=3, b=4, - Yªu cÇu häc sinh xem c¸c kÕt qu¶ a2, c=5. b2, c2. - Chọn menu Debug để mở cửa sổ hiệu - Yªu cÇu häc sinh tù t×m thªm mét sè chØnh. bé a b c kh¸c vµ so s¸nh. - Quan s¸t qu¸ tr×nh rÏ nh¸nh cña tõng bé d÷ liÖu vµo vµ tr¶ lêi. 2. Hoạt động 2: Rèn luyện kĩ năng lập trình hoàn thiện một bài toán. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Nêu nôi dung, mục đích, yêu cầu cảu 1. chú ý theo dõi vấn đề đặt ra của giáo bµi to¸n. viªn. - Hỏi : Bớc đầu tiên để giải bài toán ? - Xác định input. output và thuật giải. - Hỏi : Để xác định ta phải đặt các câu - Mục đích của giải phơng trình? hỏi nh thế nào? Gọi học sinh đặt câu hỏi và + KÕt luËn sè nghiÖm vµ gi¸ trÞ nghiÖm gọi học sinh trả lời cho câu hỏi đó? x. - Để tính đợc nghiệm x cần các đại lợng nµo? + Cần các đại lợng : a b. - Có các bớc xử lí nào để tính đợc x? - Yªu cÇu häc sinh ph¸c häa thu©t to¸n. 2. §éc lËp so¹n ch¬ng tr×nh vµ m¸y. 2. Yªu cÇu häc sinh gâ ch¬ng tr×nh vµo m¸y. - Giáo viên tiếp cận từng học sinh để hớng dẫn và sửa sai. - Thông báo kết quả viết đợc. 3. Yªu cÇu häc sinh nhËp d÷ liÖu. 3. NhËp d÷ liÖu theo test cña gi¸o viªn vµ - NhËp d÷ liÖu víi test 1 2 -2 th«ng b¸o kÕt qu¶ cña hc¬ng tr×nh. 4. Yêu cầu học sinh xác định các testcase, 4. Tìm testcase. nhập dữ liệu, đối sánh kết quả. 0 0 VNV.

<span class='text_page_counter'>(33)</span> 0 3 VN 2 3 -1.5 NhËp d÷ liÖu vµ th«ng b¸o kÕt qu¶. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học Các bớc để hoàn thành một chơng trình. - Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra, thuật toán. - Soan ch¬ng tr×nh vµo m¸y. - Lu d÷ ch¬ng tr×nh. - Biªn dÞch. - Thùc hiÖn vµ hiÖu chØnh ch¬ng tr×nh. 2. C©u hái vµ bµi tËp vÒ nhµ. - Viết chơng trình nhập vào độ dài ba cạnh cuat một tam giác và tính chu vi, diện tích của tam gicá đó. - Cho ch¬ng tr×nh sau: Program max; var a, b, max:integer; Begin Write(‘nhap vao hai so bat ki’); readln(a, b); If max:=a; If max<b then max:=b; Writeln(max); Readln; End. Hái: Ch¬ng tr×nh thùc hiÖn ch¬ng tr×nh g×, kÕt qu¶ in ra mµn h×nh lµ bao nhiªu? - Viết chơng tình nhập vào ba số bất kì và tìm giá trị bé nhất của ba số đó. - Xem tríc néi dung bµi: kiÓu m¼ng, s¸ch gi¸o khoa, trang 53..

<span class='text_page_counter'>(34)</span> Ngµy so¹n:12/12/2012. TiÕt 18 ¤n tËp häc kú I. I. Môc tiªu. 1. KiÕn thøc. - Cñng cè l¹i hco häc sinhnh÷ng kiÕn thøc liªn quan ®Ðn tæ chøc rÏ nh¸nh vµ lÆp : CÊu trúc lặp, sơ đồ thực hiện, sự thực hiện của máy khi gặp lệnh lặp. 2. KÜ n¨ng. - RÌn luyÖn kÜ n¨ng vËn dông vµ linh ho¹t trong c«ng viÖc lùa hcän cÊu tróc rÏ nh¸nh và cấu trúc lặp phù hợp để giải quyết bài toán đặt ra. 3. Thái độ. - Tự giác tích cực, chủ động trong giải quyết các bài tập. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - Máy chiếu Projector, máy vi tính để giới thiệu ví dụ minh họa, một số chơng trình mÉu. 2. ChuÈn bÞ cña häc sinh - S¸ch gi¸o khoa. III. Hoạt động dạy – học. 1. Hoạt động 1: Nhắc lại kiến thức đã học về tổ hcức rẽ nhánh và lặp . híng dÉn cña gi¸o viªn. 1. Yªu cÇu häc sinh nh¾c l¹i cÊu tróc rÏ nh¸nh. - ChiÕu ch¬ng tr×nh t×m gi¸ trÞ lín nhÊt của hai số, trong đó có sử dụng lệnh rẽ nhánh dạng đủ. Var a b: Integer; Begin readln(a, b); If a>b then write(a) esle write(b); read; end. - Hái: Ch¬ng tr×nh thùc hiÖn c«ng viÖc g×? - Yªu cÇu häc sinh viÕt l¹i ch¬ng tr×nh b»ng c¸ch sö dông lÖnh rÏ nh¸nh d¹ng thiÕu. 2. Yªu cÇu häc sinh nh¾c l¹i cÊu tróc cña các lệnh lặp đã học. - Chiếu lên bảng hai chơng trình đã chuẩn bị sẵn, trong đó một chơng trình sử dông lÖnh lÆp For vµ mét ch¬ng tr×nh sö dông lÆp while. - Yªu cÇu: So s¸nh sù gièng vµ kh¸c nhau của hai dạng lệnh đó.. Hoạt động của học sinh. 1. Độc lập suy nghĩ để trả lời If <bt®k> then <lÖnh 1> Else <lÖnh 2>; If <bt®k> then <lÖnh >;. - In ra mµn h×nh gi¸ trÞ lín nhÊt . Var a, b : Integer; Begin Readln(a, b); max:=b; If a>b then max:=a; Write(max); readln; end. 2. Suy nghÜ vµ tr¶ lêi. For <biến đếm>:=<giá trị đầu>; To <gi¸ trÞ cuèi> Do <lÖnh>; While <®iÒu kiÖn> Do <lÖnh cÇn lÆp>; - Quan s¸t, suy nghÜ vµ tr¶ lêi . - Giống: đều là lệnh lặp. - Khác: For lặp với số lần đã xác định trớc trong khi While lạp với số lần cha xác định.. 2. Hoạt động 2: rèn luyện kĩ năng vận dụng tổ chức lặp. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. T×m hiÓu bµi tËp 1 vµ gi¶i quyÕt. 1. Quan sát và suy nghĩ để giải quyết bài - ChiÕu néi dung vÝ dô 1 lªn b¶ng. to¸n. - Hái: Cã thÓ khai triÓn biÓu thøc Y Y = 1/2 + 2/3 + 3/4 + ... + 50/51 thµnh tæng cña c¸c sè h¹ng nh thÕ nµo? - Nh×n vµo c«ng thøc khai triÓn, cho biÕt 1..50.

<span class='text_page_counter'>(35)</span> N lÊy gi¸ trÞ táng ®o¹n nµo? - Hái : Ta sö dông cÊu tróc ®iÒu khiÓn - Sử dụng cấu trúc lặp có số lần đã xác lÆp nµo lµ phï hîp? định. - Chia lớp làm ba nhóm, yêu cầu viết ch- Thảo luận theo nhóm để viết chơng ¬ng tr×nh lªn b×a trong. tr×nh lªn b×a trong. - Thu phiÕu tr¶ lêi, chiÕu kÕt qu¶ lªn - b¸o c¸o kÕt qu¶ cña nhãm. b¶ng. - Nhận xét, đánh giá và bổ sung các - Gäi häc sinh nhãm kh¸c nhËn xÐt thiÕu sãt cña nhãm kh¸c đánh giá và bổ sung. 2. Tìm hiểu nội dung ví dụ 2 và định hớng 2. Quan sát và theo dõi những định hớng häc sinh gi¶i quyÕt ë nhµ. cña gi¸o viªn. - ChiÕu néi dung vÝ dô 2 lªn b¶ng - H·y cho biÕt N nhËn gi¸ trÞ trong ®o¹n - Cha xác định đợc cận cuối. nào? Xác định đợc cha? - Hái : Dïng cÊu tróc ®iÒu khiÓn nµo lµ - Dïng cÊu tróc lÆp cã sè lÇn cha x¸c thÝch hîp? định . - Yªu cÇu häc sinh vÒ nhµ lËp tr×nh trªn - Ghi nhí lµm bµi tËp vÒ nhµ . m¸y, tiÕt sau nép l¹o cho gi¸o viªn. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học. - Cã hai cÊu tróc lÆp: + Lặp For: Số lần lặp đã xác định. + Lặp While: Số lần lặp cha xác định. 2. DÆn dß: -Về ôn tập chơng I, II để tiết sau kiểm tra học kỳ I.

<span class='text_page_counter'>(36)</span> Ngµy so¹n: 16/12/2012. TiÕt 19. KIEÅM TRA HOÏC KYØ I. Bài 1: Viết chương trình tính diện tích tam giác theo công thức sau với độ dài các cạnh nhập từ bàn phím: S=. √ p ( p − a)( p −b)( p −c ). với p =. 1 (a+b+c) 2. Baøi 2: Vieát chöông trình tính vaø ñöa ra maøn hình c. Toång bình phöông cuûa 3 soá nguyeân. d. Caên baäc 2 cuûa toång 3 soá nguyeân Với a, b, c nhập từ bàn phím Bài 3: Viết chương trình tính diện tích và chu vi hình tròn với bán kính nhập từ bàn phím.

<span class='text_page_counter'>(37)</span> Ngµy so¹n: 20/12/2012. TiÕt 20. Bµi tËp thùc hµnh sè 2 (tiÕt 1) I. Môc tiªu. 1. KiÕn thøc. - Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh. 2. KÜ n¨ng - RÌn luyÖn kÜ n¨ng sö dông cÊu tróc rÏ nh¸nh trong viÖc lËp tr×nh gi¶i mét sè bµi to¸n cô thÓ. - Lµm quen víi c¸c c«ng cô phôc vô vµ hiÖu chØnh ch¬ng tr×nh. 3. thái độ - Tự giác, tích cực và hcủ động trong thực hành. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - Phòng máy vi tính, máy chiếu Projector để hớng dẫn. 2. ChuÈn bÞ cña häc sinh. - Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà. III. Hoạt đông dạy – học . 1. Hoạt động 1: Làm quen với một chơng trình và các công cụ hiệu chỉnh chơng trình. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. gơi ý để học sinh nêu khái niệm về bộ sè Pitago.. 1. Theo dõi dẫn dắt cuả chọ sinh để nêu kh¸i niÖm vÒ bé sè Pitago: Tæng b×nh ph¬ng cña hai sè b»ng b×nh ph¬ng cña sè cßn l¹i. VÝ dô vÒ bé sè Pitago: 5 4 3 - Yªu cÇu: lÊy mét vÝ dô cô thÓ . a2 = b2 + c2. - Hái : §Ó kiÓm tra bé ba sè a, b, c bÊt k× b2 = a2 + c2. cã ph¶i lµ bé Pitago, ta pahØ kiÓm tra c¸c c2 = a2 + b2. đẳng thức nào? 2. So¹n ch¬ng tr×nh vµo m¸y theo yªu cÇu 2. ChiÕu ch¬ng tr×nh mÉu lªn b¶ng. thùc hiÖn mÉu c¸c thao t¸c: lu, thùc hiÖn cña gi¸o viªn. tõng lÖnh ch¬ng tr×nh, xem kÕt qu¶ trung gian, thùc hiÖn ch¬ng t×nh vµ nhËp d÷ liÖu. - Yªu cÇu häc sinh gâ ch¬ng tr×nh mÉu vµo m¸y. - Yêu cầu học sinh lu chơng trình lên đĩa - BÊm F2, gâ tªn file vµ enter. víi tªn Pytago.pas. - Yªu cÇu häc sinh thùc hiÖn tõng lÖnh cña ch¬ng tr×nh. - bÊm F7, nhËp c¸c gi¸ trÞ a=3, b=4, - Yªu cÇu häc sinh xem c¸c kÕt qu¶ a2, c=5. b2, c2. - Chọn menu Debug để mở cửa sổ hiệu - Yªu cÇu häc sinh tù t×m thªm mét sè chØnh. bé a b c kh¸c vµ so s¸nh. - Quan s¸t qu¸ tr×nh rÏ nh¸nh cña tõng bé d÷ liÖu vµo vµ tr¶ lêi. 2. Hoạt động 2: Rèn luyện kĩ năng lập trình hoàn thiện một bài toán. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Nêu nôi dung, mục đích, yêu cầu cảu 1. chú ý theo dõi vấn đề đặt ra của giáo bµi to¸n. viªn. - Hỏi : Bớc đầu tiên để giải bài toán ? - Xác định input. output và thuật giải. - Hỏi : Để xác định ta phải đặt các câu - Mục đích của giải phơng trình? hỏi nh thế nào? Gọi học sinh đặt câu hỏi và + KÕt luËn sè nghiÖm vµ gi¸ trÞ nghiÖm gọi học sinh trả lời cho câu hỏi đó? x. - Để tính đợc nghiệm x cần các đại lợng nµo? + Cần các đại lợng : a b. - Có các bớc xử lí nào để tính đợc x? - Yªu cÇu häc sinh ph¸c häa thu©t to¸n..

<span class='text_page_counter'>(38)</span> 2. Yªu cÇu häc sinh gâ ch¬ng tr×nh vµo m¸y. - Giáo viên tiếp cận từng học sinh để hớng dẫn và sửa sai.. 2. §éc lËp so¹n ch¬ng tr×nh vµ m¸y. - Thông báo kết quả viết đợc.. 3. Yªu cÇu häc sinh nhËp d÷ liÖu. 3. NhËp d÷ liÖu theo test cña gi¸o viªn vµ - NhËp d÷ liÖu víi test 1 2 -2 th«ng b¸o kÕt qu¶ cña hc¬ng tr×nh. 4. Yêu cầu học sinh xác định các testcase, 4. Tìm testcase. nhập dữ liệu, đối sánh kết quả. 0 0 VNV 0 3 VN 2 3 -1.5 NhËp d÷ liÖu vµ th«ng b¸o kÕt qu¶. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học Các bớc để hoàn thành một chơng trình. - Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra, thuật toán. - Soan ch¬ng tr×nh vµo m¸y. - Lu d÷ ch¬ng tr×nh. - Biªn dÞch. - Thùc hiÖn vµ hiÖu chØnh ch¬ng tr×nh. 2. C©u hái vµ bµi tËp vÒ nhµ. - Viết chơng trình nhập vào độ dài ba cạnh cuat một tam giác và tính chu vi, diện tích của tam gicá đó. - Cho ch¬ng tr×nh sau: Program max; var a, b, max:integer; Begin Write(‘nhap vao hai so bat ki’); readln(a, b); If max:=a; If max<b then max:=b; Writeln(max); Readln; End. Hái: Ch¬ng tr×nh thùc hiÖn ch¬ng tr×nh g×, kÕt qu¶ in ra mµn h×nh lµ bao nhiªu? - Viết chơng tình nhập vào ba số bất kì và tìm giá trị bé nhất của ba số đó. - Xem tríc néi dung bµi: kiÓu m¼ng, s¸ch gi¸o khoa, trang 53.. Ngµy so¹n:24/12/2012. TiÕt 21 Bµi tËp thùc hµnh sè 2 (tiÕt 2). I. Môc tiªu. 1. KiÕn thøc. - Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh. 2. KÜ n¨ng - RÌn luyÖn kÜ n¨ng sö dông cÊu tróc rÏ nh¸nh trong viÖc lËp tr×nh gi¶i mét sè bµi to¸n cô thÓ. - Lµm quen víi c¸c c«ng cô phôc vô vµ hiÖu chØnh ch¬ng tr×nh. 3. thái độ - Tự giác, tích cực và hcủ động trong thực hành. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - Phòng máy vi tính, máy chiếu Projector để hớng dẫn. 2. ChuÈn bÞ cña häc sinh. - Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà..

<span class='text_page_counter'>(39)</span> III. Hoạt đông dạy – học . 1. Hoạt động 1: Làm quen với một chơng trình và các công cụ hiệu chỉnh chơng trình. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. gơi ý để học sinh nêu khái niệm về bộ sè Pitago.. 1. Theo dõi dẫn dắt cuả chọ sinh để nêu kh¸i niÖm vÒ bé sè Pitago: Tæng b×nh ph¬ng cña hai sè b»ng b×nh ph¬ng cña sè cßn l¹i. VÝ dô vÒ bé sè Pitago: 5 4 3 - Yªu cÇu: lÊy mét vÝ dô cô thÓ . a2 = b2 + c2. - Hái : §Ó kiÓm tra bé ba sè a, b, c bÊt k× b2 = a2 + c2. cã ph¶i lµ bé Pitago, ta pahØ kiÓm tra c¸c c2 = a2 + b2. đẳng thức nào? 2. So¹n ch¬ng tr×nh vµo m¸y theo yªu cÇu 2. ChiÕu ch¬ng tr×nh mÉu lªn b¶ng. thùc hiÖn mÉu c¸c thao t¸c: lu, thùc hiÖn cña gi¸o viªn. tõng lÖnh ch¬ng tr×nh, xem kÕt qu¶ trung gian, thùc hiÖn ch¬ng t×nh vµ nhËp d÷ liÖu. - Yªu cÇu häc sinh gâ ch¬ng tr×nh mÉu vµo m¸y. - Yêu cầu học sinh lu chơng trình lên đĩa - BÊm F2, gâ tªn file vµ enter. víi tªn Pytago.pas. - Yªu cÇu häc sinh thùc hiÖn tõng lÖnh cña ch¬ng tr×nh. - bÊm F7, nhËp c¸c gi¸ trÞ a=3, b=4, - Yªu cÇu häc sinh xem c¸c kÕt qu¶ a2, c=5. b2, c2. - Chọn menu Debug để mở cửa sổ hiệu - Yªu cÇu häc sinh tù t×m thªm mét sè chØnh. bé a b c kh¸c vµ so s¸nh. - Quan s¸t qu¸ tr×nh rÏ nh¸nh cña tõng bé d÷ liÖu vµo vµ tr¶ lêi. 2. Hoạt động 2: Rèn luyện kĩ năng lập trình hoàn thiện một bài toán. híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Nêu nôi dung, mục đích, yêu cầu cảu 1. chú ý theo dõi vấn đề đặt ra của giáo bµi to¸n. viªn. - Hỏi : Bớc đầu tiên để giải bài toán ? - Xác định input. output và thuật giải. - Hỏi : Để xác định ta phải đặt các câu - Mục đích của giải phơng trình? hỏi nh thế nào? Gọi học sinh đặt câu hỏi và + KÕt luËn sè nghiÖm vµ gi¸ trÞ nghiÖm gọi học sinh trả lời cho câu hỏi đó? x. - Để tính đợc nghiệm x cần các đại lợng nµo? + Cần các đại lợng : a b. - Có các bớc xử lí nào để tính đợc x? - Yªu cÇu häc sinh ph¸c häa thu©t to¸n. 2. §éc lËp so¹n ch¬ng tr×nh vµ m¸y. 2. Yªu cÇu häc sinh gâ ch¬ng tr×nh vµo m¸y. - Giáo viên tiếp cận từng học sinh để hớng dẫn và sửa sai. - Thông báo kết quả viết đợc. 3. Yªu cÇu häc sinh nhËp d÷ liÖu. 3. NhËp d÷ liÖu theo test cña gi¸o viªn vµ - NhËp d÷ liÖu víi test 1 2 -2 th«ng b¸o kÕt qu¶ cña hc¬ng tr×nh. 4. Yêu cầu học sinh xác định các testcase, 4. Tìm testcase. nhập dữ liệu, đối sánh kết quả. 0 0 VNV 0 3 VN 2 3 -1.5 NhËp d÷ liÖu vµ th«ng b¸o kÕt qu¶. IV. §¸nh gi¸ cuèi bµi. 1. Những nội dung đã học Các bớc để hoàn thành một chơng trình. - Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra, thuật toán. - Soan ch¬ng tr×nh vµo m¸y. - Lu d÷ ch¬ng tr×nh. - Biªn dÞch..

<span class='text_page_counter'>(40)</span> - Thùc hiÖn vµ hiÖu chØnh ch¬ng tr×nh. 2. C©u hái vµ bµi tËp vÒ nhµ. - Viết chơng trình nhập vào độ dài ba cạnh cuat một tam giác và tính chu vi, diện tích của tam gicá đó. - Cho ch¬ng tr×nh sau: Program max; var a, b, max:integer; Begin Write(‘nhap vao hai so bat ki’); readln(a, b); If max:=a; If max<b then max:=b; Writeln(max); Readln; End. Hái: Ch¬ng tr×nh thùc hiÖn ch¬ng tr×nh g×, kÕt qu¶ in ra mµn h×nh lµ bao nhiªu? - Viết chơng tình nhập vào ba số bất kì và tìm giá trị bé nhất của ba số đó. - Xem tríc néi dung bµi: kiÓu m¼ng, s¸ch gi¸o khoa, trang 53..

<span class='text_page_counter'>(41)</span> Ch¬ng 4. KiÓu d÷ liÖu cã cÊu tróc I. Môc tiªu cña ch¬ng 1. KiÕn thøc: Häc sinh cÇn: - Hiểu đợc khái niệm kiểu dữ liệu có cấu trúc. - Biết đợc ngôn ngữ lập trình cho phép tạo ra các kiểu dữ liệu có cấu trúc trên cơ sở c¸c kiÓu d÷ liÖu chuÈn. - Một kiểu dữ liệu có cấu trúc đợc xây dựng từ những kiểu dữ liệu cơ sở theo một số kĩ thuật tạo kiểu do ngôn ngữ lập trình quy định . - Kiểu dữ liệu xác định bởi hai yếu tố: Phạm vi đối tợng và các thao tác trên những đối tợng này. 2. KÜ n¨ng - BiÕt c¸ch m« t¶ kiÓu d÷ liÖu trong ng«n ng÷ lËp tr×nh Pascal. - Biết cách sử dụng đúng các thao tác vao/ra dữ liệu cho biến thuộc kiểu dữ liệu có cÊu tróc. - Biết cách sử dụng đúng các phép toán trên các thành phẩmcơ sở tùy theo kiểu của c¸c thµnh phÇn c¬ së. 3. Thái độ. - tiÕp tôc x©y dùng lßng yªu thÝch gi¶i bµi to¸n lËp tr×nh trªn m¸y vi tÝnh. - TiÕp tôc rÌn luyÖn c¸c phÈm chÊt cÇn thiÕt cña ngêi lËp tr×nh nh: ý thøc chon vµ x©y dựng kiểu dữ liệu khi thể hiện những đối tợng trong thực tế, ý thức rèn luyện kĩ năng sử dông c¸c thao t¸c trªn mçi kiÓu d÷ liÖu cã cÊu tróc, høng thó t×m hiÓu c¸c thuËt to¸n thêng gÆp trªn c¸c m« h×nh d÷ liÖu. Lu«n muèn c¶i tiÕn ch¬ng tr×nh nh»m n©ng cao hiÖu qu¶ ch¬ng tr×nh. II. Néi dung chñ yÕu cña ch¬ng Ch¬ng nµy tr×nh bµy ba kiÓu d÷ liÖu cã cÊu tróc quan träng: - KiÓu m¼ng mét chiÒu vµ m¶ng hai chiÒu. - kiÓu x©u kÝ tù. - kiÓu b¶ng ghi.. Ngµy so¹n:8/1/2013. TiÕt 21. KIỂU MẢNG (tiết 1) I. MỤC TIÊU 1. Kiến thức Biết được một kiểu dữ liệu mới là kiểu mảng một chiều. Biết được một loại biến có chỉ số; Biết cấu trúc tạo mảng một chiều, cách khai báo biến kiểu mảng một chiều. 2. Kĩ năng Biết được các thành phần trong khai báo kiểu mảng một chiều; Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình; Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên; Biết cách tham chiếu đến các phần tử của mảng một chiều. 3. Tư duy và Thái độ: Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức. II. ĐỒ DÙNG DẠY HỌC 1. Giáo viên: giáo án, sgk, sơ đồ cấu trúc mảng 1 chiều 2. Học sinh: sgk III. HOẠT ĐỘNG DẠY HỌC 1) Ổn định tổ chức: Kiểm tra sĩ số lớp. 2) Kiểm tra bài cũ: Thông qua. 3) Giảng bài mới: Hoạt động 1: (15 phút) Khởi động bài mới Hoạt động của Giáo viên và Học sinh 1. Nêu bài toán mở đầu. Y/cầu hs đọc, tìm hiểu chtrình giải quyết bài toán đó. Và trả lời các câu hỏi sau:. Nội Dung.

<span class='text_page_counter'>(42)</span> - Các biến: t1, …,t7 thể hiện các giá trị nào? Kiểu của các biến đó thế nào? - Biến dem dùng làm gì? 1.Kiếu mảng một chiều - 7 câu lệnh IF trong chương trình thực hiện việc gì? a. K/n mảng một chiều TL: dem: để đếm số ngày tron tuần có nđộ lớn hơn nđộ trung bình. (sgk) TL: - Để kiểm tra lần lượt các ngày, nđộ ngày nào lớn hơn nđộ trung bình.. 2. Mở rộng bài toán từ phạm vi một tuần sang phạm vi N ngày (chẳng hạn một tháng hay một năm) thì chương trình trên có hạn chế như thế nào? TL: Bản chất thuật toán không có gì thay đổi nhưng việc viết chương trình gặp khó khăn do cần dùng rất nhiều biến và đoạn các câu lệnh tính toán khá dài.. 3. Để khắc phục hạn chế trên người ta thường ghép chung 7 biến trên thành một dãy và đặt cho nó chung 1 tên và đánh cho mỗi phần tử một chỉ số. 4.Em hiểu như thế nào về mãng một chiều? TL: Mảng một chiều là dãy hữu hạn các phận tử cùng kiểu dữ liệu.. Hỏi: Để mô tả mảng một chiều, ta cần xác định những yếu tố nào? - Trả lời: + Kiểu của các p/tử. + Cách đánh số các p/tử. Hoạt động 2: (20 phút)Tạo kiểu mảng một chiều và khai báo biến mảng Hoạt động của Giáo viên và Học sinh Nội Dung Hỏi: Chỉ ra phần khai báo mảng trong phần khi báo của Type chtrình? Kmang1=array [1..Max] of real; - Ý nghĩa của các khai báo trên là gì? Var Nhietdo: Kmang1; Trả lời: b. Khai báo (Có hai cách) Dòng 1: Kbáo kiểu mảng một chiều gồm Max số thực. Cách 1: Khai báo trực tiếp: Dòng 2 : Kbáo biến mảng Nhietdo qua kiểu mảng Var <tên biến mảng>: array[kiểu chỉ số] of 2. Giới thiệu cú pháp khai báo kiểu mảng một chiều. <kiểu phần tử>; Cách 2: Khai báo gián tiếp 3. Y/cầu cho ví dụ khai báo mảng? Type <tên kiểu mảng>= array[kiểu chỉ số] of Gọi hs khác: Ý nghĩa của khai báo bạn vừa viết? <kiểu phần tử>; và trả lời Var <tên biến mảng>:<tên kiểu mảng>; Var Dhs2: array [1..100] of real; - Kbáo trực tiếp mảng có tên Dhs2 gồm 100 p/tử có kiều Trong đó: +Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1...n2(n1<n2) thực. * Lưu ý hs tránh nhầm lẫn giữa tên kiểu dữ liệu mảng (n1,n2 là các hằng hoặc biểu thức) + Kiểu phần tử là kiểu dl của các phần tử của và biến kiểu mảng. -Hỏi: (Treo bảng) Trong ba cách khai báo ở ví dụ 2, mảng. Ví dụ 1: thì cách nào tốt hơn? Var Nhietdo: array [1..Max] Of real; TL: Cách 2 & 3, vì ta dễ dàng điều chỉnh kích thước Ví dụ 2: Khai báo mảng tối đa 100 số nguyên của mảng (chỉ số đầu tiên là 1) - Hỏi: Dựa vào ví dụ trang 55 SGK, cho biết: Ta có các cách sau: + Tên kiểu mảng? Cách 1: + Số phần tử của mảng? Var a: Array[1..100] Of Integer; + Mỗi phần tử của mảng thuộc kiểu gì? Cách 2: Const Nmax = 100; Trả lời: Var a: Array[1..Nmax] Of integer; .ArrayReal * Tham chiếu tới phần tử cuả mảng .301 phần tử Tên_biến[chỉ số] .Real 1. Cách tham chiếu đến từng phần tử của mảng: TL: a[2] p/tử ở vị trí thứ 2 của mảng a.

<span class='text_page_counter'>(43)</span> a[i] p/tử ở vị trí i của mảng a. 4) Củng cố (7 phút) Hoạt động của Giáo viên và Học sinh (Treo bảng) + Những khai báo nào là đúng? + Trả lời: Arrayr=array[1..200] of integer; Arrayb = array[-100..100]of boolean;. Nội Dung Type Arrayr = array[1..200] Of integer; Arrayr = array[byte] of real; Arrayb = array[-100..100] of boolean; Var a : arrayr; B : arrayb;. + Biến a trong khai báo trên chiếm dung lượng bộ nhớ là bao nhiêu? + Trả lời: a chiếm 400 byte trong bộ nhớ. III. ĐÁNH GIÁ CUỐI BÀI, DẶN DÒ (3phút) 1. Câu hỏi, bài tập về nhà: Đọc ví dụ 1 và ví dụ 2/ trang 56+57 SGK. Ngµy so¹n:14/1/2013. :. TiÕt 23 KIỂU MẢNG (tiết 2). I. MỤC TIÊU 1. Kiến thức: Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng. 2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản. II. PHƯƠNG TIỆN DẠY HỌC : 1. Giáo viên: giáo án, bảng phụ, sgk 2. Học sinh: sgk III. HOẠT ĐỘNG DẠY VÀ HỌC 1) Ổn định tổ chức: Kiểm tra sĩ số lớp. 2) Kiểm tra bài cũ: Trình bày các cách khai báo kiểu mảng trong NNLT Pascal? 3) Giảng bài mới: Hoạt động 2: (20 phút)Vận dụng kiểu mảng một chiều Hoạt động của Giáo viên và Học sinh Nội Dung 1. Nêu đề bài toán (Nội dung) Bài 1: Viết CT tạo mảng A gồm N (N100) số Y/cầu hs xác định In/Output của bài toán. nguyên. Tính tổng các phần tử của mảng là HS: In: mảng A, số k bội của một số nguyên dương k cho trước. Out: Tổng (S) các p/tử trong mảng A là bội của k. 2. Ở lớp 10 ta đã xây dựng t/toán cho bài toán này rồi. Y/cầu hs nhắc lại t/toán. 3. Y/cầu hs cho biết các việc chính cần thực hiện trong chtrình là gì? Var S, n, k, i : integer; Trả lời A: array[1..100] of integer; + Cho biết số ptử của mảng A. Begin + Nhập giá trị cho các ptử của mảng A Write(‘Nhap n = ’); readln(n); + Tính tổng. {tao mang} 4. Y/cầu hs cho biết các biến chính cần sử dụng For i:=1 To n Do là gì? begin TL: mảng A write(‘phan tu thu ’,i,’ =’); biến đơn: N, k, S. readln(A[i]); - Y/cầu hs khác lên viết phần khai báo các biến end; đó? write(‘Nhap k = ’); readln(k); HS Lên bảng trình bày S := 0; {khoi tao S ban dau} Var S, N, k: integer; {tinh tong} A: array[1..100] of integer; For i:=1 To n Do 5. Tiếp tục y/cầu hs lên viết phần chtrình tạo giá If A[i] mod k = 0 Then.

<span class='text_page_counter'>(44)</span> trị cho các ptử của mảng A. (lưu ý nhập số lượng S := S + A[i]; ptử của mảng trước) Writeln(‘Tong can tinh la ’, S); Gọi hs khác nhận xét End. * Chỉnh sửa đoạn chtrình hs vừa hoàn thành. 6. Để viết tiếp đoạn chtrình còn lại (tính tổng) theo thuật toán ta phải kiểm tra lần lượt tất cả các ptử của mảng từ A[1] đến A[n]. vậy ta sử dụng câu lệnh gì ở đây? TL: Sử dụng cấu trúc lặp For. - Hỏi: trước khi tính tổng, ngoài mảng A trong CT cần có thêm gì không? (GV bổ sung) TL: Giá trị k và Biến S := 0 - Y/cầu hs khác lên viết đoạn chtrình còn lại? - 1 hs Lên bảng trình bày Chạy thử chtrình N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 và k =3 Hoạt động 3: (15 phút) Mở rộng bài toán có vận dụng mảng một chiều Hoạt động của Giáo viên và Học sinh Nội Dung (Treo bảng) chứa nội dung câu lệnh cần thêm vào Var n, i : integer; am, duong : integer; chtrình ở bài 1. A : array[1..100] of integer; 1. Y/cầu hs n/cứu nội dung các câu lệnh và hỏi: Begin - Ý nghĩa của biến am, duong? Write(‘Nhap n = ’); readln(n); - Chức năng của lệnh (3)? {tao mang} - Lệnh (4) đưa ra thông tin gì? For i:=1 To n Do HS N/cứu ý nghĩa các câu lệnh và trả lời: begin - Dùng để lưu số lượng đếm được. write(‘phan tu thu ’,i,’ =’); - Đếm số dương hoặc đếm số âm. readln(A[i]); - Số các số dương, số các số âm. end; 2. Y/cầu hs tìm vị trí bổ sung các lệnh vào cho am := 0; duong := 0; {dem} phù hợp để chtrình đếm được số dương, số âm. HS Chỉ ra vị trí cần bổ sung và các câu lệnh cần For i:=1 To n Do If A[i] >0 Then loại bỏ bớt. duong := duong + 1 3. Y/cầu hs lên Else if A[i]<0 Then hoàn chỉnh lại chtrình? am := am + 1; HS Lên bảng , chỉnh sửa lại chtrình. Writeln(duong: 4, am:4); ** Chuẩn hoá lại chtrình. End. * Chạy thử chtrình với 1 bộ giá trị: Chạy thử chtrình N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 A 5 Duong 1 m 0. 6 2 0. -8 2 1. 13 3 1. 24 4 1. 7 5 1. -4 5 2. - 12 5 3. III. ĐÁNH GIÁ CUỐI BÀI (5phút) 1. Nội dung đã học - Tính tổng các phần tử trong mảng thoả mãn một điều kiện. - Đếm số phần tử trong mảng thoả mãn một điều kiện. 2. Câu hỏi, bài tập về nhà - Cho 2 mảng A, B gồm n (n<=250) số nguyên. Hãy viết chương trình xây dựng mảng C[1..n], trong đó C[i] là tổng của 2 phần tử thứ i thuộc mảng A và mảng B. (tức là: C[i] = A[i] + B[i]) - Xem trước vídụ 2 và ví dụ 3/trang 57, 58 sgk..

<span class='text_page_counter'>(45)</span> Ngµy so¹n:16/1/2013. TiÕt 24 KIỂU MẢNG (tiết 3). I. MỤC TIÊU 1. Kiến thức: - Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng. - Củng cố và làm hs hiểu sâu hơn thuật toán sắp xếp đã được học ở lớp 10. 2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản. II. PHƯƠNG TIỆN DẠY HỌC 1. Giáo viên: giáo án, bảng phụ, sgk 2. Học sinh: sgk IV. HOẠT ĐỘNG DẠY HỌC 1. Hoạt động 1: (10 phút) Kiểm tra bài cũ: Gọi 2 Hs lên bảng trình bày bài tập cho về nhà tiết trước. 2. Hoạt động 2:(15 phút) Phân tích bài toán trước khi viết chương trình a. Nội dung: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi. b. Các bước tiến hành: Hoạt động của Giáo viên và Học sinh Nội Dung 1. Nêu bài toán, y/cầu hs xác định In/Output của bài toán. Số nguyên dương N (N250) và dãy TL : A gồm N số nguyên dương, mỗi số In: N (N250), dãy A (A[i]<500). đều không vượt quá 500. Hãy sắp xếp Out: dãy A không giảm 2. Y/cầu hs trình bày lại thuật toán sắp xếp tráo đổi. (Đã học dãy A thành dãy không giảm.: In: N (N250), dãy A (A[i]<500). ở lớp 10) Out: dãy A không giảm 3. Y/cầu cả lớp n/cứu lại t/toán và trả lời các câu hỏi: - Biến j sẽ nhận các giá trị trong phạm vi nào? Tương tự với 2.Thuật toán B1: Nhập N, dãy A ; biến i? B2: jN; - Có nhận xét gì về 2 biến i,j? B3: nếu j<2 thì đưa ra dãy đã được sắp xếp, Trả lời: KT; + 2  j  N, 1  i  j-1 B4: jj-1; i1; + i phụ thuộc theo j B5: Nếu i>j thì Qlại B3; (với mỗi giá trị j, i lần lượt nhận các giá trị từ 1 đến j-1) B6: Nếu A[i]>A[i+1] thì tráo đổi A[i] và A[i+1]; B7: Quay lại B5. 3. Hoạt động 3:(15phút)Vận dụng kiểu dữ liệu mảng một chiều để mô tả t/toán trên trong Pascal Hđ của GV Nd ghi bảng 1. Y/cầu hs xác định những nội dung chính cần viết trong chtrình. HD: +Khai báo biến +Tạo mảng A +Sắp xếp mảng A tăng dần +Đưa mảng A đã sắp xếp ra màn hình * Chốt lại các nội dung chính cần viết. 2. Yêu cầu từng hs lên bảng viết từng nội dung của chương trình. Var A: array[1..300] of integer; - Khai báo những biến gì? N, i, j :integer; -TL: mảng A, biến đơn N, i, j Begin - Tạo mảng là làm những gì? {tao mang} -TL: Nhập sl p/tử của mảng và nhập giá trị cho các p/tử trong Write(‘Nhap n = ’); readln(n); mảng For i:=1 To n Do begin write(‘phan tu thu ’,i,’ =’);.

<span class='text_page_counter'>(46)</span> readln(A[i]); end; - Sắp xếp mảng {sap xep mang} Hỏi: Làm thế nào để tráo đổi giá trị 2 biến cho nhau (a[i] và For j := N Downto 1 Do a[i+1])? for i:=1 to j - 1 do Tl: sử dụng thêm biến trung gian t: If a[i] > a[i+1] then t:=a[i]; begin a[i]:=a[i+1]; t:=a[i]; a[i]:=a[i+1]; a[i+1] :=t a[i+1] :=t; - Đưa mảng ra màn hình end; {dua ra mang da sap xep} Writeln (‘Mang da duoc sap xep ’); For i :=1 To N Do write (a[i]:4); Readln End. IV. ĐÁNH GIÁ CUỐI BÀI (5phút) 1. Nội dung đã học Cách phân tích và viết chương trình cho một bài toán. 2. Câu hỏi, bài tập về nhà Xem lại các bài tập về mảng đã giải ở tiết 20 Xem trước bài: Bài thực hành số 3 Bài tập: Cho mảng A gồm N phần tử. hãy viết chương trình tạo ra mảng B cũng gồm N phần tử, trong đó B[i] bằng tổng của i phần tử đầu tiên trong mảng A. (B[i]= A[1]+A[2]+ .. +A[i]).

<span class='text_page_counter'>(47)</span> Ngµy so¹n:20/1/2013. TiÕt 25. BÀI TẬP I. MỤC TIÊU 1. Kiến thức: - Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng. - Củng cố và làm hs hiểu sâu hơn thuật toán sắp xếp đã được học ở lớp 10. 2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản. II. PHƯƠNG TIỆN DẠY HỌC 1. Giáo viên: giáo án, bảng phụ, sgk 2. Học sinh: sgk IV. HOẠT ĐỘNG DẠY HỌC 2. Hoạt động 1: (10 phút) Kiểm tra bài cũ: Gọi 2 Hs lên bảng trình bày bài tập cho về nhà tiết trước. 2. Hoạt động 2:(15 phút) Phân tích bài toán trước khi viết chương trình a. Nội dung: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi. b. Các bước tiến hành: Hoạt động của Giáo viên và Học sinh Nội Dung 1. Nêu bài toán, y/cầu hs xác định In/Output của bài toán. Số nguyên dương N (N250) và dãy TL : A gồm N số nguyên dương, mỗi số In: N (N250), dãy A (A[i]<500). đều không vượt quá 500. Hãy sắp xếp Out: dãy A không giảm 2. Y/cầu hs trình bày lại thuật toán sắp xếp tráo đổi. (Đã học dãy A thành dãy không giảm.: In: N (N250), dãy A (A[i]<500). ở lớp 10) Out: dãy A không giảm 3. Y/cầu cả lớp n/cứu lại t/toán và trả lời các câu hỏi: - Biến j sẽ nhận các giá trị trong phạm vi nào? Tương tự với 2.Thuật toán B1: Nhập N, dãy A ; biến i? B2: jN; - Có nhận xét gì về 2 biến i,j? B3: nếu j<2 thì đưa ra dãy đã được sắp xếp, Trả lời: KT; + 2  j  N, 1  i  j-1 B4: jj-1; i1; + i phụ thuộc theo j B5: Nếu i>j thì Qlại B3; (với mỗi giá trị j, i lần lượt nhận các giá trị từ 1 đến j-1) B6: Nếu A[i]>A[i+1] thì tráo đổi A[i] và A[i+1]; B7: Quay lại B5. 3. Hoạt động 3:(15phút)Vận dụng kiểu dữ liệu mảng một chiều để mô tả t/toán trên trong Pascal Hđ của GV Nd ghi bảng 1. Y/cầu hs xác định những nội dung chính cần viết trong chtrình. HD: +Khai báo biến +Tạo mảng A +Sắp xếp mảng A tăng dần +Đưa mảng A đã sắp xếp ra màn hình * Chốt lại các nội dung chính cần viết. 2. Yêu cầu từng hs lên bảng viết từng nội dung của chương trình. Var A: array[1..300] of integer; - Khai báo những biến gì? N, i, j :integer; -TL: mảng A, biến đơn N, i, j Begin - Tạo mảng là làm những gì? {tao mang} -TL: Nhập sl p/tử của mảng và nhập giá trị cho các p/tử trong Write(‘Nhap n = ’); readln(n); mảng For i:=1 To n Do begin write(‘phan tu thu ’,i,’ =’); readln(A[i]);.

<span class='text_page_counter'>(48)</span> end; - Sắp xếp mảng {sap xep mang} Hỏi: Làm thế nào để tráo đổi giá trị 2 biến cho nhau (a[i] và For j := N Downto 1 Do a[i+1])? for i:=1 to j - 1 do Tl: sử dụng thêm biến trung gian t: If a[i] > a[i+1] then t:=a[i]; begin a[i]:=a[i+1]; t:=a[i]; a[i]:=a[i+1]; a[i+1] :=t a[i+1] :=t; - Đưa mảng ra màn hình end; {dua ra mang da sap xep} Writeln (‘Mang da duoc sap xep ’); For i :=1 To N Do write (a[i]:4); Readln End. IV. ĐÁNH GIÁ CUỐI BÀI (5phút) 1. Nội dung đã học Cách phân tích và viết chương trình cho một bài toán. 2. Câu hỏi, bài tập về nhà Xem lại các bài tập về mảng đã giải ở tiết 20 Xem trước bài: Bài thực hành số 3 Bài tập: Cho mảng A gồm N phần tử. hãy viết chương trình tạo ra mảng B cũng gồm N phần tử, trong đó B[i] bằng tổng của i phần tử đầu tiên trong mảng A. (B[i]= A[1]+A[2]+ .. +A[i]). Ngµy so¹n:23/1/2013. TiÕt 26 Bµi thùc hµnh sè 3. I. môc tiªu. 1. KiÕn thøc. - Cñng cè l¹i c¸c kiÕn thøc c¬ b¶n vÒ kiÓu d÷ liÖu m¶ng. 2. KÜ n¨ng - N©ng cao kÜ n¨ng sö dông mét sè lÖnh kØeu d÷ liÖu m¶ng mét chiÒu trong lËp tr×nh, cô thÓ: + Khai b¸o kiÓu d÷ liÖu m¶ng mét chiÒu. + NhËp/xuÊt d÷ liÖu cho m¶ng. + Duyệt qua tất cả các phần tử của mảng để xử lí từng phần tử. - BiÕt gi¶i mét sè bµi to¸n c¬ b¶n thêng gÆp: + Tính tổng các phần tử thỏa mãn điều kiện nào đó. + Đếm số các phần tử thỏa mãn điều kiện nào đó. + T×m phÇn tö lín nhÊt, nhá nhÊt. 3. Thái độ - Góp phần rèn luyện tác phong, t duy lập trình: Tự giác, tích cực, chủ độngvà sáng t¹o trong t×m kiÕm kiÕn thøc. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - Phòng máy tính, máy chiếu Projector để minh họa. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. hoạt động dạy – học . 1. Hoạt động 1: Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chơng trình có sẵn. a. Môc tiªu: - Học sinh hiểu đợc chơng trình có sẵn ở câu a, biết đợc kết quả chạy chơng trình này, từ đó tìm ra cách giải quyết câu b. b. Néi dung: a – T×m hiÓu, gâ ch¬ng tr×nh vµo m¸y vµ ch¹y thö:.

<span class='text_page_counter'>(49)</span> Program Sum 1; Uses Crt; Const nmax:=100; Type Myarray = Array[1..nmax] of integer ; Var A:myarray; s, n, i, k:integer; Begin Clrscr; Randomize; Write(‘nhap n=’); readln(n); For i:=1 to n do a[i]:=random(300) – random(300); For i:=1 to n do Write(A[i]:5); Writeln; Write(;nhap k=’); readln(k); s:=0; For i:=1 to n do if a[i] mod k=0 then s:=s+a[i]; Write(‘tong can tinh la’,s); readln; End. b – Thêm các lệnh mới vào chơng trình nhằm sửa đổi chơng trình trong câu a dể chơng trình thực hiện đếm số dơng và số lợng số âm của mảng. Posi, neg:integer; Posi:=0;neg:=0; If a[i] >0 then Posi:=posi+1 Else if a[i] <0 then neg:=neg+1; Write(pãi:4,neg:4); c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. t×m hiÎu ch¬ng t×nh ë c©u a, s¸ch gi¸o khoa, trang 63 vµ ch¹y thö ch¬ng tr×nh. - ChiÕu ch¬ng tr×nh lªn b¶ng . - Hái: Khai b¸o Uses CRT; cã ý nghÜa g×? - Hái: Myarray lµ tªn kiÓu d÷ liÖu hay tªn biÕn? - Hái: Vai trß cña nmax vµ n cã g× kh¸c nhau?. Hoạt động của học sinh. 1. Quan s¸t, chó ý vµ tr¶ lêi. - Khai b¸o th viÖn ch¬ng tr×nh con Crt để sử dụng đợc thủ tục Clrscr; - Tªn kiÓu d÷ liÖu.. - nmax lµ sè phÇn tö tèi ®a cã thÓ chøa cña biÕn m¶ng a.n lµ sè phÇn tö thùc tÕ cña a. - Hỏi: Những dòng lệnh nào dùng để tạo - LÖnh khai b¸o kiÓu vµ khai b¸o biÕn. biÕn mµng a? - Thực hiện chơng trình để học sinh thấy - Quan s¸t ch¬ng tr×nh thùc hiÖn vµ kÕt kÕt qu¶. qu¶ trªn mµn h×nh. Hái: LÖnh g¸n - LÖnh sinh ngÉu nhiªn gi¸ trÞ cho m¶ng a[i]:=random(300) – random(300) cã ý a từ – 299 đến 299. nghÜa g×? - Hái: LÖnh Fori:=1 to n do - In ra mµn h×nh gi¸ trÞ cña tõng phÇn tö Write(A[i]:5);cã ý nghÜa g×? trong m¶ng a. - Hái : LÖnh For – Do cuèi cïng thùc - Céng c¸c phÇn tö chia hÕt cho k. hiÖn nhiÖm vô g×? - hỏi: Lệnh s:=a+a[i]; đợc thựchiện bao - Có số lần đúng bằng số phần tử a[i] nhiªu lÇn? chia hÕt k. - Thực hiện lại chơng trình lần cuối để - Quan s¸t gi¸o viªn thùc hiÖn ch¬ng häc sinh thÊy kÕt qu¶. tr×nh vµ kÕt qu¶ trªn mµn h×nh. 2. Sửa chơng trình câu a để đợc chơng 2. Quan s¸t vµ chó ý theo dâi c¸c c©u hái tr×nh gi¶i quyÕt bµi to¸n ë c©u b..

<span class='text_page_counter'>(50)</span> cña gi¸o viªn: - Quan s¸t c¸c lÖnh vµ suy nghÜ vÞ trÝ cÇn - ChiÕu lªn mµn h×nh c¸c lÖnh cÇn thªm söa trong ch¬ng tr×nh c©u a. vµo ch¬ng t×nh ë c©u a. - Hái: ý nghÜa cña biÕn Posi vµ neg? - Hái: Chøc n¨ng cña lÖnh: - Dùng để lu số lợng đếm đợc. If a[i] >0 then posi:=posi+1 - Đếm số dơng hoặc đếm số âm. else if a[i] <0 then neg:=neg+1; - Yªu cÇu häc sinh thªm vµo vÞ trÝ cÇn thiết để chơng trình đếm đợc số. - ChØ ra vÞ trÝ cÇn thªm vµo trong ch¬ng - Yªu cÇu häc gâ néi dung vµ lu l¹i víi tr×nh. tªn caub.pas. thùc hiÖn ch¬ng tr×nh vµ b¸o - Lu ch¬ng tr×nh. Thùc hiÖn ch¬ng tr×nh c¸o kÕt qu¶. vµ th«ng b¸o kÕt qu¶. 2. Hoạt động 2: rèn luyện kĩ năng lập trình. a. Môc tiªu: - Viết đợc chơng trình hoàn thiện bằng cách sử dụng lệnh và kểi dữ liệu mảng một chiÒu. b. Néi dung: - ViÕt ch¬ng tr×nh t×m phÇn tö cã gi¸ trÞ lín nhÊt cña m¶ng vµ in ra mµn h×nh chØ sè vµ giá trị của phần tử tìm đợc. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì chỉ đa ra phÇn tö cã chØ sè nhá nhÊt. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. l¸y mét vÝ dô thùc tiÔn: Ngêi mï t×m 1. Theo dâi vÞ trÝ cña gi¸o viªn. viªn sái cã kÝch thíc lín nhÊt trong mét dãy các viên sỏi để gợi ý cho học sinh thuËt to¸n t×m gi¸ trÞ lín nhÊt. - Yªu cÇu: Nªu thuËt to¸n t×m phÇn tö cã - So s¸nh lÇn lît tõ tr¸i sang ph¶i, gi÷ l¹i gi¸ trÞ lín nhÊt. chØ sè cña phÇn tö lín nhÊt. 2. T×m hiÓu ch¬ng tr×nh t×m chØ sè vµ gi¸ 2. Quan s¸t ch¬ng tr×nh, suy nghÜ vµ tr¶ trÞ lín nhÊt. lêi. - ChiÕu ch¬ng t×nh vÝ dô, s¸ch gi¸o khoa, trang 64. - Hái: Vai trß cña biÕn j trong ch¬ng - Gi÷ l¹i chØ sè cña phÇn tö cã gi¸ trÞ lín tr×nh? nhÊt. - Hái: NÕu muèn t×m phÇn tö nhá nhÊt, cÇn söa ë chç nµo? - Hái: NÕu muèn t×m phÇn tö lín nhÊt víi chØ sè lín nhÊt ta söa ë chç nµo? 3. §Æt yªu cÇu míi: ViÕt ch¬ng tr×nh ®a ra c¸c chØ sè cña c¸c phÇn tö cã gi¸ trÞ lín nhÊt. - Hái: CÇn gi÷ l¹i ®o¹n ch¬ng tr×nh t×m gi¸ trÞ lín nhÊt kh«ng? - Hái: CÇn thªm lÖnh nµo n÷a? - Hỏi: Vị trí thêm các lệnh đó? - Yªu cÇu: ViÕt ch¬ng tr×nh hoµn thiÖn. - Yªu cÇu häc sinh nhËp d÷ liÖu vµo cña gi¸o viªn vµ b¸o kÕt qu¶. - §¸nh gi¸ kÕt qu¶ cña häc sinh.. - PhÐp so s¸nh a[i] <a[j] - ChuyÓn thø tù duyÖt tõ n-1 vÌ 1. 3. Theo dâi yªu cÇu, suy nghÜ c¸c c©u hái định hớng để viết chơng trình. - Cã. - Lệnh để in ra các chỉ số có giá tị bằng giá trị lớn nhất tìm đợc. - Sau khi tìm đợc giá trị lớn nhất. - So¹n ch¬ng tr×nhvµo m¸y. Thùc hiÖn ch¬ng tr×nh vµ th«ng b¸o kÕt qu¶. - NhËp d÷ liÖu vµo vµ th«ng b¸o cho gi¸o viªn d÷ liÖu ra.. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học. Mét sè thuËt to¸n c¬ b¶n: + Tìm tổng các phần tử thỏa mãn điều kiện nào đó. + Đếm số các phần tử thỏa mãn điều kiện nào đó..

<span class='text_page_counter'>(51)</span> + T×m phÇn tö lín nhÊt, nhá nhÊt. 2. C©u hái vµ b×a tËp vÒ nhµ. - ViÕt ch¬ng tr×nh nhËp mét m¶ng mét chiÒu A[1..20] vµ nhËp mét sè x. §Õm sè lîng sè trong A cã gi¸ trÞ b»ng x. - Xem néi dung cña bµi thùc hµnh sè 4, s¸ch gi¸o khoa, trang 65..

<span class='text_page_counter'>(52)</span> Ngµy so¹n:26/1/2013. TiÕt 27. Bµi tËp I. môc tiªu 1. KiÕn thøc. - Cñng cè l¹i c¸c kiÕn thøc c¬ b¶n khi lËp tr×nh víi kiÓu d÷ liÖu m¶ng. - Làm quen với thuật toán sắp xếp đơn giản. 2. KÜ n¨ng. - Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuất toán bằng ch¬ng tr×nh sö dông d÷ liÖu kiÓu m¶ng. - Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chơng tr×nh ch¹y nhanh h¬n. 3. Thái độ. - Tự giác, chủ động trong khi thực hành. II. §å dïng d¹y häc 1. ChuÈn bÞ cña gi¸o viªn - Phòng máy vi tính, máy chiếu Projedtor để hớng dẫn. 2. ChuÈn bÞ cña häc sinh. - Sách giáo khoa, chơng trình đã đợc viết sẵn. III. Hoạt động dạy – học . 1. Hoạt động 1: Tìm hiểu chơng trình diễn đạt của thuật toán sắp xếp. a. Môc tiªu: - Học sinh hiểu chơng trình và thuật toán sắp xếp đơn giản. b. Néi dung: Bµi to¸n 1: ViÕt ch¬ng tr×nh s¾p xÕp c¸c phÇn tö cña m¶ng theo thø tù kh«ng gi¶m. - Ch¬ng tr×nh minhhäa: Uses CRT; Const nmax=250; type arrint=array[1..nmax] of integer; Var n, i, j, y:integer; a:arrint; Begin clrscr; Randomize; Write(‘nhap n=’); Readln(n); For i:=1 to n do a[i]:=random(300) – random (300); For i:=1 to n do write(a[i]:5); Writeln; For i:=n dowto 2 do For i:=1 to i – 1 do If a[i] >a[i+1] then Begin t:=a[i]; a[i]:=a[i+1]; a[i+1]:=t; End; Writeln(‘day so sau khi sap xep’); For i:=1 to n do write(a[i]:7); Writeln; readln; End. - Yªu cÇu: Soan ch¬ng tr×nh vµo m¸y, ch¹y thö víi c¸c gi¸ trÞ khac nhau cña n. Rót ra nhËn xÐt vÒ thêi gian thùc hiÖn cña hc¬ng tr×nh. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Gîi ý cho häc sinh thuËt to¸n s¾p xÕp t¨ng dÇn. - LÊy mét vÝ dô thùc tiÔn: Ngêi mï s¾p. Hoạt động của học sinh. 1. CHó ý theo dâi nh÷ng dÉn d¾t cña gi¸o viên để trả lời câu hỏi..

<span class='text_page_counter'>(53)</span> xÕp mét d·y c¸c viªn bi theo kÝch thíc kh«ng gi¶m. - Yêu cầu: Vạch ra các bớc để sắp xếp c¸c phÇn tö cña mét m¶ng kh«ng gi¶m.. 2. T×m hiÓu ch¬ng tr×nh vÝ dô, s¸ch gi¸o khoa, trang 65. - ChiÕu ch¬ng tr×nh vÝ dô lªn b¶ng. - Hái: Vai trß cña biÕn i, j trong ch¬ng tr×nh? Mçi vßng lÆp For trong ®o¹n ch¬ng tr×nh s¾p xÕp cã ý nghÜa g×? - Hái: Ba lÖnh tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg; cã ý nghÜa g×? - Thực hiện chơng trình, nhập dữ liệu để häc sinh thÊy kÕt qu¶ ch¬ng tr×nh. - Hái: Ch¬ng tr×nh lµm c«ng vÞªc g×? 3. Sửa chơng trình để giẩi quyết bài toán ë c©u b. - §Æt yªu cÇu míi: Khai b¸o thªm biÕn nguyªn Dem vµ bæ sung vµo ch¬ng tr×nh đoạn lệnh cần thiết để biến Dem tính số lần thực hiện tráo đổi trong thuật toán. In kết quả tìm đợc ra màn hình. - Hỏi: Đoạn chơng trình nào dùng để thực hiện tráo đổi giá trị? - Yêu cầu học sinh viết lệnh để đếm số lần tráo đổi. - Hỏi: Lệnh này đợc viết ở vị nào trong ch¬ng tr×nh? - Yªu cÇu häc sinh so¹n ch¬ng tr×nh? - Yªu cÇu häc sinh nhËp d÷ liÖu vµo cña gi¸o viªn vµ th«ng b¸o kÕt qu¶. - §¸nh gi¸ kÕt qu¶ cña häc sinh.. - LÇn lît lÊy tõng phÇn tö tõ tr¸i qua ph¶i. - Cø mçi phÇn tö ta ®em so s¸nh lÇn lît với các phần tử đứng bên phải của nó. - Nếu nhỏ hơn thì đổi chỗ. 2. Quan s¸t ch¬ng tr×nh, suy nghÜ c©u hái vµ tr¶ lêi. - BiÕn i, j dïng lµm chØ sè. - Mçi vßng lÆp For øng víi mçi phÐp duyÖt lÇn lît. - Dùng để đổi giá trị của hai phần tử a[i] víi a[i+1]. - Quan s¸t gi¸o viªn thùc hiÖn ch¬ng tr×nh. - Ch¬ng tr×nh s¾p xÕp d·y sè theo thø tù kh«ng gi¶m. 3. Quan sát yêu cầu mới, chú ý định hớng gi¶i quyÕt cña gi¸o viªn.. tg:=a[i];a[i]:=a[i+1];a[i+1]:=tg; - Dem := Dem+1; - Ngay sau đoạn tráo đổi. - So¹n ch¬ng tr×nh vµo m¸y, thùc hiÖn ch¬ng tr×nh vµ th«ng b¸o kÕt qu¶. - NhËp d÷ liÖu theo yªu cÇu cña gi¸o viªn, thùc hiÖn ch¬ng tr×nh vµ th«ng b¸o kÕt qu¶ sau khi thùc hiÖn.. 2. Hoạt động 2: Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bào toán sao cho ch¬ng tr×nh ch¹y nhanh h¬n. a. Môc tiªu: - Học sinh biết sử dụng kiểu mảng để lập trình giải một bài toán. Biết nhận xét, phân tích để đề xuất phơng pháp giải hay. b. Néi dung: Cho mảng A gồm n phần tử. Viết chơng trình tạo mảng B[1..n], trong đó B[i] là tổng gi¸ trÞ cña i phÇn tö ®Çu tiªn cña m¶ng A. Ch¬ng tr×nh minh häa: Const nmax=100; Type myarray=array[1..nmax] ß integer; Var n, i, j:integer; a,b:arrint; Begin Randomize; Write(‘nhap n=’); Readln(n); For i:=1 to n do a[i]:=random(300) – random(300); For i:=1 to n do write(a[i]:5); Writeln; For i:=1 to n do.

<span class='text_page_counter'>(54)</span> Begin B[i]:=0; For j:=1 to i do B[i]:=B[i]+A[j]; End; For i:=1 to n do write(B[i]5); Readln; End. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Xác định bài toán. - Chiếu đề bài lên bảng. - Yêu cầu: Xác định dữ liệu vào, dữ liệu ra? - Gợi ý để học sinh đề xuất thuật toán th«. 2. giíi thiÖu ch¬ng tr×nh cha c¶i tiÕn. - Chiếu chơng trình diễn đạt thuật toán. - Thực hiện chơng trình để học sinh biết thêi gian thùc hiÖn ch¬ng tr×nh vµ kÕt qu¶ cña ch¬ng tr×nh. - Hái: Trong ch¬ng tr×nh ph¶i thùc hiªn bao nhiªu phÐp to¸n céng? - Hỏi: Có cách nào để cải tiến? - Lệnh này đợc thay lệnh nào trong chơng trình? Viết ở vị trí nào? 3. Yªu cÇu: ViÕt ch¬ng tr×nh hoµn thiÖn.. 4. TiÓu kÕt: Cïng mét bµi to¸n, cã nhiÒu c¸ch gi¶i quyÕt kh¸c nhau. Ngêi lËp tr×nh cÇn chän c¸ch sao cho m¸y thùc hiÖn nhanh nhÊt.. Hoạt động của học sinh. 1. Quan sát đề bài và trả lời câu hỏi. - Vµo: M¶ng A gåm n phÇn tö. - Ra: M¶ng B gåm n phÇn tö. - T¹i vÞ trÝ i ta tÝnh tæng gi¸ trÞ c¸c phÇn tử từ 1 đến i. 2. Quan s¸t ch¬ng tr×nh trªn b¶ng. - Quan s¸t gi¸o viªn thùc hiÖn, nhËn xÐt vÒ thêi gian thùc hiÖn ch¬ng tr×nh. - Ph¶i thùc hiÖn n(n+1)/2 phÐp céng. - §Ó tÝnh bíc thø i, ta sö dông kÕt qu¶ đã tính ở bớc thứ i – 1 . B[i]:=B[i-1]+A[i]; - Thay ®o¹n lÖnh For j:=1 to i do B[i]:=B[i]+A[j]; 3. So¹n ch¬ng tr×nh vµo m¸y, thùc hiÖn ch¬ng tr×nh vµ th«ng b¸o kÕt qu¶. - NhËn xÐt vÒ thêi gian thùc hiÖn cña ch¬ng tr×nh nµy so víi ch¬ng tr×nh tríc khi c¶i tiÕn.. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học. - Thuật toán sắp xếp đơn giản. - Mét bµi to¸n cã thÓ cã nhiÒu c¸ch viÕt thµnh mét ch¬ng tr×nh. CÇn chän c¸ch cã sè phÐp tÝnh Ýt nhÊt. 2. C©u hái vµ bµi tËp vÒ nhµ. - Xem lại tất cả các kiến thức đã học, bao gồm: Lệnh cơ bản, lệnh điều khiển, kiểu dữ liÖu c¬ b¶n, kiÓu d÷ liÖu cã cÊu tróc. - TiÕt sau kiÓm tra thùc hµnh, thêi gian 45 phót.. Ngµy so¹n:27/1/2013. TiÕt 28 BÀI THỰC HÀNH SỐ 4 (tiết 1). I. Mục tiêu 1. Kiến thức - Củng cố kiến thức về dữ liệu kiểu mảng. - Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi..

<span class='text_page_counter'>(55)</span> 2. Kĩ năng - Biết chỉnh sữa lỗi trong chương trình. - Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh. 3. Thái độ - Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình. II.Chuẩn bị - Gv:Bảng phụ viết sẵn chương trình, phòng máy, project. - Hs: Sgk, CT đã được viết sẵn. III. Tiến hành dạy học 1) Ổn định tổ chức: Kiểm tra sĩ số lớp. 2) Kiểm tra bài cũ: Thông qua ? 3) Giảng bài mới: Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành..

<span class='text_page_counter'>(56)</span> Hoạt động của Giáo viên và Học sinh Hỏi 1: Nêu cách khai báo kiểu mảng 1 chiều.. Nội dung thực hành Tl: có 2 cách + gián tiếp: Hỏi 2: Nhập từ bàn phím xây dựng mảng một chiều A + trực tiếp: có 6 phần tử. TL: For i:= 1 to 6 do Begin Writeln(‘Nhap phan tu thu ’,i,’=’); Readln(A[i]); End; 2. Hoạt động 2: Xác định bài toán và tìm hiểu chương trình. Hoạt động của Giáo viên và Học sinh Nội dung 1. Chiếu đề bài lên bảng. Đề: Sắp xếp dãy số nguyên bằng thuật toán tráo 2. Xác định bài toán đổi với các giá trị khác nhau của n số. Y/cầu hs xác định dữ liệu vào/ra của bài toán? Trả lời : - Vào: mảng A - Ra: mảng A đã sắp xếp - Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)? - HS Nhắc lại thuật toán. - Chiếu thuật toán đã được liệt kê các bước. 4. Tìm hiểu chương trình - Vai trò của biến i, j trong CT? CT( SGK/65) - TL: Dùng làm biến chỉ số. - Đoạn lệnh nào thực hiện tráo đổi giá trị 2 phần tử liền kề của mảng? - TL:3 lệnh: tg := a[i]; a[i]:= a[i+1]; a[i+1]:= tg; - Treo bảng CT chuẩn bị sẵn. Giải thích một số lệnh của CT. 3. Hoạt động 3: Chạy CT câu a. Hoạt động của Giáo viên và Học sinh Nội dung - Yêu cầu hs tự nhập dữ liệu với CT có sẵn. - Chạy CT, nhập dữ liệu, xm kết quả. - Giúp hs phát hiện và sữa lỗi. - Chỉnh sữa CT thông qua các thông báo lỗi. - Thuật toán trên tiến hành đưa số lớn thứ j về đến vị trí - Chú ý hiểu rõ thêm về CT. j sau mỗi vòng lặp: For i:= 1 to j-1 do 4. Hoạt động 4: Xác định bài toán câu b. Hoạt động của Giáo viên và Học sinh Nội dung 1. Xác định bài toán. Đề: Khai báo biến đếm nguyên Dem và bổ sung - Y/cầu hs xác I/O bài toán? vào chương trình những câu lệnh cần thiết để - Biến Dem được tăng lên khi nào? biến Dem tính số lần tráo đổi trong chương trình. TL: Khi A[i] > A[i+1] Xác định bài toán: (tức là biểu thức đk trong CL If đúng) + I: mảng a; - Cần đưa câu lệnh tăng Dem vào chỗ nào trong CT +O: mảng a đã sắp xếp, số lần tráo đổi (Dem); trên? TL: Trong thân CL If: trước hoặc sau 3 lệnh tráo đổi. - Câu lệnh khởi tạo Dem:= 0 được đặt vào vị trí nào trong CT? TL: Chọn một trong hai phương án 3, 4. + Trước CL đầu tiên: For j:= N down to 2 do + Trước CL duyệt: For i:= 1 to j-1 do + Trước 3 CL tráo đổi.

<span class='text_page_counter'>(57)</span> + Sau 3 CL tráo đổi - Sau CL cuối CT nên đưa CL nào vào để hiển thị giá trị biến Dem ra màn hình. 4. Hoạt động 5: Sữa CT câu a để giải bài toán câu b. Hoạt động của Giáo viên và Học sinh Nội dung - Yêu cầu hs sữa lại CT theo gợi ý đã nêu. CT(Phụ lục) - Hướng dẫn hs chỉnh sửa và chạy CT. - Thêm các CL như đã hướng dẫn vào CT. - Đánh giá kết quả của hs. - Chạy CT. 4) Củng cố : Thuật toán sắp xếp bằng tráo đổi. Đếm số lần tráo đổi. 5) Bài tập về nhà - Tìm thêm các thuật toán sắp xếp khác tối ưu hơn. - Cho mảng A và mảng B (là mảng A đã được sắp xếp). Hãy in ra chỉ số của các phần tử mảng A theo mảng B.. Ngµy so¹n:1/2/2013. TiÕt 29. BÀI THỰC HÀNH SỐ 4 (tiết 2). I. Môc tiªu: 1. KiÕn thøc: - Cñng cè l¹i kiÕn thøc c¬ b¶n khi lËp tr×nh víi kiÓu d÷ liÖu m¶ng. - Lµm quen víi mét sè bµi to¸n liªn quan 2. KÜ n¨ng: - Rèn luyện kỹ năng sử dụng kiểu dữ liệu có cấu trúc, kỹ năng diễn đạt thuật toán b»ng ch¬ng tr×nh sö dông d÷ liÖu kiÓu m¶ng. 3. Thái độ: - Tự giác, tích cực, chủ động và sáng tạo trong tìm kiến thức. II. §å dïng d¹y häc 1. ChuÈn bÞ cña GV: Phòng máy vi tính đợc cài đầy đủ Pascal, máy chiếu để hớng dẫn 2. ChuÈn bÞ cña HS: SGK, sách bài tập và vở bài tập đã viết ở nhà III. Hoạt động dạy học Hoạt động 1: Rèn luyện kỹ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho ch¬ng tr×nh ch¹y nhanh h¬n.. 1. Môc tiªu: Học sinh biết sử dụng kiểu mảng để lập trình giải một bài toán. Biết nhận xét phân tích để đề xuất phơng án giải này. 2. Néi dung: Cho mảng A gồm n phần tử. Viết chơng trình tạo mảng B[1..n], trong đó B[i] là tổng giá trÞ cña i phÇn tö ®Çu tiªn cña m¶ng A. Ch¬ng tr×nh minh ho¹ Program Sum1; Uses crt; Var A, B:Array[1..100] of integer; i,j,n:integer; Begin Clrscr; Randomize; Write(‘nhap n=’); Readln(n); for i:=1 to n do a[i]:=random(300)-random(300); For i:=1 to n do write(a[i]:5); writeln; For i:=n to n do Begin.

<span class='text_page_counter'>(58)</span> B[i]:=0; For J:=1 to i do B[i] : =B[i] + A[i]; end; For i:=1 to n do write(B[i]:7); Writeln; Readln; End. 3. C¸c bíc tiÕn hµnh:. Hoạt động của GV 1. Xác định bài toán Yêu cầu: Xác định dữ liệu vµo, d÷ liÖu ra? Gợi ý để học sinh viết thuËt to¸n. 2. Giíi thiÖu ch¬ng tr×nh cha c¶i tiÕn ChiÕu ch¬ng tr×nh vÝ dô lªn b¶ng Thực hiện chơng trình để häc sinh biÕt thêi gian thùc hiÖn ch¬ng tr×nh vµ kÕt qu¶ cña ch¬ng tr×nh. Hái: Trong ch¬ng tr×nh ph¶i thùc hiÖn bao nhiªu phÐp céng? Hỏi: Có bao nhiêu để cải tiÕn Lệnh này đợc thay bằng lÖnh nµo trong ch¬ng tr×nh? viÕt ë vÞ trÝ nµo. KÕt luËn: Cïng mét bµi to¸n, cã thÓ cã nhiÒu c¸ch gi¶i quyÕt kh¸c nhau. Ngêi lËp tr×nh cÇn chän c¸ch sao cho m¸y thùc hiÖn nhanh nhÊt. IV. Cñng cè Xem lại tất cả các kiển thức đã học. Hoạt động của HS 1. Quan s¸t bµi vµ tr¶ lêi c©u hái. - Vµo: m¶ng A gåm n phÇn tö - Ra: m¶ng B gåm n phÇn tö 2. Quan s¸t ch¬ng tr×nh, suy nghÜ c©u hái vµ tr¶ lêi. - Quan s¸t gi¸o viªn thùc hiÖn, nhËn xÐt vÒ thêi gian thùc hiªn ch¬ng tr×nh - Ph¶i thùc hiÖn n(n+1)/2 phÐp céng - Để tính bớc thứ i, ta sử dụng kết quả đã tính ở bíc thø i-1 B[i] : =B[i-1] + A[i]; - Thay ®o¹n lÖnh: For J:=1 to i do B[i] : =B[i] + A[i]; So¹n ch¬ng tr×nh vµo m¸y, thùc hiÖn ch¬ng tr×nh vµ th«ng b¸o kÕt qu¶. NhËn xÐt.

<span class='text_page_counter'>(59)</span> Ngµy so¹n:12/2/2013. TiÕt 30. KiÓu d÷ liÖu x©u(tiÕt 1) I. Môc tiªu. 1. KiÕn thøc. - Biết đợc một kiểu dữ liệu mới, biết đợc khái niệm kiểu xâu. - Phân biệt đợc sự giống và khác giữa kiểu mảng kí tự với xâu kí tự. - Biết đợc cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng kí tự của xâu. - Biết các phép toán liên qua đến xâu. 2. KÜ n¨ng. - Khai báo đợc biến kiểu xâu trong ngôn ngữ lập trình Pascal. Sử dụng biến xâu và các phép toán trên xâu để giải quyết một bài toán đơn giản. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ. 2. ChuÈn bÞ cña häc sinh - S¸ch gi¸o khoa. III. Hoạt động dạy – học . 1. Hoạt động 1: Tìm hiểu về xâu và cách sử dụng. a. Môc tiªu: - Học sinh biết đợc ý nghĩa của xâu và một số khái niệm của xâu. Biết cách khai báo biến xâu, nhập xuất dữ liệu cho biến xâu và tham chiếu đến từng kí tự trong xâu. b. Néi dung: - Xâu kí tự là dãy các 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 các kí tự trong xâu đợc gọi là độ dài xâu. Xâu có độ dài bằng không là xâu rçng. - Khai báo biến: VAR tên_biến : STRING[độ dài lớn nhất của xâu]; - Tham chiếu đến từng kí tự trong xâu: tên_biến[chỉ_số] c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. T×m hiÓu ý nghÜa cña x©u kÝ tù. - Chiếu đề bài của bài toán đặt vấn đề: ViÕt ch¬ng tr×nh nhËp hä tªn cña 30 häc sinh trong líp. - Hái: ta sÏ chän kiÓu d÷ liÖu nh thÕ nµo? Khai b¸o biÕn nh thÕ nµo? - Yêu cầu học sinh: Viết đoạn lệnh để nhËp vµ xuÊt d÷ liÖu cho tõng phÇn tö. - Hái: Cã nh÷ng khã kh¨n g× gÆp ph¶i? - DÉn d¾t: CÇn cã mét kiÓu d÷ liÖu míi cho phÐp ta nhËp/ xuÊt d÷ liÖu cho x©u b»ng mét lÖnh. 2. T×m hiÓu vÒ kiÓu x©u. - ChiÕu lªn b¶ng c¸ch khia b¸o biÕn x©u trong ng«n ng÷ lËp tr×nh Pascal. - Hái: ý nghÜa cña tõ String, [n] - Hái: Khi khai b¸o kh«ng cã[n] th× sè lîng kÝ tù tèi ®a lµ bao nhiªu? - Yªu cÇu häc sinh cho vÝ dô mét x©u kÝ tù - Hái: X©u cã bao nhiªu kÝ tù? - Diễn giải: 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 ®-. Hoạt động của học sinh. 1. Quan s¸t, suy nh\ghÜ vµ tr¶ lêi.. - KiÓu m¶ng mét chiÒu gåm 30 kÝ tù. - Khai báo một biến mảng A để lu họ tên cña mét häc sinh. Readln(A[1]0; Readln (A[2]) Readln(A[3]0; Readln (A[4]); ........ - Chơng trình đợc viết dài dòng. Khi nhËp d÷ liÖu, ph¶i thùc hiÖn gâ nhiÒu phÝm.. 2. Quan s¸t cÊu tróc khai b¸o vµ tham kh¶o s¸ch gi¸o khoa. - String lµ tªn kiÓu x©u. - [n] là giá trị quy định số lợng kí tự tối ®a mµ biÕn x©u cã thÓ chøa. - Sè kÝ tù tèi ®a lµ 255. - VÝ dô: ‘HA NOI’ - X©u cã 6 kÝ tù, dÊu c¸ch lµ mét kÝ tù..

<span class='text_page_counter'>(60)</span> ợc gọi là độ dài của xâu. - Hỏi: Xâu chỉ gồm một kí tự trống đợc viÕt nh thÕ nµo? Sè lîng kÝ tù bao nhiªu? - Hỏi: Xâu rỗng đợc viết nh thế nào? Số lîng kÝ tù bao nhiªu? 3. NhËp/xuÊt d÷ liÖu cho biÕn x©u trong ng«n ng÷ Pascal. - Giíi thiÖu cÊu tróc chung cña thñ tôc nhËp/xuÊt d÷ liÖu. - Yªu cÇu häc sinh t×m vÝ dô cô thÓ. - Hái: Khi viÕt lÖnh nhËp/xuÊt d÷ liÖu cho biÕn x©u, cã g× kh¸c so víi biÕn m¶ng c¸c kÝ tù. - Dẫn dắt: Ta có thể sử dụng lệnh gán để nhËp gi¸ trÞ cho biÕn x©u. CÊu tróc chung: Tªn_biÕn_x©u:=h»ng_x©u; - Yªu cÇu häc sinh t×m mét vÝ dô cô thÓ. 4. Tham chiếu đến từng kí tự của xâu. - Giíi thiÖu cÊu tróc chung. - Hái: Cã g× gièng vµ kh¸c nhau so víi cách tham chiếu đến từng phần tử của m¶ng. - Yªu cÇu häc sinh t×m mét vÝ dô. 5. KiÓm tra kiÕn thøc. - ChiÕu néi dung bµi tËp kiÓm tra kiÕn thøc: Var st:string[1]; c:char; Begin c:=st[1]; {1} c:=st; {2} End. - Hái: Trong hai lÖnh {1} vµ {2}, Lệnh nào đúng?. - KÝ hiÖu cña x©u gåm mét kÝ tù trèng lµ ‘ ’. Xâu nà có độ dài là 1. - KÝ hiÖu cña x©u rçng lµ ‘ ’. X©u nµy có độ dài là 0. 3. Quan sát bảng để trả lời.. - VÝ dô: Readln(ho ten); - VÝ dô: Write(‘ho ten’,hoten); - ViÕt mét lÖnh nhËp nguyªn cho c¶ x©u. ViÕt lÖnh gän h¬n, CH¬ng tr×nh gän.. - VÝ dô:St:=’HA NOI’; 4. Quan sát và suy nghĩa để trả lời. - Gièng cÊu tróc chung khi tham chiÕu tªn biÕn[chØ sè] - VÝ dô: st[2] 5. Quan sát chơng trình trên bảng và độc lËp suy nghÜ. - Lệnh {1} đúng. - LÖnh {2} sai. kh«ng thÓ g¸n mét x©u cho mét kÝ tù .. 2. Hoạt động 2: Tìm hiểu các phép toán liên quan đến xâu. a. Môc tiªu: - Học sinh biết đợc các phép toán liên quan đến xâu. Diễn đạt đợc các phép toán đó trong ng«n ng÷ lËp tr×nh Pascal. b. Néi dung: - Phép ghép xâu: Kí hiệu là +, đợc sử dụng để ghép nhiều xâu thành một xâu. - Các phép so sánh; =, <>,>, <, <=,>=: Thực hiện việc so sánh hai xâu. Xâu A đợc xem lµ lín h¬n x©u B nÕu nh kÝ tù kh¸c nhau ®Çu tiªn gi÷a chóng kÓ tõ tr¸i sang trong xâu A có chỉ số trong bảng mã ASCII là lớn hơn. Nếu A và B là các xâu có độ dài khác nhau vµ A lµ ®o¹n ®Çu cña B th× A nhá h¬n B. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. gợi nhớ các phép toán đã học. - Hỏi: Hãy nhắc lại các phép toán đã học trªn kiÓu d÷ liÖu chuÈn. 2. T×m hiÓu chøc n¨ng cña mét sè phÐp to¸n trong kiÓu x©u qua mét sè vÝ dô. - ChiÕu ch¬ng tr×nh vÝ dô: Var st:string; Begin st:=’Ha’+ ‘Noi’;. Hoạt động của học sinh. 1. Chó ý theo dâi, suy nghÜ vµ tr¶ lêi. - PhÐp to¸n sè häc. - PhÐp to¸n so s¸nh. - PhÐp to¸n logic. 2. Quan s¸t vÝ dô, suy nghÜ vµ tr¶ lêi. - Quan s¸t ch¬ng tr×nh..

<span class='text_page_counter'>(61)</span> Write()st ; readln; End. - Hái: KÕt qu¶ cña ch¬ng tr×nh in ra mµn h×nh? - Thực hiện chơng trình để học sinh thấy kÕt qu¶. - Yªu cÇu häc sinh t×m mét sè vÝ dô kh¸c. - Hái: Chøc n¨ng cña phÐp céng?. - KÕt qu¶ cho ta: st= ‘HA NOI’ - Quan s¸t kÕt qu¶ ch¬ng tr×nh. - VÝ dô: st:= ‘HA NOI’ + ‘Co ho GUOM’. KÕt qu¶: st= ‘HA NOI co ho GUOM’ - Lµ phÐp to¸n nèi x©u thø hai vµo cuèi x©u thø nhÊt.. - Giíi thiÖu thªm mét sè vÝ dô kh¸c vµ yªu cÇu häc sinh cho biÕt kÕt qu¶. st:= ‘Ha’ + ‘Noi’; st:= ‘Ha ’+ ‘Noi’; st:= ‘Ha Noi’; st:= ‘ ’ + ‘Noi’; st:= ‘Ha Noi’; st:= ‘Ha Noi’ + ‘ViÖt’ + ‘Nam’; st:= ‘ Ha Noi’; - ChiÕu ch¬ng tr×nh vÝ dô vÒ phÐp so st:= ‘Ha Noi ViÖt Nam’; s¸nh x©u. Var bo:boolean; - Quan sát chơng trình để dự tính kết Begin qu¶. bo:= ‘AB’ < ‘AC’; Write(bo); readln; End. - Hái: KÕt qu¶ cña ch¬ng tr×nh in ra mµn h×nh? - KÕt qu¶ lµ: TRUE - Thực hiện chơng trình để học sinh thấy kÕt qu¶. - Quan sát kết quả chơng trình để kiểm - Hái: Cßn cã phÐp so s¸nh nµo n÷a? chøng suy luËn. - ChiÕu c¸c vÝ dô vÒ c¸c phÐp so s¸nh vµ - Cã c¸c phÐp <, <=,>=, <>, = yÕu cÇu häc sinh cho kÕt qu¶ cña c¸c phÐp so sánh đó. ‘AB’ < ‘ABC’ ‘AC’ < ‘ABC’ - KÕt qu¶ True. - Lu ý cho học sinh: Một xâu có độ dài - KÕt qu¶: False. nhỏ hơn có thể lớn hơn (>) xâu có độ dài lín. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học. - Khai báo biến: VAR tên_biến: STRING[độ dài lớn nhất của xâu]; - NhËp xuÊt gi¸ trÞ cho biÕn x©u: read/readln(); write/writeln(); - Tham chiếu đến từng kí tự trong xâu: tên_biến[chỉ số]. - Phép ghép xâu: Kí hiệu là: +, Đợc sử dụng để ghép nhiều xâu thành một xâu. - C¸c phÐp so s¸nh: =, <>, >, <, <=, >=: thùc hiÖn viÖc so s¸nh hai x©u. 2. C©u hái vµ bµi tËp vÒ nhµ. - Xem phÇn kiÕn thøc lÝ thuyÕt cßn l¹i trong b×a, bao gåm c¸c hµm vµ thñ tôc liªn quan đến xâu, sách giáo khoa, trang 70 – 71.. Ngµy so¹n:15/2/2013 I. Môc tiªu. 1. KiÕn thøc.. TiÕt 31 KiÓu d÷ liÖu x©u(tiÕt 2).

<span class='text_page_counter'>(62)</span> - Biết đợc lợi ích của các hàm và thủ tục liên uqna đến xâu trong ngôn ngữ lập trình Pascal. - Nắm đợc cấu trúc chung và chức năng của một số hàm và thủ túc liên quan đến xâu cña ng«n ng÷ lËp tr×nh Pascal. 2. KÜ n¨ng. - Nhận biết và bớc đầu sử dụng đợc một số hàm và thủ tục để giải quyết một số bài tập đơn giản liên quan. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ, sách giáo viên. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. Hoạt động day – học . 1. Hoạt động 1: Tìm hiểu về một số hàm và thủ tục chuẩn liên quan đến xâu trong ngôn ng÷ lËp tr×nh Pascal. a. Môc tiªu: - Học sinh biết đợc một số hàm và thủ tục liên quan đến xâu. Nắm đợc cấu trúc chung, hiểu đợc các tham số của các hàm và thủ tục chuẩn. b. Néi dung: - Thủ tục Delete(st, vt, n) thực hiện việc xóa đi tring xâu st gồm n kí tự, bắt đàu từ vị trÝ vt. - Thñ tôc insert(st1, st2, vt) thùc hiÖn viÖc chÌn x©u st1 vµo x©u st2 b¾t ®Çu tõ vÞ trÝ vt. - Hàm Copy(st, vt, n) cho giá trị là một xâu kí tự đợc lấy trong xâu st, gồm n kí tự liên tiÕp b¾t ®Çu tõ vÞ trÝ vt cña x©u st. - Hµm Length(st) cho gi¸ trÞ lµ sè lîng kÝ tù cña x©u st. - hµm Pos(st1, st2) cho gi¸ trÞ lµ vÞ trÝ xuÊt hiÖn ®Çu tiªn cña x©u st1 trong x©u st2. - Hµm Up Case(ch) cho gi¸ trÞ lµ kÝ tù hoa t¬ng øng víi kÝ tù ch. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. giíi thiÖu cÊu tróc chung cña hµm length(st) lªn b¶ng. - Hái: ý nghÜa cña Length vµ cña st? - ChiÕu ch¬ng tr×nh vÝ dô: Var st:tring; Begin st:= ‘ha Noi’; Write(length(st)); readln; End. - Hái: KÕt qu¶ cña ch¬ng t×nh in ra mµn h×nh? - Thực hiện chơng trình để học sinh thấy kÕt qu¶. - Hái: Chøc n¨ng cña hµm length() lµ g×? - Chiếu đề bài tập ứng dụng: Viết chơng tr×nh nhËp mét x©u, in ra mµn h×nh sè kÝ tù ‘a’ cã trong x©u. 2. Giíi thiÖu cÊu tróc chung cña hµm Upcase(ch). - ChiÕu ch¬ng tr×nh vÝ dô: Var ch:char; Begin ch:= ‘h’; Write(upcase(ch)); readln; End. - Hái: KÕt qu¶ cña ch¬ng tr×nh in ra mµn h×nh?. Hoạt động của học sinh. 1. Quan s¸t cÊu tróc chung. - Length: Là tên hàm, có nghĩa là độ dài, st: lµ mét biÓu thøc x©u kÝ tù. - Quan sát chơng trình để dự tính kết qu¶.. - KÕt qu¶ lµ : 6 - Quan s¸t kÕt qu¶ cña ch¬ng tr×nh. - Hµm cho sè lîng kÝ tù cña x©u st.. 2. Quan s¸t cÊu tróc chung cña hµm Upcase. - Quan sát chơng trình để dự tính kết qu¶.. - KÕt qu¶ lµ : H.

<span class='text_page_counter'>(63)</span> - Thực hiện chơng trình để học sinh thấy kÕt qu¶. - Hái: Chøc n¨ng cña hµm upcase()? - ChiÕu bµi tËp øng dông: ViÕt ch¬ng trình nhập một xâu, in ra màn hình xâu đó d¹ng in hoa.. 3. giíi thiÖu cÊu tróc chung cña hµm Pos(s1, s2). - ChiÕu ch¬ng tr×nh vÝ dô: Var vt:byte; Begin vt:=Pos(‘cd’, ‘abcdefcd’); Write(vt); readln; End. - Hái: KÕt qu¶ cña ch¬ng tr×nh in ra mµn h×nh? - Thực hiện chơng trình để học sinh thấy kÕt qu¶. - Hái: Chøc n¨ng cña hµm Pos?. - Quan s¸t kÕt qu¶ cña ch¬ng tr×nh. - Cho gi¸ trÞ lµ ch÷ in hoa cña ch. Var st:string; Begin readln(st); For i:=1 to length(st) do write(upcase(st[i])); End. 3. Quan s¸t cÊu tróc chung cña hµm Pos và các ví dụ để biết chức năng. - Quan sát chơng trình để dự tính kết quả.. - KÕt qu¶ lµ: 3 - Quan s¸t kÕt qu¶ cña hc¬ng tr×nh.. - Hµm cho gi¸ trÞ lµ mét sè nguyªn lµ vÞ tró cña x©u st2 trong x©u st2. - Thay tham sè cña hµm Pos trong ch¬ng - B»ng kh«ng 0. tr×nh b»ng Pos(‘k’, ‘abc’). Hái kÕt qu¶ cña hµm b»ng bao nhiªu? - ChiÕu bµi tËp øng dông: ViÕt ch¬ng tr×nh nhËp vµo mét x©u st. XÐt xem trong x©u cã dÊu c¸ch hay kh«ng? Var st:tring; Begin readln(st); if pos(‘ ’, st) <>0 then write(‘co’) else write(‘khong’); End. - Hái: Cã c¸ch gi¶i nµo kh¸c? - Có thể sử dụng For để tìm dấu cách trong x©u. 4. Giíi thiÖu cÊu tróc chung cña hµm 4. Quan s¸t cÊu tróc chung cña hµm copy(st, vt, n). coppy và ví dụ để biết chức năng. - ChiÕu ch¬ng tr×nh vÝ dô: - Quan sát chơng trình để dự tính kết Var st:string; qu¶. Begin st:=copy(‘bai tap’, 3, 4); Write(st); readln; End. - Hái: kÕt qu¶ ch¬ng tr×nh in ra mµn - KÕt qu¶ lµ: ‘i ta’ h×nh? - thực hiện chơng trình để học sinh thấy - Quan s¸t kÕt qu¶ cña ch¬ng tr×nh. kÕt qu¶. - Hái: Chøc n¨ng cña hµm copy? - Hàm cho giá trị là một xâu kí tự đợc lÊy trong x©u st, gåm n kÝ tù b¾t ®Çu t¹i vÞ - Thay c¸c tham sè cña hµm copy trong trÝ vt. ch¬ng tr×nh vÝ dô trªn nh sau vµ hái kÕt qu¶ in ra mµn h×nh: Copy(‘abc,1, 5) Cho gi¸ trÞ lµ: ‘abc’ Copy(‘abc,5, 2) Cho gi¸ trÞ lµ x©u rçng Copy(‘abc,1, 0) Cho gi¸ trÞ lµ x©u rçng - Thực hiện chơng trình để học sinh thấy - Quan sát kết quả của chơng trình để.

<span class='text_page_counter'>(64)</span> kÕt qu¶. kiÓm nghiÖm suy luËn. 5. Giíi thiÖu cÊu tróc chung cña thñ tôc 5. Quan s¸t cÊu tróc chung cña thñ tôc delete(st, vt, n); delete vµ c¸c vÝ dô. - ChiÕu ch¬ng tr×nh vÝ dô: - Quan sát chơng trình để dự tính kết Var st:string; qu¶. Begin st:= ‘Ha Noi’; delete(st,3,2); Write(st); readln; End. - Hái: KÕt qu¶ cña ch¬ng tr×nh in ra st=’ Hai’ mµn h×nh? - Thực hiện chơng trình để học sinh thấy - Quan s¸t kÕt qu¶ cña hc¬ng tr×nh. kÕt qu¶. - Hái: Chøc n¨ng cña thñ tôc delete(); - Thñ tôc thùc hiÖn viÖc xãa ®i trong biÕn x©u st gåm n kÝ tù, b¾t ®Çu tõ vÞ trÝ vt. - Thay lÖnh g¸n st:= ‘Ha Noi’; vµ thñ tôc xãa bëi c¸c lÖnh sau vµ hái kÕt qu¶ in ra mµn h×nh. st:=’ abc’; Delete(st,1,5); st:= ‘’; x©u rçng. st:=’ abc’; Delete(st,5,2); st:= ‘abc’; st:=’ abc’; Delete(st,1,0); st:= ‘abc’; - ChiÕu bµi tËp vÝ dô: ViÕt ch¬ng tr×nh nhËp mét x©u vµ xãa ®i c¸c dÊu c¸ch ë ®Çu x©u. Var st:string; Begin readln(st); While st[1]= ‘ ’ do delete(st, 1, 1); Writeln(st); readln; End. 6. Giíi thiÖu cÊu tróc chung cña thñ tôc 6. Quan s¸t cÊu tróc chung cña thñ tôc Insert(st1, st2, vt); Insert. - ChiÕu ch¬ng tr×nh vÝ dô: Var st1, st2:string; - Quan sát chơng trình để dự tính kết begin qu¶. st2:= ‘Ha Noi’; st1:= ‘ ’; insert(st1, st2,3); Write()st; readln; End. - Hái: KÕt qu¶ cña ch¬ng tr×nh in ra mµn - KÕt qu¶ st2=’ Ha Noi’ h×nh? - Thực hiện chơng trình để học sinh thấy - Quan s¸t kÕt qu¶ cña ch¬ng tr×nh. kÕt qu¶. - Hái chøc n¨ng cña thñ tôc insert(); - Thñ tôc thùc hiÖn viÖc chÌn x©u st1 vµo - Thay lÖnh g¸n st2:= ‘Ha Noi’; vµ thñ trong biÕn x©u st2 b¾t ®Çu t¹i vÞ trÝ vt. tôc chÌn bëi c¸c lÖnh nh sau vµ hái kÕt qu¶: st2:= ‘ef’; Insert(‘abc’,st2, 5); st2= ‘efabc’; st2:= ‘ef’; Insert(‘abc’,st2, 0); st2= ‘abcef’; 2. Hoạt động 2: Rèn luyện kĩ năng vận dụng và thủ tục. a. Môc tiªu: - Học sinh biết sử dụng hàm và thủ tục để giải quyết một số bài toán đơn giản. Linh ho¹t trong viÖc lùa chän hµm hoÆc thñ tôc..

<span class='text_page_counter'>(65)</span> b. Néi dung. - Viết chơng trình nhập vào một xâu và xóa đi các dấu thừa có trong xâu., chỉ để lại mét dÊu c¸ch giöa hai tõ. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Xác định bài toán. - Chiếu nội dung để bài lên bảng. - Xác định dữ liệu vào, dữ liệu ra.. Hoạt động của học sinh. 1. Quan sát suy nghĩ để trả lời.. - Vµo: Mét x©u kÝ tù bÊt k×. - Ra: Mét x©u chØ cã 1 kÝ tr¾ng gi÷a hai tõ. - Hái: C¸c nhiÖm vô chÝnh khi gi¶i quyÕt - Xãa mäi dÊu c¸ch thõa ®Çu x©u vµ cuèi bµi to¸n nµy? x©u. - Xãa c¸c dÊu c¸ch thõa Gi÷a hai tõ. - Hµm Pos(), thñ tôc delete(); - Hái: trong bµi nµy, ta cÇn sö dông nh÷ng hµm vµ thñ tôc nµo? 2. Thảo luận theo nhóm để viết chơng 2. Chia líp lµm 3 nhãm. Yªu cÇu viÕt chtr×nh. ¬ng tr×nh lªn b×a trong. - Th«ng b¸o kÕt qu¶. - Thu phiÕu tr¶ lêi. ChiÕu kÕt qu¶ lªn - NhËn xÐt vµ bæ sung nh÷ng thiÕu sãt b¶ng. Gäi häc sinh nhãm kh¸c nhËn xÐt, cña nhãm kh¸c. đánh giá và bổ sung. 3. Quan s¸t vµ ghi nhí. 3. Chiếu chơng trình mẫu giáo viên đã viết để chính xác hóa cho học sinh. IV. §¸nh gi¸ cuèi bµi 1. Những hàm và thủ tục liên quan đến xâu. - Thñ tôc Delete(st, vt,n); - Thñ tôc Insert(st1, st2, vt); - Hµm Copy(st, vt,n) - Hµm Length(st) - Hµm Pos(st1, st2) - Hµm UpCase(ch) 2. C©u hái vµ bµi tËp vÒ nhµ. - Gi¶i bµi tËp sè 10 trang 80. - ViÕt ch¬ng tr×nh nhËp mét x©u. In ra mµn h×nh sç tõ cã trong x©u. - Xem phÇn néi dung cña bµi thùc hµnh sè 5, s¸ch gi¸o khoa, trang 73. - Chuẩn bị một số bài tập để thực hành.. Ngµy so¹n:25/2/2013. TiÕt 32. BÀI TẬP I.MỤC ĐÍCH: 1.Kiến thức: - 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. -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.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái hiện C.PHƯƠNG TIỆN DẠY HỌC: Giáo viên: Giáo án, SGK, máy chiếu. Học sinh: Chuẩn bị bài ở nhà..

<span class='text_page_counter'>(66)</span> III. TIẾN TRÌNH LÊN LỚP: 1.ỔN ĐỊNH LỚP(1’): 2.KIỂM TRA BÀI CŨ(3’): Đưa bài toán lên máy chiếu như sau Hãy cho biết quả của một số hàm và thủ tục chuẩn sau đây: S=’THUC HANH TIN HOC’ S1=’BAI TAP’); Length(s)->? Insert(S1,S,0)->? COPY(S, 30,9)->? a.Đặt vấn đề(1’): Hôm nay chúng ta học bài “bài tập và thực hành5(t1)” để 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(20’) I.Tìm hiểu khai báo biến, các hàm và thủ tục thông (Tìm hiểu cách khai báo biến, sử dụng hàm và thủ qua một số chương trình có sẳn: tục trong chương trình) VD 1 : Ví dụ 1 : Nhập 1 xâu, kiểm tra xem ký tự đầu tiên Var s1,s2 : String ; của xâu S1 có trùng với ký tự cuối cùng của xâu S2 x : Byte ; hay không ? Begin Write('Nhap xau thu 1 : '); Readln(s1) ; Write('Nhap xau thu 2 : '); Readln(s2) ; x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else Write('Khac nhau'); Readln ; End . VD 2 : Var i,k : Byte ; a : String ; Begin Ví dụ 2 : Nhập 1 xâu, viết ra màn hình xâu đó theo Write('Nhap xau : ') ; thứ tự ngược lại của các ký tự trong xâu . Readln(a) ; k := length(a) ; For i := k downto 1 do Write(a[i]) ; Readln ; End .. Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu đó nhưng đã được bỏ tất cả các ký tự là dấu cách .. 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] ; Write(b) ; Readln ;.

<span class='text_page_counter'>(67)</span> Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu gồm các ký tự số của xâu đó .. Gv:Yêu cầu hs kiểm tra với một số bộ dữ liệu được nhập vào từ bàn phím và giải thích từng câu lệnh ở trong 4 ví dụ. Hoạt động 2(17’) (Rèn luyện kỷ năng lập trình) Gv:Đưa câu hỏi lên máy chiếu Hãy cho biết hàm đổi ký tự thường thành chữ in hoa? Hs:Hàm Upcase(ch) Gv: Hãy viết đoạn chương trình đổi chữ thường thành chữ in hoa? Hs:Thực hành trên máy rồi trả lời câu hỏi For i:=1 To Length(S) Do Write(Upcase(S[i]);. Gv:Đưa câu hỏi bài 2 lên máy chiếu Hãy nêu ý tưởng thuật toán đếm trong xâu S có bao nhiêu ký tự là số? Hs:Thực hành trên máy->Trả lời câu hỏi Dem:=0; For i:=1 To length(S) Do If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1; Gv:Quan sát thực hành của hs và đưa ra câu hỏi tiếp theo Ngoài cách viết thuật toán như trê ta còn có cách viết nào khác nửa? Hs:. 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 ; End . II.Vận dụng các câu lệnh, các hàm và thủ tục để viết chương trình: Bài1:Hãy viết chương trình nhập vào một xâu S bất kỳ và đưa ra màn hình xâu in hoa. Var S : String ; i : Byte ; Begin Write('Nhap xau S : ') ; Readln(S) ; For i:=1 To Length(S) Do Write(Upcase(S[i]); Readln; End. Bài2:Hãy viết chương trình nhập vào một xâu bất kỳ (có cả ký tự và ký tự số) và đưa ra màn hình có bao nhiêu ký tự là số? Ví dụ: S=’08bC156546CD’ =>Dem=8 Var S:String; i, Dem:Byte; Begin Write(‘Nhap xau S=’);Readln(S); Dem:=0; For i:=1 To length(S) Do If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1; Write(‘Tong so ky tu la so’,Dem); Readln; End..

<span class='text_page_counter'>(68)</span> Tách dãy từ xâu S thành một xâu con chỉ có số (Ví dụ 4). Sử dụng hàm Length(S1) Gv:Yêu cầu Hs thử sử dụng cách 2 để kiểm chứng IV.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,... V.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 32: Bài tập và Thực hành 5(t2) -Bài tập về nhà: 10,11/79(SGK) - Xem và đọc trả lời các câu hỏi sau: 1.Hãy viết chương trình nhập vào từ bàn phím xâu S và đếm xâu S có bao nhiêu dấu cách? 2.Hãy viết chương trình nhập từ bàn phím xâu S và tách một xâu con từ xâu S bắt đầu từ vị trí 5 và lấy 7 ký tự?. Ngµy so¹n: 27/2/2013. TiÕt 33 Bµi thùc hµnh sè 5. I. Môc tiªu. 1. KiÕn thøc. - 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 là các hàm và thủ tôc liªn quan. - Nắm đợc một số thuật toán cơ bản: Tạo xâu mới, đếmm số lần xuất hiện một kí tự ... 2. KÜ n¨ng - Khai b¸o biÕn kiÓu x©u. - NhËp, xuÊt g¸ 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, chủ động trong thực hành. II. §å dung d¹y häc 1. ChuÈn bÞ cña gi¸o viªn. - Máy chiếu Projestor để hớng dẫn. Tổ chức trong phòng máy để học sinh có đợc kĩ n¨ng c¬ b¶n khi lµm viÖc víi kiÓu x©u. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa, bµi tËp ë nhµ. III. Hoạt động dạy – học 1. Hoạt động 1: Tìm hiểu một chơng trình, đề xuất phơng án cải tiến. a. Môc tiªu: - Hiểu đợc chơng trình, tính đợc kết quả của chơng trình. Biết đề xuất phơng án cải tiÕn. b. Néi dung: - NhËp vµo mét x©u, kiÓm tra xem nã cã ph¶i lµ mét Palidrom hay kh«ng? - Ch¬ng tr×nh Var i, x:Byte; a,p:string; Begin Write(‘nhap vao mot xau’); readln(a); x:=length(a); p:= ‘’; For i:=x downto 1 do p:=p+a[i]; If a=p then write(‘xau la Palidrom’) else write(‘xau khong la Palidrom’); Readln; End. c. C¸c bíc tiÕn hµnh:.

<span class='text_page_counter'>(69)</span> híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Tìm hiểu đề bài. 1. Quan sát, đọc kĩ đề. - giới thiệu nội dung đề bài lên bảng. - Diễn giải: Một xâu đợc gọi là Palidrom nếu ta đọc các kí tự từ phải sang trái sẽ giống khi đọc từ trái sang phải. - Yªu cÇu häc sinh cho hai vÝ dô vÒ x©u Ph¶i: 12321 abccba palidrom vµ mét vÝ dô kh«ng ph¶i lµ Kh«ng ph¶i: abcdea palidrom . 2. t×m hiÓu ch¬ng tr×nh gîi ý. 2. Quan s¸t ch¬ng tr×nh, suy nghÜ ph©n - ChiÕu ch¬ng tr×nh lªn b¶ng. tích để hiểu chơng trình. - Hái: Ch¬ng tr×nh sau ®©y cã chøc n¨ng - KiÓm tra mét x©u cã ph¶i Palidrom hay lµm g×? KÕt qu¶ in ra mµn h×nh nh thÕnµo? kh«ng? - In ra: ‘xau la Palidrom’ - Thực hiện chơng trình để học sinh ‘Xau khong la palidrom’ kiÓm nghiÖm suy luËn cña m×nh. - Quan s¸t gi¸o viªn thùc hiÖn ch¬ng tr×nh, nhËp d÷ liÖu vµ kÕt qu¶ cña ch¬ng 3. C¶i tiÕn ch¬ng tr×nh. tr×nh. - Nªu yªu cÇu míi: ViÕt l¹i ch¬ng tr×nh 3. Chó ý theo dâi yªu cÇu cña gi¸o viªn, mµ kh«ng sö dông biÕn trung gian p. tr¶ lêi mét sè c©u hái dÉn d¾t. - Yªu cÇu: NhËn xÐt vÒ c¸c cÆp ë vÞ trÝ đối xứng nhau trong một xâu palidrom? - C¸c kÝ tù ë vÞ trÝ nµy gièng nhau. - Hỏi: kí tự thứ i đối xứng với kí tự vị trí nµo? - Kí tự thứ i đối xứng với kí t thứ - Hái: CÇn ph¶i so ss¸nh bao nhiªu cÆp length() – i +1 kí tự trong xâu để biết đợc xâu đó ;à - So s¸nh tèi ®alength() div 2. palidrom? - Hỏi: Dùng cấu trúc lặp nào để so sánh? - Yªu cÇu häc sinh viÕt ch¬ng tr×nh hoµn - Cã thÓ dïng For hoÆc While. chØnh. - Thùc hiÖn so¹n th¶o ch¬ng tr×nh vµo - Yªu cÇu häc sinh nhËp d÷ liÖu cho s½n m¸y theo yªu cÇu c¶i tiÕn cña gi¸o viªn. cña gi¸o viªn vµ th«ng b¸o kÕt qu¶. - NhËp d÷ liÖu vµo vµ th«ng b¸o kÕt qu¶. - X¸c nhËn nh÷ng bµi lµm cã kÕt qu¶ đúng. 2. Hoạt động 2: Rèn luyện kĩ năng lập trình. a.Môc tiªu: - Học sinh biết phân tích yêu cầu để viết một chơng trình hoàn chỉnh. b. Néi dung. - ViÕt ch¬ng tr×nh nhËp vµo mét x©u kÝ tù S vµ th«ng b¸o ra mµn h×nh sè lÇn xuÊt hiÖn trong S cña mçi ch÷ c¸i tiÕng Anh(kh«ng ph©n biÖt chø hoa, ch÷ thêng). c. C¸c bíc tiÕn hµnh:.

<span class='text_page_counter'>(70)</span> híng dÉn cña gi¸o viªn. Hoạt động của học sinh. 1. Giới thiệu đề bài. 1. Quan sát đề và xác định những công - Chiếu nội dung đề bài lên bảng. Nêu viÖc cÇn thùc hiÖn. mục đích của bài toán. - Chia líp thµnh 2 nhãm: Nhãm 1: + Nhãm 1: §Æt c¸c c©u hái ph©n tÝch. - hái: D÷ liÖu vµo, d÷ liÖu ra cña bµi + Nhãm 2: Tr¶ lêi c¸c c©u hái ph©n tÝch. to¸n? - Nªu c¸c nhiÖm vô chÝnh cÇn thùc hiÖn khi gi¶i quyÕt bµi to¸n. - Hái: CÊu tróc d÷ liÖu ph¶i sö dông nh thÕ nµo? - Theo dâi nh÷ng c©u hái ph©n tÝch Cña - Ta ph¶i sö dông hµm nµo? nhãm 1 vµ tr¶ lêi c©u hái ph©n tÝch cña Nhãm 2: nhãm 2. - Vµo: Mét x©u S. - Bæ sung vµ söa sai cho c¶ nhãm 1 vµ - Ra: d·y c¸c sè øng víi sù xuÊt hiÖn cña nhãm 2. mçi lo¹i kÝ tù trong x©u. - TT: DuyÖt tõ tr¸i sang ph¶i, thªm mét đơn vị cho kí tự đọc đợc. - CÊu tróc d÷ liÖu: Dem[‘A’..’Z’] - Dïng hµm Upcase(). 2. §éc lËp so¹n ch¬ng tr×nh vµo m¸y. 2. Yêu cầu học sinh độc lập viết chơng trình hoàn chỉnh theo thuật toán đã phát hiÖn ë trªn. - Yªu cÇu häc sinh lËp tr×nh xong sím - T×m test t×m mét sè bé test. - NhËp d÷ liÖu cña gi¸o viªn vµ thùc hiÖn - Yêu cầu học sinh nhập dữ liệu vào theo chơng trình để xem kết quả. test của giáo viên đã chọn và thông báo kết qu¶ sau khi thùc hiÖn ch¬ng tr×nh. - Xác nhận kết quả đúng của học sinh và - Th«ng b¸o kÕt qu¶ cho gi¸o viªn. söa sai cho c¸c em cã kÕt qu¶ sai. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học. - Một số thuật toán đơn giản liên quan đến xâu kí tự: Kiểm tra một xâu đối xứng, tìm tÇn xuÊt hiÖn cña kÝ tù cã trong x©u. 2. C©u hái vµ bµi tËp vÒ nhµ. - Chuẩn bị nọi dung cho tiết lí thuyết tiết theo. đọc trứpc nội dung bài kiểu bản ghi, s¸ch gi¸o khoa, trang 74..

<span class='text_page_counter'>(71)</span> Ngµy so¹n: 4/3/2013. TiÕt 34,35. CHƯƠNG V : TỆP VÀ THAO TÁC VỚI TỆP § 14 KIỂU DỮ LIỆU TIỆP § 15 THAO TÁC VỚI TỆP I. Mục tiêu 1. Về kiến thức: - Biết khái niệm về kiểu dữ liệu tệp. - Biết khái niệm tệp định kiểu và tệp văn bản. - Biết các lệnh khai báo tệp kiểu và tệp văn bản. - Biết các bước làm việc ví i tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp. - Biết một số hàm và thủ tục chuẩn làm việc ví i tệp. 2. Về kỹ năng: - Khai báo đúng tên tệp. - Sử dụng một số hàm và thủ tục chuẩn làm việc ví i tệp. 3. Về thái độ: - Ham thích môn học, có tính kỷ luật cao và tính thần làm việc theo nhóm. - Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: xem xét vấn đề một cách cẩn thận, chu đáo, sáng tạo, không thỏa mãn ví i các kết quả ban đầu đạt được,… II. Phương pháp, phương tiện dạy học - Phương pháp: thuyết trình, vấn đáp - Phương tiện: máy chiếu, máy tính. III. Tiến trình bài dạy 1. Kiểm tra bài cũ: Có pháp khai báo biến kiểu xâu, mảng 1 chiều, 2 chiều? Những kiểu dữ liệu này được lưu trữ ở RAM, khi tắt máy thì sao? 2. Giảng bài mới: HOẠT ĐỘNG GV & HS NỘI DUNG -Kiểu dữ liệu mảng có giá trị là một dãy hữu hạn các dữ § 14 KIỂU DỮ LIỆU TIỆP liệu cùng kiểu. Số phần tử của mảng được hoàn toàn xác 1/ Vai trò của tệp định khi khai báo mảng.Trong nhiều bài toán, cần phải Tệp là dãy các dữ liệu cùng kiểu, có lưu giữ dữ liệu để sử dụng trong nhiều lần thực hiện các đặc điểm sau: chương trình hoặc xử lí một số lượng không xác định các - Dữ liệu kiểu tệp được lưu trữ lâu dài dữ liệu cùng kiểu. Ví i những bài nêu như vậy phải sử ở bộ nhớ ngoài (đĩa từ, CD, ...) và không bị dụng kiểu dữ liệu tệp. mất khi tắt nguồn điện. - Học sinh chú ý lắng nghe - Lượng thông tin lưu trữ trên tệp có - Kiểu dữ liệu tệp có những đặc điểm nào khác so ví i các thể rất lớn và chỉ phụ thuộc vào dung kiểu dữ liệu đã biết. lượng đĩa. -Dựa vào đâu để phân loại tệp, có mấy loại tệp ? 2/ Phân loại tệp * Xét theo tổ chức dữ liệu có 2 loại: - Tệp văn bản: là tệp mà dữ liệu được ghi dưới dạng các kí tự theo mã ASCII. - Tệp có cấu trúc: là tệp mà thành -Khai báo tệp văn bản theo có pháp nào? Cho ví dụ phần của nó được tổ chức theo một cấu trúc nhất định. * Xét theo cách thức truy cập, có 2 loại: - Cho biết các thao tác cơ bản liên quan đến tệp văn bản - Tệp truy cập tuần tự - Tệp truy cập trực tiếp -Đó là theo tác gắn tên tập 3/ Thao tác ví i tệp văn bản a) Khai báo Var <tên biến tệp>: text Ví du: Var tep1,tep2: text; b) Thao tác ví i tệp.

<span class='text_page_counter'>(72)</span> -Trong các thao tác đó thao tác nào luôn phải có khi theo tác ví i tệp?. -Ý nghĩa của hàm eof, eoln ?. * Gắn tên tệp: Assign(<biến tệp>,<tên tệp>); * Mở tệp mới Rewrite(<biến tệp>); * Mở tệp đã có Reset(<biến tệp>); * Ghi dữ liệu vào tệp Write(<biến tệp>,<danh sách kết quả>); Hoặc Writeln(<biến tệp>,<danh sách kết quả>); * Đọc tệp Read(<biến tệp>,<danh sách biến>); Hoặc Readln(<biến tệp>,<danh sách biến>); * Đóng tệp Close(<biến tệp>); * Hàm EOF, EOLN Eof(<biến tệp>) có giá trị true nếu con trỏ tệp đang ở cuối tệp. Eoln(<biến tệp>) có giá trị true nếu con trỏ tệp đang ở cuối dòng.. 3. Củng cố: Nhắc lại các thao tác trên tệp văn bản? 4. Dặn dò: + Xem lại bài + Chuẩn bị bài 16. Ngµy so¹n: 4/3/2013. TiÕt 36. Bài 16: V Í DỤ LÀM VIỆC VỚI TỆP I. MỤC TIÊU 1. Kiến thức: Củng cố lại kiến thức đã học về tệp trong chương 5 thông qua ví dụ. 2. Kỹ năng: Sử dụng được các hàm và thủ tục liên quan để giải quyết các bài tập. 3. Thái độ: - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. - Có ý thức lưu trữ dữ liệu một cách khoa học. II. PHƯƠNG PHÁP - Thuyết trình và giảng giải, kết hợp các hình ảnh trực quan. - Sử dụng các câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời III. PHƯƠNG TIỆN DẠY HỌC CỦA GIÁO VIÊN VÀ HỌC SINH 1. Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn 2. Học sinh: SGK, vở. IV. TIẾN TRÌNH LÊN LỚP 1. Ổn định tổ chức (1p) 2. Kiểm tra bài cũ (5p) * Câu hỏi: Sắp xếp các bảng dưới đây theo thứ tự các bước mở tệp để ghi và để đọc? Assign(<biến tệp>, <tên tệp>); Rewrite(<biến tệp>); Reset(<biến tệp>); + Read(<biến tệp>, <danh sách biến>); Write(<biến tệp>, <danh sách kết quả>); Close(<biến tệp>); * Đáp án: - Mở để ghi: + Assign(<biến tệp>, <tên tệp>); Rewrite(<biến tệp>); Write(<biến tệp>, <danh sách kết quả>); Close(<biến tệp>);.

<span class='text_page_counter'>(73)</span> - Mở để đọc: + Assign(<biến tệp>, <tên tệp>); Reset(<biến tệp>); Read(<biến tệp>, <danh sách biến>); Close(<biến tệp>); 3. Bài mới * Đặt vấn đề (1p) - Bài học trước các em đã được làm quen với một kiểu dữ liệu mới đó là kiểu dữ liệu tệp, để các em nắm chắc hơn phần kiến thức lí thuyết đã học, bài học hôm nay chúng ta sẽ đi vào tìm hiểu một số ví dụ cụ thể. * Triển khai bài Hoạt động của giáo viên và học sinh Nội dung kiến thức Hoạt động 1: (chung cả lớp) (10p) 1. Ví dụ 1 (SGK, trang 87) GV: Giới thiệu nội dung đề bài. Progam Khoang_cach; - Chiếu chương trình ví dụ lên bảng gợi ý học sinh Var d: real; f :text; x, y: integer; tìm hiểu chương trình. Begin - Hàm eof(f) có chức năng gì? Assign(f, ‘TRAI.TXT’); HS: Trả về giá trị true nếu con trỏ tệp định vị ở vị Reset(f); trí kết thúc tệp. While not eof(f) do GV: Có thể sử dụng cấu trúc FOR thay cho Begin WHILE được không? Read(f,x,y); HS: Không, vì không biết số lượng phần tử của D:= sqrt(x*x+y*y); tệp. Write(‘Khoang cach: ‘,d:10:2); GV: Chương trình này thực hiện công việc gì? Vì End; sao? Close(f); HS: Tính và đưa ra màn hình khoảng cách từ trại End. của thầy hiệu trưởng đến trại của mỗi giáo viên. GV: Giới thiệu cho HS cách tạo file TRAI.TXT. Thực hiện chương trình để học sinh thấy kết quả. Hoạt động 2: (theo từng nhóm) (7p) 2. Ví dụ 2 (SGK, trang 87) GV: Chiếu tranh mô phỏng kết nối các điện trở, Program Dien_tro; hình 17, trang 88 SGK. Hãy cho biết công thức Var a: array[1..5] of real; tính điện trở của sơ đồ II, III, IV? R1, R2, R3: real; f1,f2 :text; i: integer; HS: Nghiên cứu và trả lời Begin GV: Chiếu chương trình ví dụ lên bảng. Hỏi mảng Assign(f1, ‘RESIST.DAT’); A dùng để lưu trữ giá trị nào? Reset(f1); HS: Lưu trữ giá trị điện trỡ tương đương theo 5 Assign(f2, ‘RESIST.EQU’); cách ghép nối như trong sơ đồ. Rewrite(f2); GV: Cho một file dữ liệu vào gồm 2 hàng. Yêu cầu While not eof(f1) do học sinh tính kết quả. Begin HS: Tính kết quả của 5 điện trở tương đương. Readln(f1,R1,R2,R3); GV: Thực hiện chương trình đọc file dữ liệu vào a[1]:=R1*R2*R3/(R1*R2+R1*R3+R2*R3); trên để học sinh đối chiếu kết quả. a[2]:=R1*R2/(R1+R2)+R3; HS: Quan sát kết quả của chương trình và so sánh a[3]:=R1*R3/(R1+R3)+R2; với kết quả tính được. Nhận xét về tính chính xác a[4]:=R2*R3/(R2+R3)+R1; và thời gian thực hiện của chương trình. a[5]:=R1+R2+R3; For i:=1 to 5 do write(f2, a[i]:9:3,’ ‘); Writeln(f2); End; Close(f1); Close(f2); End. Hoạt động 3: (Chung cả lớp) (p) * Thủ tục: APPEND(biến tệp); GV: Cung cấp cho HS một số kiến thức mở rộng. * Ý nghĩa: Thủ tục này dùng để mở tập tin có tên đã - Giới thiệu cho HS một thủ tục mở file để ghi được gán cho biến tệp bởi thủ tục Assign trước đó. thêm dữ liệu vào file? Khi tệp được mở thì cửa sổ tệp định vị ở vị trí kết thúc HS: Quan sát và ghi bài. tệp. Từ đó có thể tuần tự ghi thêm dữ liệu vào cuối GV: Giới thiệu hàm kiểm tra sự tồn tại của một tệp. file. FUNCTION FileExists (tên_file: String):Boolean;.

<span class='text_page_counter'>(74)</span> - Ý nghĩa: hàm trả về giá trị TRUE nếu tập tin cần mở có trên đĩa, ngược lại cho giá trị False. - Lồng hàm trên vào ví dụ 2 cho HS kiểm chứng.. Var F: FILE; Begin {$I-} Assign (f, tên_file); Reset (f); Close (f); {$I+} FileExists:= (IOResult=0); End;. IV. Củng cố (5p) - Nêu các thao tác với tệp văn bản? V. Dặn dò (1p) - Bài tập: 1. Viết chương trình đọc và hiển thị ra màn hình nội dung một tập tin dạng văn bản, với tên tập tin được nhập từ bàn phím (có kiểm tra sự tồn tại của tập tin).. Ngµy so¹n: 14/3/2013. TiÕt 37. BÀI TẬP I.MỤC ĐÍCH: 1.Kiến thức: - Ôn lại các kiến thức về bản ghi: cú pháp khai biến, cách tham chiếu, một số câu lệnh liên quan đến thao tác xử lý bản ghi. - Nắm được một số thuật toán: Nhập và thông báo kết quả các trường, sắp xếp dữ liệu. 2.Kỹ năng: - Khai báo được kiểu bản ghi trong NNLT Pascal. - Nhập xuất dữ liệu cho biến bản ghi - Tham chiếu đến từng trường của kiểu bản ghi. - Sử dụng kiểu bản ghi để giải quyết một số bài toán. 3.Thái độ:Tiếp tục rèn luyện các phẩm chất cần thiết của nguời lập trình như: ý thức chọn và xây dựng kiểu dữ liệu, ý thức rèn luyện kỹ năng,... II. PHƯƠNG PHÁP: Vấn đáp tái hiện + Thảo luận nhóm III.PHƯƠNG TIỆN DẠY HỌC: 1. Giáo viên: Giáo án, SGK, máy chiếu, giấy A0 và bút. 2. Học sinh: Chuẩn bị bài ở nhà. IV. TIẾN TRÌNH LÊN LỚP: 1.Ổn định lớp(1’): 2. Kiểm tra bài cũ(5'): H1.Hãy nêu cú pháp về khai báo biến bản ghi? H2.Hãy khai báo biến bản ghi của ví dụ sau: BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008 3. Bài mới: a.Đặt vấn đề(1’): Kiểu dữ liệu bản ghi được dùng để mô tả các đối tượng có cùng một số thuộc tính mà các thuộc tính có thể có các kiểu dữ liệu khác nhau, chúng ta đã nghiên cứu lý thuyết về kiểu bản ghi ở tiết trước. Hôm nay chúng ta vận dụng kiểu bản ghi để làm một số bài tập. b.Triển khai bài mới:.

<span class='text_page_counter'>(75)</span> HOẠT ĐỘNG CỦA THẦY VÀ TRÒ Hoạt động 1(10’) (Giới thiệu cách truy xuất đến trường) Gv: -Yêu cầu Hs đọc câu hỏi bài tập 11/80 -Yêu cầu Hs xem lại ví dụ và trả lời câu hỏi sau: Hãy xem ví dụ 3 trong SGK bổ sung thêm đoạn chương trình và đưa ra màn danh sách những học sinh chỉ có xếp loại A? Hs:Đọc đề bài kết hợp với ví dụ trong SGK để sửa lại chương trình. NỘI DUNG KIẾN THỨC Bài tập 11/80(SGK): Lưu ý vận dụng bài tập tiết 34 Hãy bổ sung thêm vào chương trình Xeploai (ở bài 13) những lệnh cần thiết để chương trình đưa ra danh sách học sinh xếp loại A.. Writeln(' TT ',' Ho va Ten For i:=1 to n do If lop[i].xeploai='A' Then Begin Write(i:4); Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln; End; Đưa lên máy chiếu ví dụ như sau:. ',. ' Xloai ');. Gv: -Phân tích từng câu lệnh của Hs đưa ra=>Kết luận chương trình cụ thể -Đưa toàn bộ chương trình lên máy chiếu và chạy một vài bộ test để kiểm chứng thuật toán.. IV.CỦNG CỐ(3'): -Cần nắm: +Cách khai báo biến bản ghi +Cách truy xuất vào giá trị của trường +Cách nhập và xuất các trường trong bản ghi. +Một số câu lệnh cơ bản -Hai thuật toán: Sắp xếp, tính toán V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau: - Câu hỏi ôn tập: 1. Câu lệnh rẽ nhánh và lặp? 2.Khai báo kiểu mảng một chiều, hai chiều, kiểu xâu? Các đoạn chương trình nhập và xuất 3.Khai báo kiểu bản ghi? Các đoạn chương trình nhập và xuất bản ghi? 4.Xem lại các bài tập từ 1->11/80(SGK).

<span class='text_page_counter'>(76)</span> Ngµy so¹n: 18/3/2013. TiÕt 38. BÀI TẬP ÔN TẬP CHƯƠNG IV. I. Mục tiêu: 1. Về kiến thức: Củng cố các kiến thức về: - Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế. - Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bài tập. - Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type. 2. Về kĩ năng: - Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc (với Pascal, sử dụng thành thạo các từ khoá Var, Type). - Sử dụng thành thạo các thao tác vào/ ra và các phép toán trên các thành phần cơ sở. 3. Về tư duy và thái độ: - Thái độ học tập tích cực, ham thích lập trình. - Tiếp tục hình thành và xây dựng phẩm chất cần thiết của người lập trình. II. Chuẩn bị: - GV: Computer, Projecter. - HS: Chuẩn bị bài tập về nhà. III. Phương pháp: - Nêu vấn đề, Dẫn dắt, gợi ý... IV. Tiến trình hoạt động: Tiết 1: + Hoạt động 1: Giải bài tập số 6 trang 79 Sách GK Tin học lớp 11 Hoạt động của GV và HS Ghi bảng HĐTP1: H1: Sử dụng kiểu dữ liệu nào và cách khai báo? Chính xác hoá bài 6/tr79. - Trả lời: Kiểu mảng một chiều: Var A:array [1..100] of integer; H2: Khai báo biến như thế nào? - Yêu cầu HS viết chương trình nhập mảng A. - Chỉnh sửa bài làm của HS. H3: Số chẵn là số như thế nào? - Nếu có số lượng số chẵn trong dãy thì tìm số lượng số lẻ được hay không? - Nếu được thì tìm bằng cách nào? H4: Sử dụng câu lệnh nào để viết? - Yêu cầu HS hoàn thành chương trình của câu a. - Nhận xét, chỉnh sửa bài làm của HS. - Nếu có số lượng số chẵn trong dãy thì tìm số lượng lẻ bằng cách: n - số lượng số chẵn. TL: If ... then... HĐTP 2: H1: Nêu thuật toán kiểm tra 1 số có phải là số nguyên tố hay không? - Yêu cầu HS viết chương trình dựa theo thuật toán. Hd: Sử dụng câu lệnh nào? - Yêu cầu HS hoàn thành đoạn chương trình câu b. - Nhận xét, đánh giá: - Gợi ý để HS kết hợp hai đoạn chương trình thành một.

<span class='text_page_counter'>(77)</span> Hoạt động của GV và HS Ghi bảng chương trình hoàn chỉnh cho cả bài. + Hoạt động 2: Giải bài tập 7 trang 79 Sách GK Tin học lớp 11 Hoạt động của GV và HS Ghi bảng - Yêu cầu HS liệt kê 6 số hạng đầu của dãy Fiponaci. - Liệt kê: 0, 1, 1, 2, 3, 5. H1: Đoạn chương trình nhập từ bàn phím số nguyện dương Chính xác hoá bài 6/trang79. như thế nào? H2: Số hạng tổng quát thứ n như thế nào? TL: Fn = Fn-1 + Fn-2 - Gợi ý: Để viết chương trình này ta cần bao nhiêu biến phụ? H3: sử dụng câu lệnh nào trong bài này? TL: Dùng 2 biến phụ (F1, F2) - Yêu cầu HS viết chương trình tìm số hạng thứ n. - Gọi 1 HS hoàn chỉnh lại chương trình. - Nhận xét, chỉnh sửa, đánh giá bài làm. V.Củng cố (2) Cấu trúc lệnh: While ... do ... và For ... do ... VI. Dặn dò:. - Về nhà làm các bài tập tiếp theo..

<span class='text_page_counter'>(78)</span> Ngµy so¹n: 23/3/2013. TiÕt 39. KIỂM TRA 1 TIẾT I. MỤC TIÊU: - Kiểm tra kết quả tiếp thu của học sinh trong chương 4, chương 5 - Đánh giá kĩ năng phân tích một bài toán và tư duy lập trình trên giấy - Có thái độ tự giác, tích cực trong làm bài kiểm tra II. YÊU CẦU CỦA ĐỀ: - Kiến thức: Học sinh nắm được các kiến thức về kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu trúc. Các hàm chuẩn thông dụng. Cấu trúc vào/ra dữ liệu. Cấu trúc rẽ nhánh và lặp. - Kĩ năng: Có kỹ năng phân tích bài toán, viết chương trình III. CHUẨN BỊ - Giáo viên chuẩn bị đề kiểm - Học sinh chuẩn bị đầy đủ kiến thức đã được học, ôn tập III. ĐỀ THI, ĐÁP ÁN VẮN TẮT: - Cấu trúc đề: 1 câu lý thuyết, 2 câu lập trình, thời gian làm bài 45’, hình thức thi viết trên giấy. - Nội dung đề: Đề Ra: Câu 1: Em hãy nêu cách khai báo kiểu bản ghi, cho ví dụ? Câu 2: Viết chương trình nhập vào một dãy số nguyên gôm 20 phần tử, tính tổng các phần tử âm trong mảng. Câu 3: Em hãy viết chương trình nhập vào một xâu. Hãy xác định số lần xuất hiện của xâu “abc’ trong xâu vừa nhập?. Đáp án: Câu 1: (3điểm) - Cách khai bảo kiếu bản ghi (2điểm) - Lấy được ví dụ đúng (1 điểm) Câu 2 (3,5điểm): - Viết được chương trình nhập mảng 1 chiều (1.5 điểm) - Xét và đưa ra được công thức tính tổng các phần tử âm (2điểm) Câu 3: (3,5điểm) - Viết được chương trình nhập vào một xâu (1điểm) - Viết được chương trình sau (2,5điểm) - dem:=0; while pos(‘abc’, s)<>0 do begin dem: = dem +1; k:= pos(‘abc’, s) delete(s, k, 3); end; - write(‘so lan xuat hien cuar xau abc la:’, dem);.

<span class='text_page_counter'>(79)</span> Ngµy so¹n: 25/3/2013. TiÕt 40. Bài 17 . CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 1) I. Mục đích yêu cầu: + Biết CTC là một khối lệnh nhằm giải quyết một bài nêu con để góp phần giải quyết một bài nêu lớn hơn bằng một chương trình. + Biết khi viết nhứng chương trình dài, phức tạp thỡ việc sử dụng CTC là cần thiết. + Biết được lợi ích của việc sử dụng CTC. II. Chuẩn bị: Máy chiếu hoặc bảng phụ đó viết sẵn chương trình tinh_tong không sử dụng chương trình con và sử dụng chương trình con. III. Tiến trình bài dạy : Hoạt động của GV và HS + Hoạt động 1:(5’) Đặt vấn đề: Các chương trình giải các bài nêu phức tạp thường rất dài, có thể gồm nhiều lệnh, khi đọc rất khó hình dung chương trình thực hiện những công việc gì và việc hiệu chỉnh chương trình cũng rất khó khăn. Như vậy làm thế nào để cho bài nêu phức tạp dễ đọc, dễ hiểu, dễ hiệu chỉnh, dễ nâng cấp? Do đó ta nghiên cứu vấn đề mới là CTC, để tìm hiểu CTC là gì ? + Hoạt động 2(17’) Tỉnh tổng : an + bm + cp + dq + GV cho HS nêu ý tưởng bài nêu này + HS nêu ý tưởng giải quyết bài nêu và trả lời . Có nghĩa là chia bài nêu thành 2 bài nêu nhỏ, làm như vậy là làm mịn dần bài nêu ---> thiết kế bài toán từ trên xuống. + GV phân tích: để giải BT trên MT có thế chia chương trình thành các khối, mỗi khối gồm nhiều lệnh giải bài toán con nào đó ---> chương trình chính được xây dựng từ các CTC. + Chương trình con là gì ? + Giáo viên chốt lại khái niệm trên bảng phụ, máy chiếu hoặc viết trên bảng. + Hoạt động 3(17’) + GV dùng bảng phụ 1: bài tinh_tong ( không sử dụng CTC trang 92 SGK ), cho HS nhận xét đoạn chương trình trên . + Chỳ ý bảng phụ hoặc trình chiếu, sau đó nhận xét. + GV chốt lại các ý: đoạn CT có 4 đoạn lệnh tương tự ---> chương trình dài, khú theo dừi, khú hiệu chỉnh. + Dùng bảng phụ 2: Chương trình tinh_tong có sử dụng chương trình con. + HS nhận xét và so sánh 2 đoạn chương trình. + GV giải rhích : các dùng lệnh: var j: integer; tich:=1.0; for j:=1 to k do tich:=tich*x + Để tính các luỹ thừa ta viết: Luythua(a,n), luythua(b,m), Luythua(c,p), luythua(d,q) + Và chỉ rừ các đoạn lệnh được thay thế bằng CTC. + Từ những điều đó nêu cho HS nêu các ích lợi của CTC. + GV giải thích rừ từng ích lợi của việc sử dụng CTC + Các HS nêu lần lượt các lợi ích của CTC.. Nội dung. 1.Khái niệm chương trình con Những bài toán phức tạp có thể phân chia thành nhiều bài nêu nhỏ, mỗi bài nêu nhỏ được phân chia thành nhiều bài nêu nhỏ, quá trình làm “mịn” dần bài toán như vậy được gọi là cách thiết kế từ trên xuống. Khi lập trình để giải các bài nêu có thể chia thành các khối, mỗi khối bao gồm các lệnh để giải 1 bài nêu nào đó, mỗi khối lệnh được xây dựng thành 1 CTC , sau đó chương trình chính được xây dựng trên các CTC này, cách lập trình như vậy gọi là chương trình có cấu trúc . Chương trình con là một dóy lệnh mụ tả một số thao tỏc nhất định và có thể được thực hiện (được gọi ) từ nhiều vị trí trong chương trình. * Lợi ích của việc sử dụng CTC + Tránh được việc phải viết đi viết lại nhiều lần cùng 1 dóy lệnh; + Hổ trợ việc thực hiện các chương trình lớn; + Phục vụ cho quỏ trình trừu tượng hoá ; + Mở rộng khả năng ngôn ngữ; + Thuận tiện cho phát triển, nâng cấp chương trình;.

<span class='text_page_counter'>(80)</span> IV. Củng cố: 1/ HS nêu khái niệm CTC, lợi ích việc sử dụng CTC. V. Dặn dò: Xem trước phần 2của bài 17..

<span class='text_page_counter'>(81)</span> Ngµy so¹n: 3/4/2013. TiÕt 41. Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 2) I: Mục tiêu : 1. Kiến thức: Biết phân biệt được hai loại chương trình con: Hàm và thủ tục. Biết được cấu trúc của một chương trình con. Biết phân biệt được tham số hình thức ví i tham số thực sự, biến cục bộ ví i biến toàn cục. 2. Kỹ năng: - Nhận biết được hai loại tham số hình thức và tham số thật sự. - Nhận biết được phạm vi hoạt động của biến toàn cục, biến cục bộ. Cách thực hiện một chương trinh con 3. Thái độ: - Phát huy tinh thần học tập theo nhóm. II. Đồ dùng dạy học: -GV: Bảng phụ, máy chiếu(nếu có ) -HS: SGK, sách bài tập IV. Tiến trình bài học. 1. ổn định : 2. Bài cũ : Câu 1: Trình bày khái niệm chương trình con là gì ?. Câu 2: Mục đích sử dụng chương trình con là gì ? 3. Bài giảng : Hoạt động của GV & HS Nội dung ĐVĐ: Chúng ta đó biết chương trình con là gì ?. Lợi ích của 2. Phân loại và cấu trúc của chương việc sử dụng chương trình con trong lập trình. Nhưng ta chưa trình con. biết chương trình chương trình con có cấu trúc như thế nào? a. Phân loại: Và được phân loại như thế nào?. +Hàm: Là chương trình con thực hiện một -Trong nhiều ngôn ngữ lập trình chương trình con được phân số thao tác nào đó. Trả lại giá trị qua tên làm mấy loại? của hàm. -Trong ngôn ngữ pascal các em cho biết một số hàm và thủ tục +Thủ tục: Là chương trình con thực hiện chuẩn mà em biết? một số thao tác nào đó. Không trả lại giá -HS trả lời câu hỏi: trị qua tên của thủ tục. + Hàm: Sin(x), sqrt(x),length(x)... b. Cấu trúc chương trinh con + Writeln, readln,.... <Phần đầu> -Xét hàm sin(x) [<Phần khai báo >] Ví i x=∏/6 giá trị của hàm sin(x) cho kết quả là bao nhiờu ? <Phần thân > -HS trả lời câu hỏi: +Phần đầu: Sin(x)=1/2 + Để khai báo tên của hàm hoặc thủ GV nhận xét : Sau khi thực hiện tính toán hàm sin(x) ví i x= tục. ∏/6 cho giá trị là 1/2 + Nếu là hàm phải khai báo kiểu dữ Vậy các em cho biết hàm có đặc điểm gì ?(hay hàm là gì ?). liệu chi giá trị trả về của hàm. -Xét thủ tục Writeln, + Nhất thiết phải có . Writeln(‘‘xin chao’’) +Phần khai báo : Thủ tục Writeln(‘xin chao’) làm gì ? cho kết quả là gì ? có + Khai báo các biến cho dữ liệu trả về giá trị nào không ?. vào/ra, các hằng và biến dùng trong Vậy các em cho biết thủ tục có đặc điểm gì ?(hay hàm là gì chương trình con. ?). +Phần thân : ĐVĐ : Trên cơ sở phân loại hàm và thủ tục bây giờ ta tìm + Gồm dãy các lệnh thực hiện để từ hiểu cấu trúc của hàm và thủ tục (Chương trình con) được tổ những dữ iệu vào/ra ta nhận dữ liệu ra hay chức như thế nào ? kết qủa mong muốn. -Các em hãy cho biết chương trình chính gồm mấy phần ? *Khái niệm các biến: (kiến thức củ). - Tham số hình thức: gồm các biến được -Học sinh trả lời: khai báo cho dữ liệu vào/ra. [<Phần khai báo >] - Biến cục bộ: Gồm các biến khái được <Phần thân > khai báo trong chương trình con..

<span class='text_page_counter'>(82)</span> Hoạt động của GV & HS -Trong chương trình con cấu trúc của nú gồm mấy phần ? -Học sinh trả lời: <Phần đầu> [<Phần khai báo >] <Phần thân > -Về cơ bản chương trình con và chuơng trình chính có tương tự nhau không ? -Phần đầu dùng để làm gì ? -Phần Khai báo dùng để làm gì ? -Phần thân dùng để làm gì ? Xét ví dụ : Tính luỹ thừa : luythua= xk . khi đó tên chương trình con có thể đặt là luythua, tên các biết chưa dữ liệu vào là x, k. Vậy khi tính x k ta viết luythua(x,k). Khi đó x, k là tham số hình thức. -Vậy tham số hình thức là gì ? ĐVĐ : Đối biến cục bộ, ,biến toàn cục thỡ phạm vi hoạt động của nó như thế nào ? ĐVĐ : Sau khi có một chương trình con, muốn thực hiện chuơng trình con đó thỡ ta làm thế nào ? -Hãy cho ví dụ về lệnh gọi CTC ? Xét ví dụ :CTC luythua(x,k) ví i x,k tham số hình thức. Ví i biến : a =2, b=3 Lệnh gọi CTC là Luythua(a,b) khi đó tham số hình thức x,k nhận giá trị tương ứng của tham số thực sự a,b. -Học sinh đọc sách GK và trả lời.. Nội dung - Biến toàn cục: Gồm các biến khái được khai báo trong chương trình chính . *Phạm vi hoạt động của các biến: -Biến cục bộ: + Chỉ sử dụng trong một chương trình con cuả nú mà thụi. + Không thể sử dụng biến cục bộ cuả một chương trình con cho chương trình chính và các chương trình con khác. -Biến toàn cục: + Được sử dụng trong chương trình chính cũng có thể sử dụng trong chương trình con. c. Thực hiện chương trình con: -Để thực hiện gọi chương trình con ta thực hiện lệnh theo có pháp sau Có pháp : <tên chương trình con>(<tham số thực sự>) Trong đó: tham số thực sự là các hằng, biến chứa dữ liệu vào/ ra.. V. Cũng cố kiến thức: -CTC gồm: Hàm và thủ tục. -Cấu trúc chương trinh con. -Biến cục bộ, biến toàn cục. -Tham số hình thức, tham số thật sự. -Cách gọi chương trinh con.. Ngµy so¹n: 5/4/2013. TiÕt 42. Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T1) A. MỤC TIÊU 1. Kiến thức: - Giúp học sinh nắm được: - Cấu trúc chung của thủ tục trong chương trình. - Phân biệt được tham số và tham trị. - Các khái niệm về biến toàn cục và biến cục bộ. 2. Kỹ năng: - Nhận biết được các thành phần trong đầu của thủ tục. - Nhận biết được hai loại tham số hình thức trong đầu của hai thủ tục. - Biết cách khai báo hai loại chương trình con cùng với tham số hình thức của chúng. - Cách viết lời gọi chương trình con trong thân chương trình chính. - Phân biệt được sự khác nhau cơ bản giữa hàm và thủ tục. - Phân biệt và sử dụng đúng biến toàn cục và biến cục bộ. 3. Thái độ: - Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu vì một việc chung. - Có ý thức lưu trữ dữ liệu một cách khoa học. B. PHƯƠNG PHÁP.

<span class='text_page_counter'>(83)</span> - Thuyết trình và giảng giải, kết hợp các hình ảnh trực quan. - Sử dụng các câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C. PHƯƠNG TIỆN DẠY HỌC CỦA GIÁO VIÊN VÀ HỌC SINH 1. Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn 2. Học sinh: SGK, vở. D. TIẾN TRÌNH LÊN LỚP I. Ổn định tổ chức (1p) II. Kiểm tra bài cũ (5p) Câu hỏi: Hãy nêu khái niệm, phân loại và chức năng của từng loại chương trình con. Đáp án: - Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình. * Hàm (function): thực hiện một số thao tác nào đó và trả về một giá trị kiểu đơn giản thông qua tên hàm. * Thủ tục (Procedure): thực hiện các thao tác nhất định nhưng không trả về giá trị qua tên của nó. III. Bài mới 1. Đặt vấn đề (1p) - Bài học trước các em đã được tìm hiểu về chương trình con, cấu trúc và phân loại. Vậy chương trình con được viết như thế nào, sử dụng chúng ra sao, có gì giống và khác với chương trình chính không? Bài học hôm nay chúng ta sẽ tìm hiểu nội dung này. 2. Triển khai bài Hoạt động của giáo viên và học sinh Nội dung kiến thức Hoạt động 1: (theo từng nhóm) (12p) §18 Ví dụ về cách viết và sử dụng chương trình con GV: Giới thiệu bài toán ví dụ mở đầu. Giới 1. Cách viết và sử dụng thủ tục thệu cho học sinh cấu trúc thủ tục, vị trí khai a. Cấu trúc của thủ tục báo của thủ tục, lời gọi thủ tục. Procedure <tên thủ tục>[<danh sách các tham số>]; HS: Quan sát, theo dõi ví dụ. [<Phần khai báo>] GV: Vị trí của thủ tục nằm ở phần nào trong Begin chương trình chính? [<Dãy các lệnh>] HS: Ở phần khai báo, sau phần khai báo biến. End; GV: Cấu trúc của thủ tục gồm có mấy phần? * Trong đó: HS: Ba phần: tên, khai báo, phần than. - Phần đầu gồm tên dành riêng và tên thủ tục, danh sách GV: Phân biệt sự giống và khác nhau giữa tham số (có thể có hoặc không); chương trình chính và chương trình con. - Phần khai báo: dùng để xác định các hằng, kiểu, biến và HS: Giống: cấu trúc chung. cũng có thể xác định các chương trình con khác được sử Khác: trong phần tên, từ khoá đặt tên dụng trong thủ tục. Prcedure có các tham số. - Dãy câu lệnh được viết giữa cặp tên dành riêng Begin và GV: Yêu cầu học sinh xác định cấu trúc End tạo thành thân thủ tục. chung của thủ tục. - Lời gọi thủ tục ta viết ở phần nào trong chương trình? HS: Trong phần thân của chương trình. Hoạt động 2: (Theo từng nhóm) (10p) GV: Chiếu ví dụ 2, yêu cầu học sinh nhận xét về thủ tục ve_HCN của ví dụ này với ví dụ trước. * Tổ chức hoạt động nhóm; - Phân nhóm từ 4-6 em - Công việc: Xác định bản chất của thủ tục ve_HCN; - Câu hỏi: câu lệnh nào thực hiện vẽ cạnh trên, hai cạnh bên và câu lệnh nào thực hiện vẽ cạnh dưới. - Kết thúc hoạt động: thu kết quả của các. b. Ví dụ về thủ tục * Ví dụ 1; Program VD_thutuc2; Uses crt; Var a, b, i: integer; Procedure Ve_HCN(chdai, chrong: integer); Var i,j: integer; Begin {Ve canh tren cua hinh chu nhat} For i:=1 to chdai do write(‘*’); Writeln; For j:=1 to chrong-2 do write(‘ ’);.

<span class='text_page_counter'>(84)</span> nhóm, yêu cầu các nhóm trình bày kết quả của nhóm. - Cho các nhóm nhận xét kết quả bài làm của nhau. - GV: nhận xét kết quả và đưa ra kết luận (có thể cho điểm các nhóm nếu bài làm tốt) GV: Trong chương trình chính ta vẽ tất cả bao nhiêu thủ tục.. GV: Giới thiệu và tham số giá trị bvà tham số biến.. Hoạt động 3: (Chung cả lớp) (10p) GV: Chiếu VD_thambien1 len bảng. Hỏi: thủ tục trên thực hiện công việc gì; HS: Hoán đổi giá trị hai biến dữ liệu vào cho nhau. GV: Chạy chương trình và thực hiện đổi phần khai báo thành: Procedure Hoan_doi (x: integer; var y: integer); để HS quan sát và nhận xét sự khác nhau giữa tham biến và tham trị.. Begin Write(‘*’); For i:=1 to chdai-2 do write(‘ ’); Writeln(‘*’); End; For i:=1 to chdai do write(‘*’); Writeln; End; BEGIN {Bat dau chuong trinh chinh} Clrscr; Ve_HCN(25,10); Writeln; Writeln; Ve_HCN(5,10); Readln; Clrscr; a:=4; b:=2; For i:=1 to 4 do Begin Ve_HCN(a,b); Readln; clrscr; a:=a*2; b:=b*2; end; Readln; END. * Tham số giá trị: có hai chức năng - Đưa dữ liệu vào cho chương trình con; - Đưa dữ liệu chương trình con tìm được ra. * Tham số biến: trong lệnh gọi thủ tục, các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được gọi là các tham số biến. Program VD_thambien1; Uses crt; Var a, b: integer; Procedure Hoan_doi (var x, y: integer); Var TG: integer; Begin TG:=x; x:=y; y:=TG; End; BEGIN Clrscr; A:= 5; b:=10; Writeln(a:6, b:6); Hoan_doi(a,b); Writeln(a:6,b:6); END.. IV. Củng cố (5p) - Khi nào thì cần khai báo tham số trong phần khai báo của chương trình con theo kiểu tham biến, khi nào thì theo kiểu tham trị. - Phân biệt sự giống và khác nhau giữa tham biến và tham trị. V. Dặn dò (1p) - Xem tiếp nội dung còn lại của bài. - Viết thủ tục tìm và thông báo ra màn số lớn nhất giữa ba số a, b, c.. Ngµy so¹n: 8/4/2013. TiÕt 43. Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T2) A. MỤC TIÊU.

<span class='text_page_counter'>(85)</span> 1. Kiến thức: - Giúp học sinh nắm được: - Cấu trúc chung của thủ tục trong chương trình. - Phân biệt được tham số và tham trị. - Các khái niệm về biến toàn cục và biến cục bộ. 2. Kỹ năng: - Nhận biết được các thành phần trong đầu của thủ tục. - Nhận biết được hai loại tham số hình thức trong đầu của hai thủ tục. - Biết cách khai báo hai loại chương trình con cùng với tham số hình thức của chúng. - Cách viết lời gọi chương trình con trong thân chương trình chính. - Phân biệt được sự khác nhau cơ bản giữa hàm và thủ tục. - Phân biệt và sử dụng đúng biến toàn cục và biến cục bộ. 3. Thái độ: - Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu vì một việc chung. - Có ý thức lưu trữ dữ liệu một cách khoa học. B. PHƯƠNG PHÁP - Thuyết trình và giảng giải, kết hợp các hình ảnh trực quan. - Sử dụng các câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C. PHƯƠNG TIỆN DẠY HỌC CỦA GIÁO VIÊN VÀ HỌC SINH 1. Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn 2. Học sinh: SGK, vở. D. TIẾN TRÌNH LÊN LỚP I. Ổn định tổ chức (1p) II. Kiểm tra bài cũ III. Bài mới 1. Đặt vấn đề (1p) - Bài học trước các em đã được tìm hiểu về chương trình con, cấu trúc và phân loại. Vậy chương trình con được viết như thế nào, sử dụng chúng ra sao, có gì giống và khác với chương trình chính không? Bài học hôm nay chúng ta sẽ tìm hiểu nội dung này. 2. Triển khai bài Hoạt động của giáo viên và học sinh Nội dung kiến thức Hoạt động 1: (theo từng nhóm) (12p) §18 Ví dụ về cách viết và sử dụng chương trình con GV: Cho biết tên và cách sử dụng một số 1. Cách viết và sử dụng hàm hàm đã học? a. Cấu trúc của thủ tục HS: Hàm abs(), sqrt(),.. Function <tên thủ tục>[<danh sách các tham số>]: <kiểu - Viết tên hàm cần gọi và các tham số. dữ liệu>; - Lời gọi hàm được viết trong các biểu thức [<Phần khai báo>] như một toán hạng, thậm chí là tham số của Begin một hàm khác. [<Dãy các lệnh>] GV: Chuẩn xác. <tên hàm>:= <biểu thức>; - Điểm khác biệt giữa thủ tục và hàm là gì? End; HS: Trong than hàm cần có lệnh gán giá trị cho tên hàm. GV: hãy so sánh sự giống và khác nhau giữa hàm và thủ tục? HS: giống: có cấu trúc tương tự, có các tham số,.. - Khác: Tên hàm phải quy định kiểu dữ liệu; Trong than hàm phải có lệnh: tên_hàm:= biểu_thức; Bắt đầu của hàm là từ khoá Function. Hoạt động 2: (Theo từng nhóm) (15p) b. Ví dụ về hàm GV: Chiếu ví dụ rút gọn phân số. * Ví dụ 1; - Trong chương trình có sử dụng bao nhiêu Program Rutgon_Phanso; hàm. Uses crt; HS: một hàm. Var a, tuso, mauso: integer; GV: hàm UCLN(x,y) dùng để làm gì? Function UCLN(x,y: integer):integer;.

<span class='text_page_counter'>(86)</span> - Lời gọi hàm nằm ở đâu? Có gì khác với thủ tục trong lời gọi hàm? HS: Lệnh a:=UCLN(tuso, mauso) ; - Lời gọi hàm phải được đặt trong một lệnh hoặc trong một lời gọi chương trình con khác. GV: Có những biến nào được sử dụng trong chương trình? Các biến đó được khai báo ở chổ nào trong chương trình chính? HS: tuso, mauso, a : khai báo trong chương trình chính. - sodu: được khai báo trong chương trình con. GV: Yêu cầu học sinh phân biệt sự giống và khác nhau của biến toàn cục và biến cục bộ.. Var sodu: integer; Begin While y<>0 do Begin Sodu:= x mod y; X:= y; Y:= sodu; End; UCLN:=x; End; BEGIN {Bat dau chuong trinh chinh} Clrscr; Write(‘Nhap tu so va mau so: ‘); readln(tuso,mauso); A:=UCLN(tuso, mauso); GV: chạy chương trình để học sinh kiểm If a>1 then nghiệm và tự rút ra kết luận. Begin Tuso:= tuso div a; Mauso:= mauso div a; end; Writeln(tuso:5, ‘/’ ,mauso:5); Readln; END. Hoạt động 3: (Chung cả lớp) (10p) * Ví dụ 2: GV: Chiếu ví dụ Minbaso lên bảng minh hoạ Program Minbaso; cho học sinh cách gọi hàm. HS: Chú ý quan Uses crt; sát và theo dõi. Var a, b, c: real; Function Min(a,b: real):real; Begin If a<b then min:=a Else min:=b; End; BEGIN {Bat dau chuong trinh chinh} Clrscr; Write(‘Nhap vao ba so: ‘); readln(a,b,c); Writeln(‘So nho nhat trong ba so la: ‘,min(a,b,c); Readln END. IV. Củng cố (5p) - Phân biệt sự giống và khác nhau giữa hàm và thủ tục - Phân biệt sự giống và khác nhau giữa biến toàn cục và biến cục bộ V. Dặn dò (1p) - Xem trước nội dung bài thực hành số 6. - Viết hàm tìm số lớn nhất giữa ba số a, b, c..

<span class='text_page_counter'>(87)</span> Ngµy so¹n: 8/4/2013. TiÕt 44, 45. BÀI TẬP A. MỤC TIÊU 1. Kiến thức: Củng cố lại cho học sinh các kiến thức cơ bản của chương 2. Kỹ năng:  Nâng cao kĩ năng sử dụng một số lệnh kiểu dữ liệu tệp.  Gắn tên tệp; + Mở tệp; + Đóng tệp;  Biết giải một số bài toán cụ thể thường gặp. 3. Thái độ: Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm kiến thức. B. PHƯƠNG PHÁP  Thuyết trình và giảng giải, kết hợp với hình ảnh trực quan.  Sử dụng các câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời C. PHƯƠNG TIỆN DẠY HỌC CỦA GIÁO VIÊN VÀ HỌC SINH 1. Giáo viên: Giáo án, một số bài tập và đáp án. 2. Học sinh: SGK, sách bài tập và bài tập đã làm ở nhà. D. TIẾN TRÌNH LÊN LỚP I. Ổn định tổ chức (1p) II. Kiểm tra bài cũ III. Bài mới. 1. Đặt vấn đề 2. Triển khai bài mới Hoạt động của giáo viên và học sinh Nội dung kiến thức Hoạt động 1: Làm bài tập 1 (Bài tập về nhà) Program Doc_tep; Viết chương trình đọc và hiển thị ra màn hình nội Var tep: string; ch: char; f: text; dung một tập tin dạng văn bản, với tên tập tin được Begin nhập từ bàn phím (có kiểm tra sự tồn tại của tập tin). Write('Nhap ten File can doc: '); readln(tep); GV: Gọi học sinh lên bảng viết chương trình (Không Assign(f,tep); reset(f); cần kiểm tra sự tồn tại của tập tin). While not eof(f) do GV: Có thể đưa ra một số câu hỏi gợi ý sau: begin - Biến tên tập tin có kiểu gì? read(f,ch); write(ch); - Trước khi gắn tên tệp cho biến tệp ta cần phải làm end; gì? close(f); - Để đọc được dữ liệu từ tệp ta cần dùng câu lệnh nào readln; để mở tệp? End. - Để đọc hết dữ liệu trong tệp ta làm thế nào? - Khi nào thì xuất dữ liệu ra màn hình? HS: Nghiên cứu, vận dụng kiến thức đã học để trả lời. GV: Yêu cầu học sinh viết chương trình hoàn thiện. HS: Viết chương trình. GV: Đánh giá, hoàn thiện và cho điểm. Hoạt động 2: Giáo viên hướng dẫn cho học sinh cách Program Doc_tep; lồng hàm kiểm tra sự tồn tại của tập tin vào trong Var tep: string; ch: char; f: text; chương trình và hoàn thiện nội dung bài tập 1 FUNCTION FileExists(FileTest: string): Boolean; Var f: File; Begin {$I-} Assign(f,FileTest); reset(f); Close(f); {$I+} FileExists := (IOResult=0); end; Begin Write('Nhap ten File can doc: '); readln(tep); if FileExists(tep) then.

<span class='text_page_counter'>(88)</span> begin Assign(f,tep); reset(f); While not eof(f) do begin read(f,ch); write(ch); end; close(f); end else writeln('File ',tep,' khong ton tai tren dia'); readln; End. Hoạt động 3: Kiểm tra 15’ Var tep: string; ch: char; f: text; Viết chương trình đọc một tập tin dạng văn bản đã có Begin trên đĩa. Hiển thị ra màn hình nội dung của tập tin Write('Nhap ten File can doc: '); readln(tep); dưới dạng in hoa, (tên tập tin được nhập từ bàn Assign(f,tep); reset(f); phím). While not eof(f) do begin read(f,ch); write(upcase(ch)); end; close(f); readln; End. IV. Củng cố V. Dặn dò (1p) - Nghiên cứu trước nội dung bài 17: ‘Chương trình con và phân loại’..

<span class='text_page_counter'>(89)</span> Ngµy so¹n: 22/4/2013. TiÕt 46 Bµi thùc hµnh sè 6. I. Môc tiªu. 1. KiÕn thøc. - Cñng cè l¹i c¸c kiÕn thøc vÒ x©u kÝ tù, ch¬ng tr×nh con. 2. KÜ n¨ng: - RÌn luyÖn kÜ n¨ng xö lÝ x©u b»ng viÖc t¹o hiÖu øng ch÷ ch¹y trªn mµn h×nh. - N©ng cao kÜ n¨ng viÕt vµ sö dông ch¬ng tr×nh con. II. §å dïng d¹y häc. 1. ChuÈn bÞi cña gi¸o viªn. - Máy vi tính, tổ chức tịa phòng máy để học sinh có đợc các kĩ năng cơ bản trong viÖc tæ chøc vµ sö dông ch¬ng tr×nh con trong lËp tr×nh. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. Hoật động dậy – học . 1. Hoạt động 1: Tìm hiểu việc xây dựng hai thủ tục catdan(s1, s2) và cangiua(s) a. Môc tiªu: - Học sinh nắm đợc chức năng của hai thủ tục catdan() và cangiua(). Biết đợc ý nghĩa của mỗi tham số trong từng chơng trình con đó. b. Néi dung: Thñ tôc cantdan Type str79=string[79] Procedure cantdan(s1:str79; var s2:str79); Begin s2:=copy(s1,2,length(s1) – 1)+s1[1]; End; Thñ tôc cangiua Proceure cangiua(var s:str79); var i, n:integer; Begin n:=length(s); n:=(80 – n) div 2; For i:=1 to n do s:= ‘ ’ + s; End; c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. T×m hiÓu hai thñ tôc catdan(s1,s2) vµ cangiua(s). - ChiÕu néi dung thñ tôc catdan(s1,s2); - Hái: §Çu vµo vµ ®Çu ra cña thñ tôc nay? - Hái: Chøc n¨ng cña thñ tôc lµ g×?. Hoạt động của học sinh. 1. Quan s¸t thñ tôc catdan() vµ tr¶ lêi c©u hái cña gi¸o viªn.. - Vµo: ©u kÝ tù s1. - Ra: BiÕn x©u kÝ tù s2. - Thùc hiÖn viÖc t¹o x©u s2 tõ x©u s1 bằng việc chuyển kí tự thứ nhất đến vị trí cuèi cña x©u. - Yªu cÇu häc sinh cho vÝ dô minh häa. - S1= ‘abcd’ th× S2= ‘bcda’ - ChiÕu néi dung thñ tôc: cangiua(s); - Quan s¸t, suy nghÜ vµ tr¶ lêi. - Hái: §Çu vµo cña thñ tôc? - §Çu vµo lµ mét x©u kÝ tù S kh«ng qu¸ 79 kÝ tù. - Thñ tôc thùc hiÖn thªm vµo tríc x©u s - Hái: Thñ tôc thùc hiÖn c«ng viÖc g×? một số kí tự trằng để khi đa s ra màn hình kí tự trong S ban đầu đợc căn giữa của dßng gåm 80 kÝ tù. - Gi¸o viªn chó ý: Cã thÓ nh¾c häc sinh nÕu kh«ng khai b¸o s lµ tham biÕn th× thñ tôc nµy kh«ng cã hiÖu lùc g× v× lÖnh ®a s ra mµn h×nh kh«ng n»m trong thñ tôc nµy. 2. Quan s¸t ch¬ng tr×nh trªn b¶ng vµ 2. T×m hiÓu ch¬ng tr×nh cña c©u b, s¸ch theo dâi dÉn d¾t cña gi¸o viªn. gi¸o khoa, trang 103, 104. - ChiÕu ch¬ng tr×nh lªn b¶ng..

<span class='text_page_counter'>(90)</span> - Hái: Chøc n¨ng cña ch¬ng tr×nh.. - Yªu cÇu ngêi sö dông nhËp mét xau kÝ tự. Đa xâu đó ra màn hình có dạng dòng ch÷ ch¹y gi÷a mµn hµnh v¨n b¶n 25*80.. - Giíi thiÖu cho häc sinh c¸c thñ tôc chuÈn: gçty(x,y); delay(n); vµ - Quan sát trên màn hình để đối chiếu keypressed; - Thực hiện chơng trình để giúp học sinh với kết quả mà học sinh tự suy luận tính đợc. thÊy kÕt qu¶ cña ch¬ng trinh. 2. Hoạt động 2: Rèn luyện kĩ năng lập trình. a. Môc tiªu: - Học sinh vận dụng đợc các hiểu biết về chơng trình con, thuật toán vừa đợc cung cấp để giải quyết bài toán tổng quát hơn. b. Néi dung: - ViÕt ch¬ng tr×nh nhËp mét x©u kÝ tù vµ ®a ra dßng ch÷ ch¹y ë dßng bÊt k× do ch¬ng trình chính quy định. - N«i dung ch¬ng tr×nh gièng nh ch¬ng tr×nh c©u b, s¸ch gi¸o khoa, trang 103. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Tìm hiểu yêu cầu đề bài. - ChiÕu néi dung yªu cÇu lªn b¶ng. - Yêu cầu học sinh tìm ra vấn đề mới trong bµi tËp nµy.. - Yªu cÇu häc sinh lËp tr×nh trªn m¸y. - Yªu cÇu häc sinh thùc hiÖn ch¬ng tr×nh vµ nhËp d÷ liÖu test. - §¸nh gi¸ kÕt qu¶ lËp tr×nh cña häc sinh.. Hoạt động của học sinh. 1. Quan s¸t yªu cÇu trªn b¶ng. - VÒ c¬ b¶n, gièng nh nhiÖm vô mµ c©u b đã làm. Chỉ khác là chơng trình câu b luôn cho x©u kÝ tù ch¹y ë dßng bÊt k×. V× vËy phải truyền tham số quy định dòng chạy cho thñ tôc. - §éc lËp viÕt ch¬ng tr×nh vµo m¸y vµ b¸o c¸o kÕt qu¶ thö nghiÖm. - NhËp d÷ liÖu theo test cña gi¸o viªn vµ b¸o c¸o kÕt qu¶.. IV. §¸nh gi¸ cuèi bµi C©u hái vµ bµi tËp vÒ nhµ - ViÕt thñ tôc chaychu(s,dong) nhËn tham sè lµ x©u S gåm kh«ng qu¸ 79 kÝ tù vµ một biến nguyên Dong. In ra màn hình dòng chữ xác định bởi S chạy ở dòng Dong. Viết ch¬ng tr×nh vµ thùc hiÖn cã sö dông thñ tôc nµy. - ChuÈn bÞ bµi cho bµi thùc hµnh sè 7: Xem tríc néi dung cña bµi thùc hµnh sè 7, s¸ch gi¸o khoa, trang 105.. 1. Giíi thiÖu néi dung yªu cÇu lªn b¶ng. 1. Quan s¸t yªu cÇu cña gi¸o viªn. Định hớng cách giải quyết vấn đề cho häc sinh. Circle(x,y:integet;r:word); - Thủ tục để vẽ đợc một hình tròn cs tâm lµ ®iÓm chÝnh gi÷a mµn h×nh. - Cần 20 lệnh, nên dùng cấu trúc For để - CÇn bao nhiªu lÖnh nh vËy, dïng cÊu ch¬ng tr×nh ng¾n gän. trúc nào để điều khiển. 2. chia lớp làm 3 nhóm. 01 nhóm viết ch2. Thảo luận theo nhóm để viết chơng ¬ng tr×nh trªn m¸y. 02 nhãm viÕt lªn b×a tr×nh lªn giÊy b×a trong. trong. - Báo cáo kết quả viết đợc. - Thu phiÕu tr¶ lêi. ChiÕu lªn b¶ng , gäi - Nhận xét, đánh giá và bổ sung thiếu sót học sinh nhóm khác nhận xét đánh giá. cña c¸c nhãm kh¸c..

<span class='text_page_counter'>(91)</span> Söa ch¬ng tr×nh hoµn chØnh cho häc sinh viÕt trªn m¸y. 3. thực hiện chơng trình trên máy để học sinh thấy đợc kết quả.. 3. Quan s¸t kÕt qu¶ trªn mµn h×nh.. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học. - Th viÖn ch¬ng t×nh con cung cÊp nh÷ng ch¬ng tr×nh con chuÈn nh»m më réng kh¶ n¨ng øng dông. - Khởi động chế độ đồ họa. Chuyển từ chế độ màn hình đồ hoa sang chế độ màn h×nh v¨n b¶n. - Thủ tục vẽ điểm, đờng, hình cơ bản: Hình tròn, hình chữ nhật, hình ellipse. 2. C©u hái vµ bµi tËp vÒ nhµ. - Đọc bài đọc thêm 4: Âm thanh, sách giáo khoa, trang upload.123doc.net..

<span class='text_page_counter'>(92)</span> Ngµy so¹n: 28/4/2013. TiÕt 48,49 Bµi tËp. I. Môc tiªu 1. KiÕn thøc. - Nắm đợc toàn bộ kiến thức đã học từ đầu năm học. 2. KÜ n¨ng: - Vận dụng đợc các lệnh và kiểu dữ liệu đã học để lập trình giải các bìa toán một c¸ch trän vÑn. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - M¸y chiÕu Projector. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. Hoạt động dạy – học . 1. Hoạt động 1: Nhắc lại kiến thức đã đợc học. a. Môc tiªu: - Học sinh nắm chắc tất cả các kiến thức lí thuyết cơ bản đã đợc học từ đầu năm đến nay. b. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Đặt câu hỏi để giúp học sinh nhớ lại kiến thức đã đợc học. - KÓ tªn c¸c lo¹i ng«n ng÷ lËp tr×nh.. Hoạt động của học sinh. 1. theo dâi c¸c c©u hái cña gi¸o viªn vµ suy nghÜ tr¶ lêi. - Ng«n ng÷ m¸y. - Hîp ng÷. - Ng«n ng÷ bËc cao : Pasacl, c,... - Biªn dÞch: - Ph©n biÖt hai kÜ thuËt biªn dÞch vµ - Th«ng dÞch: th«ng dÞch. - B¶ng ch÷ c¸i, có ph¸p vµ ng÷ nghÜa. - tr×nh bµy c¸c thµnh phÇn cña mét ng«n - Gåm 2 phÇn: PhÇn khia b¸o vµ phÇn ng÷ lËp tr×nh. th©n. - Nªu cÊu tróc chung cña mét ch¬ng Program vd; trình Pascal. Cho một ví dụ đơn giản. Var i:integer; Begin; i:=5; Writeln(i); Readln; End. - Sè nguyªn, sè thùc, kÝ tù, logic. - Kể tên các kiểu dữ liệu đơn giản đã - PhÐp to¸n sè häc, phÐp to¸n quan hÖ, học, giới hạn của các kiểu đó, các phép phÐp to¸n logic. to¸n t¬ng øng cña tõng kiÓu vµ c¸c hµm - BiÓu thøc sè häc, biÓu thøc quan hÖ vµ liªn quan. biÓu thøc logic. - Hµm b×nh ph¬ng, hµm c¨n bËc hai, hàm giá trị tuyệt đối, hàm sin, hàm cos. - Tªn biÕn:=biÓu thøc; - ViÕt cÊu tróc chung cña lÖnh g¸n vµ - Dùng để tính toán một biểu thức và chøc n¨ng cña lÖnh. g¸n gi¸ trÞ cho mét biÕn. - Thñ tôc Read()/readln(); - ViÕt cÊu tróc chung cña thñ tôc - Thñ tôc Write()/writeln(); nhËp/xuÊt d÷ liÖu. If <BT§K> then - Nªu cÊu tróc chung cña lÖnh rÏ nh¸nh. <lÖnh1>else<lÖnh2>; For i:=gt1 to gt2 do<lÖnh>; - Nªu cÊu tróc chung cña lÖnh lÆp. While<btdk> do <lÖnh> - Type tªnkiÓu = Array[cs1 .. cs2] of - C¸ch khai b¸o kiÓu m¶ng, khai b¸o kiÓu_phÇn_tö; biến kiểu mảng và tham chiếu đến từng - Var tªnbiÕn: tªnkiÓu; phÇn tö cña m¶ng..

<span class='text_page_counter'>(93)</span> - C¸ch khai b¸o biÕn x©u, tham chiÕu đến từng kí tự của xâu, các hàm và thủ tục liên quan đến xâu.. - C¸ch t¹o kiÓu b¶n ghi, khai b¸o biÕn kiểu bản ghi và tham chiếu đến từng phần tö cña biÕn b¶n ghi.. - TªnbiÕn[chØ sè] - Var tªnbiÕn:string; - TªnbiÕnx©u[chØ sè] - Hµm: length(st), upcase(ch), copy(st,p,n). - Thñ tôc: Delete(st,p,n), str(n,st), Var(st,n,m1), Insert(s1,s2,n); - Type tªnkiÓub¶nghi=record tªntrêng i: kiÓud÷liÖu i; End; Var TªnbiÕnb¶nghi:tªnkiÓub¶nghi; - TªnbiÕnb¶nghi.tªntrêng. 2. Hoạt động 2: rèn luyện kĩ năng viết chơng trình. a. Môc tiªu: - Học sinh sử dụng kiến thức tông hợp đẻ giải quyết đợc một bài toán đặt ra. b. Néi dung: - ViÕt ch¬ng tr×nh nhËp vµo mét d·y sè gåm N phÇn tö nguyªn d¬ng. In ra mµn h×nh ớc số chung lớn nhất của dãy số đó. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Giới thiệu nội dung đề bài lên bảng. §Þng híng ph¬ng ph¸p gi¶i quyÕt. - C¸c nhiÖm vô ph¶i thùc hiÖn: NhËp mét d·y sè. T×m íc sè chung lín nhÊt cña hai sè. T×m íc sè chung lín nhÊt cña N sè vµ in kÕt qu¶ ra mµn h×nh. 2. Chia líp lµm 3 nhãm. Nhãm 1: ViÕt ch¬ng tr×nh con nhËp gi¸ trÞ cho mét m¶ng. Nhãm 2: ViÕt ch¬ng tr×nh con t×m íc sè chung lín nhÊt cña 2 sè. Nhãm 3: ViÕt ch¬ng tr×nh chÝnh khi cã ch¬ng tr×nh con nhËp mang vµ t×m íc sè chung lín nhÊt cña hai sè. - Thu phiÕu häc tËp, chiÕu néi dung lªn b¶ng. Gäi häc sinh c¸c nhãm nhËn xÐt đánh giá lẫn nhau. - Yªu cÇu häc sinh ghÐp c¸c ch¬ng tr×nh con để đợc chơng trình chính. - Thực hiện chơng trình để toàn lớp thấy đợc kết quả.. Hoạt động của học sinh. 1. Quan sát nội dung đề bài và suy nghĩ phơng pháp giải theo định hớng phân tích cña gi¸o viªn.. 2. Th¶o luËn theo nhãm viÕt ch¬ng tr×nh lªn giÊy b×a trong. - Th«ng b¸o kÕt qu¶ cho gi¸o viªn khi hoµn thµnh.. - Nhận xét, đánh giá và bổ sung những thiÕu sãt cña nhãm kh¸c. - Thảo luận để ghép chơng trình. - Quan sát để thấy kết quả của bài tập.. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học. - Kh¸i niÖm vÒ ng«n ng÷ lËp tr×nh vµ ng«n ng÷ lËp tr×nh Pascal. - Chơng trình Turbo Pascal đơn giản. - Tæ chøc rÏ nh¸nh vµ lÆp. - KiÓu d÷ liÖu cã cÊu tróc. - kiÓu tÖp vµ c¸c thao t¸c xö lÝ trªn tÖp. 2. C©u hái vµ bµi tËp vÒ nhµ..

<span class='text_page_counter'>(94)</span> Ngµy so¹n: 2/5/2013. TiÕt 50,51 «n tËp häc kú ii. I. Môc tiªu 1. KiÕn thøc. - Nắm đợc toàn bộ kiến thức đã học từ đầu năm học. 2. KÜ n¨ng: - Vận dụng đợc các lệnh và kiểu dữ liệu đã học để lập trình giải các bìa toán một c¸ch trän vÑn. II. §å dïng d¹y häc. 1. ChuÈn bÞ cña gi¸o viªn. - M¸y chiÕu Projector. 2. ChuÈn bÞ cña häc sinh. - S¸ch gi¸o khoa. III. Hoạt động dạy – học . 1. Hoạt động 1: Nhắc lại kiến thức đã đợc học. a. Môc tiªu: - Học sinh nắm chắc tất cả các kiến thức lí thuyết cơ bản đã đợc học từ đầu năm đến nay. b. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Đặt câu hỏi để giúp học sinh nhớ lại kiến thức đã đợc học. - KÓ tªn c¸c lo¹i ng«n ng÷ lËp tr×nh.. Hoạt động của học sinh. 1. theo dâi c¸c c©u hái cña gi¸o viªn vµ suy nghÜ tr¶ lêi. - Ng«n ng÷ m¸y. - Hîp ng÷. - Ng«n ng÷ bËc cao : Pasacl, c,... - Biªn dÞch: - Ph©n biÖt hai kÜ thuËt biªn dÞch vµ - Th«ng dÞch: th«ng dÞch. - B¶ng ch÷ c¸i, có ph¸p vµ ng÷ nghÜa. - tr×nh bµy c¸c thµnh phÇn cña mét ng«n - Gåm 2 phÇn: PhÇn khia b¸o vµ phÇn ng÷ lËp tr×nh. th©n. - Nªu cÊu tróc chung cña mét ch¬ng Program vd; trình Pascal. Cho một ví dụ đơn giản. Var i:integer; Begin; i:=5; Writeln(i); Readln; End. - Sè nguyªn, sè thùc, kÝ tù, logic. - Kể tên các kiểu dữ liệu đơn giản đã - PhÐp to¸n sè häc, phÐp to¸n quan hÖ, học, giới hạn của các kiểu đó, các phép phÐp to¸n logic. to¸n t¬ng øng cña tõng kiÓu vµ c¸c hµm BiÓu thøc sè häc, biÓu thøc quan hÖ vµ liªn quan. biÓu thøc logic. - Hµm b×nh ph¬ng, hµm c¨n bËc hai, hàm giá trị tuyệt đối, hàm sin, hàm cos. - Tªn biÕn:=biÓu thøc; - ViÕt cÊu tróc chung cña lÖnh g¸n vµ - Dùng để tính toán một biểu thức và chøc n¨ng cña lÖnh. g¸n gi¸ trÞ cho mét biÕn. - Thñ tôc Read()/readln(); - ViÕt cÊu tróc chung cña thñ tôc - Thñ tôc Write()/writeln(); nhËp/xuÊt d÷ liÖu. If <BT§K> then - Nªu cÊu tróc chung cña lÖnh rÏ nh¸nh. <lÖnh1>else<lÖnh2>; For i:=gt1 to gt2 do<lÖnh>; - Nªu cÊu tróc chung cña lÖnh lÆp. While<btdk> do <lÖnh> - Type tªnkiÓu = Array[cs1 .. cs2] of - C¸ch khai b¸o kiÓu m¶ng, khai b¸o kiÓu_phÇn_tö; biến kiểu mảng và tham chiếu đến từng - Var tªnbiÕn: tªnkiÓu;.

<span class='text_page_counter'>(95)</span> phÇn tö cña m¶ng. - C¸ch khai b¸o biÕn x©u, tham chiÕu đến từng kí tự của xâu, các hàm và thủ tục liên quan đến xâu.. - C¸ch t¹o kiÓu b¶n ghi, khai b¸o biÕn kiểu bản ghi và tham chiếu đến từng phần tö cña biÕn b¶n ghi.. - TªnbiÕn[chØ sè] - Var tªnbiÕn:string; - TªnbiÕnx©u[chØ sè] - Hµm: length(st), upcase(ch), copy(st,p,n). - Thñ tôc: Delete(st,p,n), str(n,st), Var(st,n,m1), Insert(s1,s2,n); - Type tªnkiÓub¶nghi=record tªntrêng i: kiÓud÷liÖu i; End; Var TªnbiÕnb¶nghi:tªnkiÓub¶nghi; - TªnbiÕnb¶nghi.tªntrêng. 2. Hoạt động 2: rèn luyện kĩ năng viết chơng trình. a. Môc tiªu: - Học sinh sử dụng kiến thức tông hợp đẻ giải quyết đợc một bài toán đặt ra. b. Néi dung: - ViÕt ch¬ng tr×nh nhËp vµo mét d·y sè gåm N phÇn tö nguyªn d¬ng. In ra mµn h×nh ớc số chung lớn nhất của dãy số đó. c. C¸c bíc tiÕn hµnh: híng dÉn cña gi¸o viªn. 1. Giới thiệu nội dung đề bài lên bảng. §Þng híng ph¬ng ph¸p gi¶i quyÕt. - C¸c nhiÖm vô ph¶i thùc hiÖn: NhËp mét d·y sè. T×m íc sè chung lín nhÊt cña hai sè. T×m íc sè chung lín nhÊt cña N sè vµ in kÕt qu¶ ra mµn h×nh. 2. Chia líp lµm 3 nhãm. Nhãm 1: ViÕt ch¬ng tr×nh con nhËp gi¸ trÞ cho mét m¶ng. Nhãm 2: ViÕt ch¬ng tr×nh con t×m íc sè chung lín nhÊt cña 2 sè. Nhãm 3: ViÕt ch¬ng tr×nh chÝnh khi cã ch¬ng tr×nh con nhËp mang vµ t×m íc sè chung lín nhÊt cña hai sè. - Thu phiÕu häc tËp, chiÕu néi dung lªn b¶ng. Gäi häc sinh c¸c nhãm nhËn xÐt đánh giá lẫn nhau. - Yªu cÇu häc sinh ghÐp c¸c ch¬ng tr×nh con để đợc chơng trình chính. - Thực hiện chơng trình để toàn lớp thấy đợc kết quả.. Hoạt động của học sinh. 1. Quan sát nội dung đề bài và suy nghĩ phơng pháp giải theo định hớng phân tích cña gi¸o viªn.. 2. Th¶o luËn theo nhãm viÕt ch¬ng tr×nh lªn giÊy b×a trong. - Th«ng b¸o kÕt qu¶ cho gi¸o viªn khi hoµn thµnh.. - Nhận xét, đánh giá và bổ sung những thiÕu sãt cña nhãm kh¸c. - Thảo luận để ghép chơng trình. - Quan sát để thấy kết quả của bài tập.. IV. §¸nh gi¸ cuèi bµi 1. Những nội dung đã học. - Kh¸i niÖm vÒ ng«n ng÷ lËp tr×nh vµ ng«n ng÷ lËp tr×nh Pascal. - Chơng trình Turbo Pascal đơn giản. - Tæ chøc rÏ nh¸nh vµ lÆp. - KiÓu d÷ liÖu cã cÊu tróc. - kiÓu tÖp vµ c¸c thao t¸c xö lÝ trªn tÖp. - Ch¬ng tr×nh con. - lập trình xử lí đồ họa và âm thanh. 2. C©u hái vµ bµi tËp vÒ nhµ. - ChuÈn bÞ kiÕn thøc cho tiÕt sau kiÓm tra cuèi n¨m: Xem l¹i toµn bé c¸c kiÕn thøc đã ôn tập..

<span class='text_page_counter'>(96)</span> Ngµy so¹n: 10/5/2013. TiÕt 52. KIỂM TRA HỌC KỲ II I. MỤC TIÊU: - Kiểm tra kết quả tiếp thu của học sinh trong chương 4, chương 5 - Đánh giá kĩ năng phân tích một bài toán và tư duy lập trình trên giấy - Có thái độ tự giác, tích cực trong làm bài kiểm tra II. YÊU CẦU CỦA ĐỀ: - Kiến thức: Học sinh nắm được các kiến thức về kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu trúc. Các hàm chuẩn thông dụng. Cấu trúc vào/ra dữ liệu. Cấu trúc rẽ nhánh và lặp. - Kĩ năng: Có kỹ năng phân tích bài toán, viết chương trình III. CHUẨN BỊ - Giáo viên chuẩn bị đề kiểm - Học sinh chuẩn bị đầy đủ kiến thức đã được học, ôn tập III. ĐỀ THI, ĐÁP ÁN VẮN TẮT: - Cấu trúc đề: 1 câu lý thuyết, 2 câu lập trình, thời gian làm bài 45’, hình thức thi viết trên giấy. - Nội dung đề: Đề Ra: Câu 1: Em hãy nêu cách khai báo kiểu bản ghi, cho ví dụ? Câu 2: Viết chương trình nhập vào một dãy số nguyên gôm 20 phần tử, tính tổng các phần tử âm trong mảng. Câu 3: Em hãy viết chương trình nhập vào một xâu. Hãy xác định số lần xuất hiện của xâu “abc’ trong xâu vừa nhập?. Đáp án: Câu 1: (3điểm) - Cách khai bảo kiếu bản ghi (2điểm) - Lấy được ví dụ đúng (1 điểm) Câu 2 (3,5điểm): - Viết được chương trình nhập mảng 1 chiều (1.5 điểm) - Xét và đưa ra được công thức tính tổng các phần tử âm (2điểm) Câu 3: (3,5điểm) - Viết được chương trình nhập vào một xâu (1điểm) - Viết được chương trình sau (2,5điểm) - dem:=0; while pos(‘abc’, s)<>0 do begin dem: = dem +1; k:= pos(‘abc’, s) delete(s, k, 3); end; - write(‘so lan xuat hien cuar xau abc la:’, dem);.

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

×