Hình thành và phát triển năng lực trí tuệ chung cho học sinh THPT thông qua giảng dạy ngôn ngữ lập trình Pascal

Phần Mở đầu 1. lý do chọn đề tài Thế kỷ XXI là thế kỷ của nền kinh tế tri thức. Nền kinh tế này tạo ra những biến đổi to lớn trong mọi mặt hoạt động của con người và xư hội, đó là cơ sở hạ tầng mới của xư hội mới - xư hội thông tin - xã hội đặt ra yêu cầu rất cao đối với hoạt động trí tuệ, khác hẳn với nền kinh tế sức người và nền kinh tế tài nguyên trong xư hội nông nghiệp và công nghiệp. Nền kinh tế tri thức là nền kinh tế dựa trên công nghệ cao, đó là nét đặt trưng rất tiêu biểu của nền văn minh thông tin - sản phẩm của cách mạng thông tin, cách mạng tri thức. Nói đến tri thức, sáng tạo tri thức, phổ biến, truyền thụ tri thức, học tập và lĩnh hội tri thức không thể không nói đến khoa học - công nghệ và giáo dục - đào tạo. ”Giáo dục là một trong những công cụ mạnh nhất mà chúng ta có trong tay để sáng tạo nên tương lai”(Jacques Delos). Sự nghiệp giáo dục phải đáp ứng những đòi hỏi của cách mạng khoa học và công nghệ. Đó là một yêu cầu có tích chất nguyên tắc. Trong thời đại mà máy tính điện tử ngày càng được sử dụng rộng rãi, một sự hiểu biết nhất định về máy tính điện tử, công nghệ thông tin không phải chỉ là vốn riêng của một số người chuyên nghiệp mà phải trở thành học vấn phổ thông của mọi thành viên trong xã hội, nhất là thế hệ trẻ. ở Việt Nam, từ năm 1993 Bộ Giáo dục và Đào tạo đã quyết định đưa môn Tin học vào giảng dạy trong các trường phổ thông. Tin học là một môn học công cụ, có tính trừu tượng và tính thực tiễn phổ dụng. Những tri thức và kỹ năng Tin học cùng với phương pháp làm việc trong Tin học đã trở thành công cụ để học tập những môn học khác trong nhà trường, là công cụ của nhiều ngành khoa học khác cũng như hoạt động trong đời sống thực tế. Bởi vậy, dạy Tin học không chỉ đơn thuần là tạo điều kiện cho học sinh chiếm lĩnh những tri thức và kỹ năng Tin học mà còn phải góp phần phát triển năng lực trí tuệ chung cho học sinh. Nhận thức được tầm quan trọng của việc dạy học Tin học cho thế hệ trẻ, với mong muốn tìm ra cho mình con đường đi đến với phương pháp dạy học môn Tin học, từ đó tích luỹ và bồi dưỡng những năng lực và phẩm chất của một giáo viên trong tương lai, tôi chọn đề tài:”Hình thành và phát triển năng lực trí tuệ chung cho học sinh THPT thông qua giảng dạy ngôn ngữ lập trình Pascal”. Mục lục Trang Phần mở đầu 1 Chương I. Cơ sở lý luận 5 1. Những năng lực trí tuệ chung là gì? 5 1.1. Năng lực tư duy logic 5 1.2. Khả năng suy đoán và tưởng tượng 6 1.3. Các thao tác tư duy 6 2. Tại sao phải hình thành và phát triển 8 Chương II. Hình thành và phát triển năng lực trí tuệ chung 10 1. Phương pháp hình thành 10 2. Hình thành và phát triển tư duy 13 2.1. Phát triển khả năng hiểu và xây dựng chương trình 13 2.2. Phát triển khả năng hiểu và vận dụng những liên kết 24 2.3. Phát triển khả năng hiểu và xây dựng thuật giải. 25 3. Hình thành và phát triển khả năng suy đoán 32 3.1. Quy lạ về quen 32 3.2. Xét tương tự 36 3.3. Khái quát hoá 38 3.4. Hình thành và phát triển các thao tac tư duy 40 Chương III. Thực nghiệm sư phạm 45 1. Mục đích thực nghiệm 45 2. Nội dung thực nghiệm 45 3. Phân tích kết quả thực nghiệm 47 Kết luận 49 Tài liệu tham khảo 51

doc55 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2611 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Hình thành và phát triển năng lực trí tuệ chung cho học sinh THPT thông qua giảng dạy ngôn ngữ lập trình Pascal, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
­íng t­ duy cã thÓ lµ chuyÓn tõ h­íng nµy sang h­íng kh¸c chø kh«ng nhÊt thiÕt ph¶i ng­îc víi h­íng ban ®Çu TÝnh ®éc lËp: TÝnh ®éc lËp cña t­ duy thÓ hiÖn ë kh¶ n¨ng tù m×nh ph¸t hiÖn vÊn ®Ò, tù m×nh x¸c ®Þnh ph­¬ng h­íng, t×m ra c¸ch gi¶i quyÕt, tù m×nh kiÓm tra vµ hoµn thiÖn kÕt qu¶ ®¹t ®­îc. TÝnh ®éc lËp liªn hÖ mËt thiÕt víi tÝnh phª ph¸n cña t­ duy. TÝnh chÊt nµy thÓ hiÖn kh¶ n¨ng ®¸nh gi¸ nghiªm tóc nh÷ng ý nghÜ vµ t­ t­ëng cña ng­êi kh¸c vµ cña b¶n th©n m×nh, cã tinh thÇn hoµi nghi khoa häc, biÕt ®Æt c©u hái “t¹i sao?”,”nh­ thÕ nµo?” khi lÜnh héi kiÕn thøc. TÝnh s¸ng t¹o: TÝnh linh ho¹t, tÝnh ®éc lËp vµ tÝnh phª ph¸n lµ nh÷ng ®iÒu kiÖn cÇn thiÕt cña t­ duy s¸ng t¹o, lµ nh÷ng ®Æc ®iÓm vÒ nh÷ng mÆt kh¸c nhau cña t­ duy s¸ng t¹o. TÝnh s¸ng t¹o cña t­ duy thÓ hiÖn râ nÐt ë kh¶ n¨ng t¹o ra c¸i míi: ph¸t hiÖn vÊn ®Ò míi, t×m ra h­íng ®i míi, t¹o ra kÕt qu¶ míi. NhÊn m¹nh c¸i míi kh«ng cã nghÜa lµ coi nhÑ c¸i cò. C¸i míi th­êng n¶y sinh, b¾t nguån tõ c¸i cò, nh­ng vÊn ®Ò lµ c¸ch nh×n c¸i cò nh­ thÕ nµo? T¹i sao ph¶i h×nh thµnh vµ ph¸t triÒn n¨ng lùc trÝ tuÖ chung cho häc sinh? Môc tiªu cña nÒn gi¸o dôc n­íc ta lµ: ”H×nh thµnh, ph¸t triÓn c¸c phÇm chÊt vµ n¨ng lùc cña ng­êi c«ng d©n ViÖt Nam: tù chñ, n¨ng ®éng, s¸ng t¹o, cã kiÕn thøc v¨n ho¸, khoa häc, c«ng nghÖ, cã kü n¨ng nghÒ nghiÖp, cã søc khoÎ, cã niÒm tù hµo d©n téc vµ ý chÝ v­¬n lªn; cã n¨ng lùc tù häc vµ thãi quen häc tËp suèt ®êi, cã n¨ng lùc ®i vµo thùc tiÔn kinh tÕ - x· héi, gãp phÇn hiÖu qu¶ lµm cho d©n giµu, n­íc m¹nh, x· héi c«ng b»ng, v¨n minh, ®¸p øng yªu cÇu x©y dùng vµ b¶o vÖ Tæ Quèc x· héi chñ nghÜa” (NguyÔn Sinh Huy - NguyÔn V¨n Lª - Gi¸o dôc häc ®¹i c­¬ng - trang127). Trong c¸c nhiÖm vô cña gi¸o dôc th× nhiÖm vô gi¸o dôc trÝ tuÖ lµ mét nhiÖm vô quan träng nh»m ph¸t triÓn c¸c n¨ng lùc trÝ tôª chung cña häc sinh, tõ ®ã h×nh thµnh thÕ giíi quan khoa häc, gãp phÇn ph¸t triÓn nh©n c¸ch häc sinh. Nhµ tr­êng cã nhiÖm vô gi¸o dôc, thóc ®Èy sù ph¸t triÓn trÝ tuÖ cho häc sinh trong mäi m«i tr­êng, trong cuéc sèng x· héi ®êi th­êng. M«n Tin hoc còng gièng nh÷ng m«n häc kh¸c, c¨n cø vµo môc ®Ých, nhiÖm vô chung cña nÒn gi¸o dôc ®Ó x¸c ®Þnh ra nh÷ng nhiÖm vô cô thÓ cña m«n häc. Lµ mét m«n häc thuéc lÜnh vùc khoa häc tù nhiªn, nã cã nhiÖm vô cung cÊp nh÷ng tri thøc, kü n¨ng Tin häc c¬ b¶n. Trªn c¬ së ®ã, h×nh thµnh vµ ph¸t triÓn n¨ng lùc trÝ tuÖ chung nh­ t­ duy l«gic, ph©n tÝch, tæng hîp, kh¸i qu¸t ho¸, trõu t­îng ho¸... Gi¸o dôc trÝ tuÖ cã vai trß to lín, lµ c¬ së ®Ó ph¸t triÓn toµn diÖn con ng­êi, t¹o ra ph­¬ng tiÖn ®Ó con ng­êi tù hoµn thiÖn kh«ng ngõng. Trong nÒn kinh tÕ tri thøc, thêi ®¹i c¸ch m¹ng khoa häc kü thuËt vµ c«ng nghÖ, ®ßi hái cã sù thÝch øng nhanh cña mçi ng­êi. Nhê cã ph¸t triÓn trÝ tuÖ, con ng­êi ngµy cµng hoµn thiÖn ®­îc nh©n c¸ch cña m×nh, võa cã ®iÒu kiÖn tiÕp thu c¸c gi¸ trÞ cña nh©n lo¹i, cña d©n téc, võa cã kh¶ n¨ng gãp phÇn s¸ng t¹o ra c¸c gi¸ trÞ cña x· héi. “Cuéc sèng con ng­êi lµ mét qu¸ tr×nh t¹o ra gi¸ trÞ; gi¸o dôc cÇn ph¶i h­íng con ng­êi ®i tíi môc tiªu ®ã. C¸c ho¹t ®éng gi¸o dôc ph¶i nh»m thóc ®Èy qu¸ tr×nh t¹o gi¸ trÞ” (Tsunesaburo Makeguchi). N¨ng lùc ho¹t ®éng trÝ tuÖ ®­îc thÓ hiÖn ë n¨ng lùc vËn dông c¸c thao t¸c trÝ tuÖ, ®Æc biÖt lµ c¸c thao t¸c t­ duy. C¸c nhµ nghiªn cøu ®· chØ ra r»ng , gi÷a qu¸ tr×nh lÜnh héi tri thøc vµ ph¸t triÓn thÝ tuÖ cã sù thèng nhÊt víi nhau. Nh÷ng tri thøc ®­îc lÜnh héi lµ nhê c¸c thao t¸c trÝ tuÖ, ng­îc l¹i, c¸c thao t¸c trÝ tuÖ ®­îc h×nh thµnh vµ ph¸t triÓn trong qu¸ tr×nh lÜnh héi tri thøc. Sù ph¸t triÓn trÝ tuÖ ®­îc ®Æc tr­ng bëi sù tÝch luü vèn tri thøc vµ sù tÝch luü nh÷ng thao t¸c trÝ tuÖ thµnh th¹o, v÷ng ch¾c. V× vËy, cïng víi c¸c m«n häc kh¸c trong nhµ tr­êng THPT m«n Tin häc ph¶i lµ mét trong nh­ng m«n häc ®i ®Çu trong viÖc h×nh thµnh vµ ph¸t triÓn n¨ng lùc trÝ tuÖ chung cho häc sinh. Ch­¬ng ii: H×nh thµnh vµ ph¸t triÓn n¨ng lùc trÝ tuÖ chung cho häc sinh thpt th«ng qua gi¶ng d¹y ng«n ng÷ lËp tr×nh Pascal. ph­¬ng ph¸p h×nh thµnh vµ ph¸t triÓn n¨ng lùc trÝ tuÖ chung cho häc sinh thpt th«ng qua gi¶ng d¹y ng«n ng÷ lËp tr×nh pascal Vµo ®Çu n¨m 1971, b¶n m« t¶ ng«n ng÷ míi cña §¹i häc c«ng nghÖ Liªn bang Thôy SÜ ®­îc c«ng bè trong sè ®Çu tiªn cña t¹p chÝ Acta Informatica. Sù ra ®êi cña Pascal cã thÓ ®­îc tÝnh tõ thêi ®iÓm nµy. T¸c gi¶ cña nã, Gi¸o s­ Niclaus Wirth ®· chøng minh hïng hån cho thÕ giíi r»ng ch×a kho¸ tíi c¸c bÝ mËt cña m¸y tÝnh chÝnh lµ ë sù kÕt hîp hµi hoµ gi÷a To¸n häc, C«ng nghÖ vµ lËp tr×nh. Pascal lµ mét lo¹i ng«n ng÷ lËp tr×nh bËc cao ,nã cã nhiÒu ­u ®iÓm nh­: ng÷ ph¸p, ng÷ nghÜa ®¬n gi¶n râ rµng; cÊu tróc ch­¬ng tr×nh chÆt chÏ, dÔ hiÓu; ch­¬ng tr×nh dÔ söa, c¶i tiÕn. Trong ch­¬ng tr×nh Tin häc THPT Pascal träng ®iÓm ë ch­¬ng tr×nh líp 11. Tr­íc ®©y häc sinh míi chØ häc c¸c thao t¸c ®¬n gi¶n nh­ khëi ®éng m¸y, ®ãng m¸y. Lµm viÖc víi c¸c c©u lÖnh trong hÖ ®iÒu hµnh MS-DOS... Song, giê ®©y c¸c em b¾t ®Çu lµm quen víi c¸c thuËt to¸n, víi nh÷ng c©u lÖnh cã cÊu tróc, ch­¬ng tr×nh ®­îc viÕt trªn mét ng«n ng÷ cô thÓ. V× vËy, ®é phøc t¹p vµ khã kh¨n sÏ t¨ng lªn. Cã nghÜa lµ t­ duy trùc quan ph¶i nh­êng vÞ trÝ quan träng cho t­ duy logic, vµ c¸c thao t¸c gâ tay ®¬n gi¶n trªn bµn phÝm ®­îc nèi tiÕp bëi c¸c thao t¸c ph©n tÝch, tæng hîp... MÆt kh¸c, mÆc dï t­ duy, trÝ tuÖ cña häc sinh ®· ®­îc rÌn luyÖn vµ ph¸t triÓn qua c¸c m«n häc kh¸c nh­ng ®Õn khi cÇn vËn dông trong c¸c bµi to¸n Tin häc l¹i gÆp ph¶i nh÷ng bì ngì. Mét phÇn v× c¸ch thøc häc vµ suy nghÜ cña häc sinh cßn nhiÒu m¸y mãc, thiÕu linh ho¹t gi÷a viÖc vËn dông vµ chuyÓn ®æi gi÷a c¸c m«n häc. Mét phÇn v× Tin häc lµ mét m«n häc t­¬ng ®èi míi mÎ. V× vËy, bªn c¹nh nh÷ng c¸ch thøc vµ ph­¬ng ph¸p chung cña gi¶ng d¹y, m«n Tin häc cÇn chó ý vµo nh÷ng ®Æc ®iÓm riªng cña m×nh ®Ó cã thÓ gióp häc sinh lÜnh héi nh÷ng tri thøc Tin häc, th«ng qua ®ã h×nh thµnh vµ ph¸t triÓn n¨ng lùc trÝ tuÖ chung cho häc sinh. Trong qu¸ tr×nh gi¶ng d¹y, gi¸o viªn kh«ng ph¶i chØ h×nh thµnh, ph¸t triÓn vµ rÌn luyÖn tõng n¨ng lùc trÝ tuÖ riªng lÎ, còng kh«ng thÓ «m ®åm tÊt c¶ c¸c n¨ng lùc cïng mét lóc mµ ph¶i tuú vµo tõng lo¹i kiÕn thøc, tõng bµi häc cô thÓ ®Ó x¸c ®Þnh râ n¨ng lùc nµo lµ chñ yÕu, tõ ®ã t×m ra c¸ch thøc vµ biÖn ph¸p phï hîp. Cô thÓ víi ng«n ng÷ lËp tr×nh Pascal: ViÖc h×nh thµnh vµ ph¸t triÓn t­ duy logic vµ ng«n ng÷ chÝnh x¸c ë häc sinh cã thÓ thùc hiÖn theo ba h­íng liªn quan chÆt chÏ víi nhau: Lµm cho häc sinh n¾m v÷ng, hiÓu ®óng vµ sö dông nh÷ng liªn kÕt logic: AND(vµ), OR(hoÆc), NOT(phñ ®Þnh), NÕu... th×(C©u lÖnh IF...THEN), nh÷ng l­îng tån t¹i vµ kh¸i qu¸t... Ph¸t triÓn kh¶ n¨ng hiÓu cÊu tróc vµ c¸ch ho¹t ®éng cña mét ch­¬ng tr×nh, tr×nh bµy l¹i vµ ®éc lËp tiÕn hµnh x©y dùng ch­¬ng tr×nh. Ph¸t triÓn kh¶ n¨ng x©y dùng thuËt gi¶i b»ng c¸ch thøc diÔn t¶(LiÖt kª tõng b­íc, b»ng l­u ®å có ph¸p, b»ng c¸c cÊu tróc ®iÒu khiÓn, hay c©c ng«n ng÷ pháng tr×nh...) §Ó ph¸t triÓn kh¶ n¨ng suy ®o¸n vµ t­ëng t­îng ë häc sinh cÇn tËp trung vµo: Lµm cho häc sinh quen vµ cã ý thøc sö dông nh÷ng quy t¾c suy ®o¸n nh­: xÐt t­¬ng tù, kh¸i qu¸t hãa, quy l¹ vÒ quen... Tuy nhiªn, suy ®o¸n ph¶i cã c¨n cø, dùa trªn nh÷ng quy t¾c, kinh nghiÖm nhÊt ®Þnh. TËp luyÖn cho häc sinh kh¶ n¨ng h×nh dung ®­îc nh÷ng ®èi t­îng vµ quan hÖ gi÷a chóng, lµm viÖc víi chóng dùa trªn nh÷ng d÷ liÖu vµ c¸ch tæ chøc ch­¬ng tr×nh. §èi víi c¸c thao t¸c t­ duy cïng nh÷ng phÈm chÊt trÝ tuÖ viÖc ph¸t triÓn vµ rÌn luyÖn chóng kh«ng ®­îc ®Æt c« lËp mµ ph¶i ®Ó chóng trong mèi liªn hÖ víi nhau, trong qu¸ tr×nh vËn ®éng vµ ph¸t triÓn tõ thÊp ®Õn cao. Ph¶i th­êng xuyªn xen kÏ trong khi h×nh thµnh nh÷ng n¨ng lùc kh¸c v× qu¸ tr×nh t­ duy lµ mét qu¸ tr×nh thùc hiÖn c¸c thao t¸c trÝ tuÖ nhÊt ®Þnh, tuú thuéc vµo môc ®Ých, yªu cÇu cña t­ duy mµ thao t¸c nµo lµ chñ yÕu. Víi môc ®Ých cÇn h­íng tíi nh­ trªn, gi¸o viªn cÇn cã sù lùa chän phï hîp gi÷a hÖ thèng tri thøc vµ bµi tËp, nªn tho¶ m·n mét sè yªu cÇu sau: X¸c ®Þnh ®Çy ®ñ c¸c dÊu hiÖu ®Æc tr­ng cña kiÕn thøc phæ th«ng cÇn truyÒn thô. Lùa chän c¸c vÝ dô thÝch hîp, võa tÇm vµ n©ng cao dÇn ®Ó häc sinh n¾m v÷ng kiÕn thøc ®­îc lÜnh héi. C¸c bµi tËp cÇn ®­îc s¾p xÕp tõ dÔ ®Õn khã, tõ ®¬n gi¶n ®Õn phøc t¹p vÒ mèi quan hÖ gi÷a c¸c c©u lÖnh, ph­¬ng ph¸p vµ kh¸i niÖm ®Æc tr­ng sao cho xuÊt hiÖn c¸c t×nh huèng cã vÊn ®Ò ®Ó häc sinh tiÕn hµnh t­ duy, hiÓu ®­îc kiÕn thøc, n¾m v÷ng vµ cã kü n¨ng vËn dông kiÕn thøc ®ã. Chän c¸c bµi tËp cã néi dung thùc tÕ cña khoa häc kü thuËt, cña c¸c m«n häc kh¸c vµ ®Æc biÖt lµ thùc tÕ ®êi sèng hµng ngµy quen thuéc víi häc sinh. Chän c¸c bµi to¸n cã kü n¨ng rÌn luyÖn cho häc sinh kh¶ n¨ng tù t×m tßi, dù ®o¸n ®­îc nh÷ng tÝch chÊt, quy luËt cña hiÖn thùc kh¸ch quan, tù ph¸t hiÖn ra vÊn ®Ò vµ gi¶i quyÕt chóng. Sè l­îng bµi tËp ph¶i phï hîp víi thêi gian quy ®Þnh cña ch­¬ng tr×nh häc, thêi gian häc ë nhµ cña häc sinh. Mçi bµi tËp nhËn thøc lùa chän ph¶i lµ mét m¾t xÝch trong hÖ thèng bµi tËp, nã ph¶i ®ãng gãp ®­îc phÇn nµo ®ã vµo viÖc hoµn chØnh kiÕn thøc cña häc sinh, gióp häc sinh hiÓu ®­îc mèi quan hÖ gi÷a c¸c kh¸i niÖm, c©u lÖnh, ph­¬ng ph¸p, ch­¬ng tr×nh vµ v¹ch ra nh÷ng nÐt míi nµo ®ã ch­a ®­îc s¸ng tá. HÖ thèng bµi tËp lùa chän ph¶i gióp häc sinh n¾m ®­îc ph­¬ng ph¸p lËp tr×nh gi¶i c¸c bµi tËp cô thÓ, võa søc víi tõng lo¹i häc sinh. Mçi bµi tËp ph¶i ®em l¹i cho häc sinh nh÷ng ®iÒu míi l¹ nhÊt ®Þnh vµ khã kh¨n võa søc. Nh­ vËy, t¹o ®iÒu kiÖn ®Ó häc sinh n¾m v÷ng nh÷ng kiÕn thøc phæ th«ng, c¬ b¶n, cÇn thiÕt cña m«n Tin häc nãi chung, ng«n ng÷ lËp tr×nh Pascal nãi riªng lµ c¬ së, nÒn mãng cho viÖc h×nh thµnh vµ ph¸t triÓn n¨ng lùc chung cho häc sinh THPT. H×nh thµnh vµ ph¸t triÓn t­ duy logic, n¨ng lùc sö dông ng«n ng÷ chÝnh x¸c Ph¸t triÓn kh¶ n¨ng hiÓu vµ x©y dùng ch­¬ng tr×nh Khi lµm viÖc víi TP gåm cã nh÷ng phÇn viÖc sau: Tr­íc hÕt lµ so¹n th¶o ch­¬ng tr×nh. Trong TP, mét ch­¬ng tr×nh (hoÆc mét bé phËn cña nã) lµ mét tÖp (file) v¨n b¶n ®­îc so¹n th¶o theo ®óng c¸c quy ®Þnh cña TP. Sau khi ch­¬ng tr×nh ®· so¹n th¶o xong, ta dïng TP ®Ó kiÓm tra xem trong ch­¬ng tr×nh ®ã cã lçi có ph¸p hay kh«ng. NÕu cã lçi th× TP sÏ th«ng b¸o vÞ trÝ x¶y ra sai sãt vµ ®­a ra nguyªn nh©n gióp ta c¸ch thøc söa ch÷a. Khi kh«ng cßn th«ng b¸o lçi n÷a, nghÜa lµ ch­¬ng tr×nh ®· ®óng vÒ mÆt có ph¸p, ta cã thÓ ch¹y ch­¬ng tr×nh, n¹p d÷ liÖu vµ thu nhËn kÕt qu¶. Nh­ vËy, c«ng viÖc quan träng ®Çu tiªn lµ ph¶i biÕt c¸ch viÕt ®óng ch­¬ng tr×nh trªn TP. Do ®ã, gi¸o viªn ph¶i lµm cho häc sinh hiÓu ®­îc cÊu tróc vµ c¸ch thøc ho¹t ®éng cña mét ch­¬ng tr×nh, tõ ®ã häc sinh ph¶i tr×nh bµy l¹i vµ ®éc lËp x©y dùng ch­¬ng tr×nh. §Ó lµm ®­îc ®iÒu ®ã, gi¸o viªn cÇn tiÕn hµnh cho häc sinh t×m hiÓu vµ n¾m v÷ng mét sè kh¸i niÖm c¬ b¶n trong TP. Ch­¬ng tr×nh lµ sù diÔn ®¹t qu¸ tr×nh gi¶i c¸c bµi to¸n b»ng mét ng«n ng÷ ®Ó m¸y tÝnh ®iÖn tö thùc hiÖn mét c¸ch tù ®éng qu¸ tr×nh nµy. Mét ch­¬ng tr×nh TP ®Çy ®ñ cã cÊu tróc gåm 3 phÇn: PhÇn 1: PhÇn khai b¸o tiªu ®Ò cña ch­¬ng tr×nh: Dïng ®Ó ®Æt tªn cho ch­¬ng tr×nh. B¾t ®Çu b»ng tõ kho¸ PROGRAM. KÕt thóc b»ng dÊu chÊm phÈy. Cã thÓ cã hoÆc kh«ng trong ch­¬ng tr×nh. Nªn ®Æt tªn ch­¬ng tr×nh cã ý nghÜa ph¶n ¸nh néi dung ch­¬ng tr×nh. C¸ch khai b¸o: PROGRAM Ten_chuong_trinh; VÝ dô: Program Tinh_dien_tich; Program TinhDienTich; PhÇn 2: PhÇn khai b¸o: Dïng ®Ó m« t¶ d÷ liÖu, c¸c ®èi t­îng cña bµi to¸n ®Ó ch­¬ng tr×nh xö lý. Trong mét ch­¬ng tr×nh cô thÓ c¸c khai b¸o cã thÓ cã hoÆc kh«ng, nh­ng nÕu cã ph¶i tu©n theo ®óng trËt tù cña cÊu tróc. CÊu tróc ®Çy ®ñ cña phÇn khai b¸o nh­ sau: USES { khai b¸o c¸c UNIT } . . . LABEL { khai b¸o nh·n } . . . CONST { khai b¸o h»ng } . . . TYPE { khai b¸o kiÓu d÷ liÖu } . . . VAR { khai b¸o biÕn } . . . PROCEDURE { khai b¸o ch­¬ng tr×nh con d¹ng thñ tôc } FUNTION { khai b¸o ch­¬ng tr×nh con d¹ng hµm } VÝ dô: Uses crt; Const n=5; Var x,y:integer; PhÇn 3: PhÇn th©n ch­¬ng tr×nh: Gåm c¸c lÖnh ®Ó gi¶i quyÕt bµi to¸n. PhÇn nµy b¾t buéc ph¶i cã. CÊu tróc: BEGIN END. Trong c¸c d¹ng tri thøc truyÒn thô cho häc sinh cã tri thøc chuÈn. Tri thøc chuÈn liªn quan ®Õn nh÷ng quy ®Þnh, nh÷ng chuÈn mùc nhÊt ®Þnh, ch¼ng h¹n viÕt mét ch­¬ng tr×nh ®Ó ch¹y thö trªn m¸y tr×nh tù quy ®Þnh chÆt chÏ cña mét ng«n ng÷ lËp tr×nh nh­ thÕ nµo? Sö dông mét c©u lÖnh tu©n theo có ph¸p ra sao? Nh­ vËy, muèn viÕt ®­îc mét ch­¬ng tr×nh trªn m«i tr­êng TP ph¶i tu©n theo nh÷ng quy t¾c trªn. §èi víi häc sinh, khi míi b¾t ®Çu lµm quen víi mét ng«n ng÷ lËp tr×nh bËc cao cã cÊu tróc chÆt chÏ nh­ TP mµ ngay tõ ®Çu ta ®­a ra mét lo¹t c¸c quy t¾c nh­ vËy vµ yªu cÇu tu©n theo th× sÏ lµm cho häc sinh r¬i vµo t×nh thÕ thô ®éng, ph¶i ghi nhí m¸y mãc. Do ®ã, tr­íc khi ®­a ra nh÷ng quy t¾c, gi¸o viªn cã thÓ lÊy mét vµi vÝ dô ®¬n gi¶n vÒ ch­¬ng tr×nh, gi¶i thÝch tõng phÇn trong ®ã, cã nghÜa lµ chóng ta ®i “ tõ trùc quan sinh déng ®Õn t­ duy trõu t­îng”, ®iÒu nµy sÏ gióp häc sinh b­íc ®Çu m­êng t­îng vÒ mét ch­¬ng tr×nh lµ thÕ nµo. Vi dô1: Gi¶ sö ta muèn viÕt ra mµn h×nh dßng ch÷ “Chao cac ban lop 11A” th× ch­¬ng tr×nh sÏ ®­îc viÕt ®Çy ®ñ nh­ sau: PROGRAM In_chu; (1) BEGIN (2) WRITE(‘Chao cac ban lop 11A’); (3) END. (4) Sau khi viÕt ch­¬ng tr×nh xong ta cã thÓ gi¶i thÝch nh­ sau: Dßng (1): Dïng ®Ó khai b¸o tªn ch­¬ng tr×nh, cã thÓ cã hoÆc kh«ng, nÕu cã th× cÇn ph¶i viÕt ®óng d¹ng sau: B¾t ®Êu b»ng tõ kho¸ PROGRAM tiÕp theo lµ kÝ tù trèng, sau ®ã lµ mét tªn do ng­êi lËp tr×nh tù ®Æt chØ gåm c¸c ch÷ c¸i, ch÷ sè, kÝ tù _ vµ ph¶i b¾t ®Çu b»ng mét ch÷ c¸i, ®é dµi tuú ý nh­ng chØ cã 63 kÝ tù ®Çu tiªn cã nghÜa, tªn kh«ng ®­îc trïng víi tõ kho¸. Dßng nµy kÕt thóc b»ng dÊu chÊm phÈy ( ; ). Dßng (2),(4): B¾t buéc ph¶i cã, thÓ hiÖn viÖc b¾t ®Çu vµ kÕt thóc ch­¬ng tr×nh. Dßng (3): Lµ lÖnh ®Ó viÕt ra mµn h×nh dßng ch÷ “Chao cac ban lop 11A”. Tõ ®©y gi¸o viªn cã thÓ giíi thiÖu qua vÒ phÇn ®Æt tªn. Tªn trong TP lµ mét d·y liªn tiÕp kh«ng qu¸ 127 ký tù, bao gåm ch÷ c¸i, ch÷ sè, dÊu g¹ch d­íi nh­ng ph¶i b¾t ®Çu b»ng ch÷ c¸i hoÆc dÊu g¹ch d­íi.(SGK thÝ ®iÓm Tin häc 11). TP kh«ng ph©n biÖt ch÷ c¸i hoa hoÆc th­êngtrong tªn.TP ph©n biÖt ba lo¹i tªn: Tªn dµnh riªng (Tõ kho¸) : Program, uses, const… Tªn chuÈn : ý nghÜa c¸c tªn chuÈn ®­îc quy ®Þnh trong c¸c th­ viÖn (Unit). Tªn do ng­êi lËp tr×nh tù ®Æt : kh«ng ®­îc trïng víi tõ kho¸. VÝ dô 2: Gi¶ sö ta muèn tÝnh diÖn tÝch h×nh vu«ng víi c¹nh bÊt kú. NÕu gi¶i theo to¸n häc th× ta gäi c¹nh cña h×nh vu«ng lµ a, sau ®ã ta tÝnh diÖn tÝch theo c«ng thøc s = a.a Ch­¬ng tr×nh trong TP ®­îc viÕt nh­ sau víi c¹nh h×nh vu«ng nhËp tõ bµn phÝm: PROGRAM DT_hinh_vuong; (1) USES CRT; (2) VAR a,s: REAL; (3) BEGIN (4) CLRSCR; (5) WRITE(‘Nhap canh hinh vuong a=’); READLN(a); (6) s:=a*a; (7) WRITELN(‘Dien tich hinh vuong la s=’,s:5:2); (8) READLN; (9) END. (10) So víi vÝ dô tr­íc th× ë ch­¬ng tr×nh nµy xuÊt hiÖn phÇn khai b¸o Unit vµ biÕn. C¸c dßng (1),(4),(10) cã t¸c dông gièng nh­ vÝ dô 1; cßn phÇn th©n ch­¬ng tr×nh th× phøc t¹p h¬n. Dßng (5): Lµ lÖnh xo¸ mµn h×nh, lÖnh nµy thùc hiÖn ®­îc lµ nhê phÇn khai b¸o ë dßng (2) Dßng (6): ViÕt ra dßng th«ng b¸o vµ yªu cÇu nhËp c¹nh h×nh vu«ng. Dßng (7): TÝnh diÖn tÝch h×nh vu«ng, c¸c biÕn sö dông trong ch­¬ng tr×nh ®­îc khai b¸o ë dßng (3). Dßng (8): ViÕt ra dßng th«ng b¸o diÖn tÝch h×nh vu«ng. Dßng (10): Dõng thùc hiÖn ch­¬ng tr×nh, chê ng­êi sö dông Ên phÝm míi tiÕp tôc; Nh­ vËy, qua nh÷ng vÝ dô cô thÓ vÒ ch­¬ng tr×nh häc sinh b¾t ®Çu h×nh thµnh t­ duy vÒ c¸ch viÕt mét ch­¬ng tr×nh: PhÇn nµo lµ c¸c ch­¬ng tr×nh ®Òu cã, ch­¬ng tr×nh nµy th× cã phÇn khai b¸o biÕn, ch­¬ng tr×nh kia th× kh«ng... Sau ®ã gi¸o viªn sÏ ®­a ra nh÷ng quy t¾c viÕt ch­¬ng tr×nh. Tõ nh÷ng quy t¾c ®ã sÏ dÉn d¾t häc sinh ®Õn nh÷ng yªu cÇu c¬ b¶n ®Ó cã thÓ x©y dùng ®­îc mét ch­¬ng tr×nh trong Pascal: KiÓu d÷ liÖu (§¬n gi¶n chuÈn, cã cÊu tróc). C¸c cÊu tróc ®iÒu khiÓn. Tæ chøc ch­¬ng tr×nh con. VÝ dô 3: H·y s¾p xÕp nh÷ng tõ kho¸, nh÷ng ®o¹n c©u lÖnh vµ nh÷ng ®o¹n khai b¸o sau ®©y ®Ó ®­îc mét ch­¬ng tr×nh gi¶i ph­¬ng tr×nh bËc nhÊt : ax + b = 0 víi a, b lµ hai sè tuú ý (thªm dÊu chÊm, phÈy hoÆc chÊm phÈy vµo nh÷ng chç cÇn thiÕt). PROGRAM PTB1; READLN(a,b) VAR a,b: REAL; BEGIN IF a 0 THEN WRITELN(‘Moi so deu la nghiem’) END ELSE IF b = 0 THEN WRITELN(‘Nghiem la:’,-b/a:5:2) READLN; ELSE WRITELN(‘PT vo nghiem’) Sau khi häc sinh ®· n¾m ®­îc cÊu tróc cña ch­¬ng tr×nh vµ có ph¸p cña c©u lÖnh IF, vËn dông cïng thuËt to¸n gi¶i ph­¬ng tr×nh bËc nhÊt th× häc sinh dÔ dµng gi¶i quyÕt ®­îc bµi tËp trªn. Ch­¬ng tr×nh ®­îc s¾p xÕp l¹i nh­ sau: PROGRAM PTB1; VAR a,b: REAL; BEGIN READLN(a,b); IF a 0 THEN WRITELN(‘Nghiem la:’,-b/a:5:2) ELSE IF b = 0 THEN WRITELN(‘Moi so deu la nghiem’) ELSE WRITELN(‘PT vo nghiem’); READLN; END. Trªn c¬ së nh÷ng kh¸i niÖm, nh÷ng c©u lÖnh ®· häc, gi¸o viªn cÇn cho häc sinh nhËn d¹ng vµ thÓ hiÖn mét sè ch­¬ng tr×nh. §iÒu nµy cã hai t¸c dông râ nÐt: thø nhÊt, gióp häc sinh cñng cè l¹i kiÕn thøc, c¸ch thøc viÕt mét ch­¬ng tr×nh; thø hai n©ng t­ duy logic cña häc sinh lªn mét nÊc míi, bëi t­ duy logic lµ lo¹i t­ duy mµ viÖc gi¶i quyÕt nhiÖm vô ®­îc dùa trªn sù sö dông c¸c kh¸i niÖm, c¸c kÕt cÊu logic, ®­îc tån t¹i vµ vËn hµnh nhê ng«n ng÷. §Ó cã thÓ nhËn d¹ng vµ thÓ hiÖn mét ch­¬ng tr×nh, häc sinh kh«ng nh÷ng chØ nhí mµ cßn ph¶i hiÓu c¸ch thøc ho¹t ®éng cña c©u lÖnh. VÝ dô 4: Cho ch­¬ng tr×nh sau: PROGRAM Khong_ten; VAR a, b, Max : INTEGER; BEGIN WRITE(‘Nhap 2 so’); (1) READLN(a, b); (2) Max := a; (3) IF Max < b THEN Max := b; (4) WRITE(Max); (5) READLN; END. H·y cho biÕt ch­¬ng tr×nh trªn lµm viÖc g×? Ph©n tÝch ho¹t ®éng cña ch­¬ng tr×nh nh­ sau: Dßng (1): ViÕt lªn mµn h×nh dßng th«ng b¸o yªu cÇu nhËp gi¸ trÞ cho hai biÕn. Dßng (2): NhËp gi¸ trÞ cho hai biÕn a, b. Dßng (3): G¸n gi¸ trÞ biÕn Max = a. Dßng (4): NÕu gi¸ trÞ cña Max < b th× g¸n Max = b. Dßng (5): In ra mµn h×nh gi¸ trÞ cña Max. Nh­ vËy, ch­¬ng tr×nh trªn dïng ®Ó in ra mµn h×nh sè lín nhÊt trong hai sè a, b. RÌn luyÖn cho häc sinh c¸ch nhËn d¹ng mét ch­¬ng tr×nh lµ mét lÇn cho häc sinh kiÓm nghiÖm l¹i møc ®é v÷ng ch¾c n¾m c¸c kh¸i niÖm, c©u lÖnh. Häc sinh sÏ hiÓu h¬n vÒ c©u lÖnh vµ c¸c kh¸i niÖm khi xÐt chóng trong c¶ qu¸ tr×nh vËn ®éng cña ch­¬ng tr×nh, trong mèi quan hÖ gi÷a chóng víi c¸c c©u lÖnh, víi cÊu tróc cña toµn bé ch­¬ng tr×nh. VÝ dô 5: Ch­¬ng tr×nh sau cã thùc hiÖn ®­îc kh«ng? NÕu cã, cho biÕt kÕt qu¶? PROGRAM Vi_du_5; VAR a,b :BOOLEAN; x : REAL; BEGIN a:= True; b:= a; x:= 0; (1) WHILE a OR b DO (2) BEGIN x :=2*x + 1; (3) IF x > 0 THEN (4) BEGIN a := False; (5) IF x > 100 THEN b := False; (6) END; WRITE(x : 8 : 0); (7) END; READLN; END. Tr­íc hÕt gi¸o viªn h­íng dÉn häc sinh nhËn d¹ng tõng dßng lÖnh. NÕu häc sinh n¾m ®­îc qu¸ tr×nh m¸y tÝnh thùc hiÖn ch­¬ng tr×nh th× sÏ tr¸nh ®­îc nh÷ng sai lÇm ngé nhËn. Hä sÏ n¾m ®­îc tõng b­íc cña qu¸ tr×nh vµ kÕt qu¶ lµm viÖc víi tõng lÖnh: LÖnh g¸n, lÖnh rÏ nh¸nh, lÖnh lÆp. §iÒu ®ã sÏ gióp häc sinh hiÓu ®­îc viÖc kiÓm so¸t c¸c kh¶ n¨ng cã thÓ x¶y ra víi c¸c d÷ liÖu khi lµm viÖc, c©u lÖnh ®iÒu kiÖn, vai trß cña biÓu thøc ®iÒu khiÓn chu tr×nh lÆp, sù kÕt thóc chu tr×nh . . . Dßng (1): M¸y lÇn l­ît g¸n a = True, b = a (g¸n ®­îc nh­ vËy v× biÕn b cïng kiÓu víi biÕn a), vµ x = 0; Dßng (2): Thùc hiÖn vßng lÆp While víi ®iÒu kiÖn a hoÆc b ®ang ®óng. Trong While cã nhiÒu lÖnh nªn c¸c lÖnh ®­îc ®Æt trong khèi Begin . . . End; Dßng (3): G¸n x = 2*x + 1; ë l­ît ®Çu tiªn m¸y sÏ tÝnh x = 2*0 + 1 =1; Dßng (4): NÕu x > 0 th× thùc hiÖn c¸c lÖnh sau Then. Lóc nµy x = 1 > 0 tho¶ m·n ®iÒu kiÖn nªn m¸y sÏ thùc hiÖn lÖnh trong khèi Begin . . .End; Dßng (5): G¸n a = False; Dßng (6): NÕu x > 100 th× g¸n b = False; Lóc nµy x = 1 nªn lÖnh nµy ch­a ®­îc thùc hiÖn. Dßng (7): ViÕt x ra mµn h×nh. Nh­ vËy , a ®· nhËn gi¸ trÞ False, cßn b vÉn ®ang nhËn gi¸ trÞ True nªn m¸y quay trë l¹i thùc hiÖn vßng lÆp trªn tíi khi b nhËn gi¸ trÞ False. Sè lÇn lÆp lµ 7, kÕt qu¶ m¸y sÏ in lªn mµn h×nh c¸c sè: 1 3 7 15 31 63 127 N¾m ®­îc qu¸ tr×nh thùc hiÖn ch­¬ng tr×nh lµ gãp phÇn vµo x©y dùng ch­¬ng tr×nh, thÓ hiÖn tÝn ®óng ®¾n cña ch­¬ng tr×nh. Ngoµi ra, nã cßn gióp ta h­íng c¶i tiÕn ch­¬ng tr×nh lµm cho sè phÐp to¸n mµ ch­¬ng tr×nh ph¶i thùc hiÖn nhá ®i, gióp ta dÔ ph¸t hiÖn chç sai cña thuËt gi¶i hoÆc d÷ liÖu khi kiÓm thö ch­¬ng tr×nh. Cã nhiÒu c¸ch ®Ó rÌn luyÖn vµ ph¸t triÒn kh¶ n¨ng hiÓu ch­¬ng tr×nh cña häc sinh. Víi bµi to¸n nµy th× gi¸o viªn cho häc sinh nhËn d¹ng ch­¬ng tr×nh, víi bµi to¸n kh¸c l¹i yªu cÇu häc sinh thÓ hiÖn ch­¬ng tr×nh. Tuú vµo tr­êng hîp cô thÓ gi¸o viªn x¸c ®Þnh nªn sö dông c¸ch nµo cho hîp lý víi néi dung bµi häc, thêi gian cho phÐp . . . NhËn d¹ng vµ thÓ hiÖn lµ hai ho¹t ®éng theo chiÒu h­íng tr¸i ng­îc nhau liªn hÖ víi mét ®Þnh nghÜa, mét c©u lÖnh, mét ch­¬ng tr×nh hay mét ph­¬ng ph¸p. Hai ho¹t ®éng nµy liªn quan mËt thiÕt víi nhau, th­êng hay ®an kÕt vµo nhau. Cïng víi viÖc thÓ hiÖn mét ch­¬ng tr×nh ( bao hµm trong ®ã viÖc thÓ hiÖn mét kh¸i niÖm, mét c©u lÖnh ) th­êng diÔn ra sù nhËn d¹ng víi t­ c¸ch lµ ho¹t ®éng kiÓm tra. VÝ dô 6: Hai « t« chuyÓn ®éng th¼ng ®Òu, cïng khëi hµnh mét lóc ë hai bÕn c¸ch nhau s km. NÕu chóng ®i ng­îc chiÒu nhau th× sau h giê hai xe sÏ gÆp nhau. NÕu chóng ®i cïng chiÒu th× sau t giê xe ®i nhanh sÏ ®uæi kÞp xe ®i chËm. LËp ch­¬ng tr×nh nhËp s, h, t tõ bµn phÝm, sau ®ã ®­a ra mµn h×nh vËn tèc cña mçi xe. Ch¹y thö víi s = 40; h = 0,4 vµ t = 2. (VËt lÝ líp 10, ch­¬ng I) §Ó x©y dùng ch­¬ng tr×nh, gi¸o viªn cã thÓ tiÕn hµnh mét vµi gîi ý sau: Gäi vËn tèc cña xe ®i nhanh lµ x (km/h) Gäi vËn tèc cña xe ®i chËm lµ y (km/h). V× hai xe chuyÓn ®éng th¼ng ®Òu nªn qu·ng ®­êng lÇn l­ît hai xe ®i ®­îc khi chuyÓn ®éng ng­îc chiÒu lµ: h.x vµ h.y (km), suy ra: h.x + h.y = s T­¬ng tù, ta cã: t.x – t.y = s §©y lµ hÖ hai ph­¬ng tr×nh tuyÕn tÝnh hai Èn x vµ y. Ph­¬ng ph¸p gi¶i lµ tÝnh c¸c ®Þnh thøc: d := h.(-t) – t.h dx := s.(-t) – s.h dy := h.s – t.s NÕu d 0 th× cã nghiÖm duy nhÊt x = dx/d, y = dy/d.Tr­êng hîp d = 0, nÕu dx = 0 vµ dy = 0 th× hÖ ph­¬ng tr×nh cã v« sè nghiÖm, tr¸i l¹i th× hÖ ph­¬ng tr×nh v« nghiÖm. Nh­ vËy, tõ bµi to¸n t×m vËn tèc cña hai « t« chuyÓn ®éng ®Òu ta ®­a vÒ bµi to¸n gi¶i hÖ ph­¬ng tr×nh. Ch­¬ng tr×nh: PROGRAM Van_toc; USES CRT; VAR h, s, t, d, dx, dy : REAL; BEGIN CLRSCR; WRITE(‘Nhap s, h, t =’ ); READLN(s, h, t); d := h*(-t) – t*h; dx := s*(-t) – s*h; dy := h*s – t*s; IF d = 0 THEN BEGIN IF (dx = 0) AND (dy = 0) THEN WRITE(‘Hai oto co van toc bat ky’) ELSE WRITE(‘Khong tim duoc van toc hai oto’); END ELSE WRITE(‘Van toc cua 2 oto la:’, dx/d:1:5,’km/h’, dy/d:1:5,’km/h’); READLN; END. Ta d¹y lËp tr×nh cho häc sinh theo quan ®iÓm giao tiÕp gi÷a ng­êi víi m¸y. CÇn tËp d­ît cho häc sinh thiÕt lËp nh÷ng mµn h×nh cã v¨n b¶n th«ng b¸o, t¹o nªn sù ®èi tho¹i gi÷a ng­êi vµ m¸y. Ch­¬ng tr×nh mµ chóng ta lËp ra, nãi chung lµ kh«ng ph¶i chØ ®Ó riªng chóng ta dïng, h¬n n÷a kh«ng ph¶i lóc nµo ta còng nhí ®­îc ch­¬ng tr×nh nµo lµm viÖc g×. V× vËy, tr­íc mçi lÇn m¸y ®ßi n¹p d÷ liÖu tõ bµn phÝm, ta ph¶i cho m¸y in th«ng b¸o nh¾c ng­êi dïng vµo d÷ liÖu kiÓu g×, sè l­îng bao nhiªu. Còng nh­ vËy, mçi khi m¸y th«ng b¸o kÕt qu¶ lªn mµn h×nh, ta còng cho m¸y th«ng b¸o ý nghÜa gi¸ trÞ mµ m¸y sÏ in. NÕu gi¸ trÞ cña ®¹i l­îng in thuéc kiÓu sè thùc th× ta nªn chØ ®Þnh d¹ng in dÊu chÊm phÈy tÜnh ®Ó ng­êi dïng cã ®­îc sù quen thuéc. H¬n n÷a ta còng quan t©m ®Õn nghÜa cña c©u th«ng b¸o trªn mµn h×nh, ch¼ng h¹n trong bµi to¸n t×m c¸c phÇn tö trong m¶ng b»ng mét sè nµo ®ã. NÕu th«ng b¸o “C¸c phÇn tö cña m¶ng b»ng phÇn tö ®· cho lµ:” mµ trªn mµn h×nh l¹i kh«ng cã phÇn tö nµo hoÆc chØ cã mét phÇn tö th× c©u th«ng b¸o kh«ng hîp víi nghÜa tiÕng ViÖt. V× vËy mµ ta ph¶i ®­a vµo mét biÕn ®Õm d ghi sè phÇn tö cña m¶ng b»ng sè cÇn t×m. NÕu d = 0 th× ph¶i th«ng b¸o trong m¶ng kh«ng cã phÇn tö nµo b»ng sè cÇn t×m. NÕu d = 1 th× ph¶i th«ng b¸o trong m¶ng chØ cã mét phÇn tö b»ng sè cÇn t×m . . .Nh­ vËy lµ ®· gãp phÇn h×nh thµnh vµ ph¸t triÓn viÖc sö dông ng«n ng÷ chÝnh x¸c. Ph¸t triÓn kh¶ n¨ng hiÓu vµ vËn dông nh÷ng liªn kÕt logic VÝ dô 1: Ch­¬ng tr×nh sau cã thùc hiÖn ®­îc kh«ng? NÕu cã, cho biÕt kÕt qu¶? PROGRAM VÝ_du_1; BEGIN WRITELN(13 and ‘1’>’2’); END. Ch­¬ng tr×nh kh«ng thùc hiÖn ®­îc v× lçi phÐp to¸n trong biÓu thøc: 13 and ‘1’>’2’ , phÐp to¸n logic cã thø tù ­u tiªn tr­íc phÐp so s¸nh. VÝ dô 3: Ch­¬ng tr×nh sau cã thùc hiÖn ®­îc kh«ng? NÕu cã h·y cho biÕt kÕt qu¶? PROGRAM Vidu3; BEGIN WRITE((1=1))); READLN; END. §Ó biÕt ch­¬ng tr×nh trªn thùc hiÖn ®­îc hay kh«ng häc sinh sÏ lôc l¹i trong trÝ nhí nh÷ng kiÕn thøc vÒ c¸c phÐp to¸n logic vµ thø tù thùc hiÖn trong mét biÓu thøc. Gi¸o viªn nªn yªu cÇu häc sinh thùc hiÖn tÝnh to¸n lÇn l­ît c¸c phÐp to¸n trong biÓu thøc nh­ sau: 15 div 4>=1 cho gi¸ trÞ True. 1<=2 cho gi¸ trÞ True. not True cho gi¸ trÞ False. not True or (15 div 4>=1) , tøc False or True cho gi¸ trÞ True. (1=1)) , tøc True and True cho gi¸ trÞ True. Do ®ã, kÕt qu¶ lµ m¸y sÏ in lªn mµn h×nh dßng: True. §Ó häc sinh dÔ h×nh dung ta cã thÓ tr×nh bµy theo c¸ch sau: BiÓu_thøc=(1=1)) T T F T T 2.3. Ph¸t triÓn kh¶ n¨ng hiÓu vµ x©y dùng thuËt gi¶i §Ó h×nh thµnh vµ ph¸t triÓn t­ duy logic, n¨ng lùc sö dông ng«n ng÷ chÝnh x¸c cho häc sinh, bªn c¹nh viÖc ph¸t triÓn kh¶ n¨ng hiÓu ch­¬ng tr×nh, tr×nh bµy l¹i vµ ®éc lËp tiÕn hµnh x©y dùng ch­¬ng tr×nh, cßn cÇn lµm cho häc sinh hiÓu vµ vËn dông c¸c gi¶i thuËt. Gi¶i thuËt (hay cßn gäi lµ ThuËt to¸n) lµ mét hÖ thèng chÆt chÏ vµ chÝnh x¸c c¸c quy t¾c nh»m x¸c ®Þnh mét d·y c¸c thao t¸c cÇn thùc hiÖn sao cho sau mét sè h÷u h¹n b­íc ta ®¹t ®­îc môc tiªu ®Þnh tr­íc. ThuËt to¸n cã 6 ®Æc tr­ng sau: TÝnh x¸c ®Þnh: ë mçi b­íc cña thuËt to¸n c¸c thao t¸c ph¶i hÕt søc râ rµng kh«ng thÓ g©y nªn sù nhËp nh»ng, lÉn lén, tuú tiÖn. Nãi c¸ch kh¸c lµ trong cïng mét ®iÒu kiÖn, hai bé xö lý cïng thùc hiÖn mét b­íc cña thuËt to¸n th× ph¶i cho cïng mét kÕt qu¶. TÝnh h÷u h¹n dõng: Mét thuËt to¸n bao giê còng ph¶i dõng l¹i sau mét sè h÷u h¹n b­íc. TÝnh ®óng ®¾n: Sau khi thùc hiÖn tÊt c¶ c¸c lÖnh cña thuËt to¸n ta ph¶i ®­îc kÕt qu¶ mong muèn, kÕt qu¶ ®ã th­êng ®­îc x¸c ®Þnh theo ®Þnh nghÜa cã tr­íc. TÝnh cã ®¹i l­îng vµo vµ ra: Khi b¾t ®Çu mét thuËt to¸n bao giê còng nhËn c¸c ®¹i l­îng vµo mµ ta th­êng gäi lµ d÷ liÖu vµo, c¸c d÷ liÖu th­êng ®­îc lÊy tõ mét tËp x¸c ®Þnh cho tr­íc. Sau khi kÕt thóc, thuËt to¸n bao giê còng cho ta mét sè ®¹i l­îng ra tuú theo chøc n¨ng mµ thuËt to¸n ®¶m nhiÖm, th­êng ®­îc gäi lµ d÷ liÖu ra. TÝnh phæ dông: ThuËt to¸n kh«ng chØ ®Ó gi¶i mét bµi to¸n riªng lÎ, mµ ph¶i ®­îc ¸p dông ®Ó gi¶i mét líp c¸c bµi to¸n. TÝnh hiÖu qu¶: TÝnh hiÖu qu¶ cña mét thuËt to¸n ®­îc ®¸nh gi¸ dùa trªn nh÷ng tiªu chuÈn sau: Dung l­îng bé nhí cÇn cã. Sè l­îng c¸c phÐp tÝnh cÇn ph¶i thùc hiÖn. Thêi gian cÇn thiÕt ®Ó ch¹y. Cã dÔ cµi ®Æt lªn m¸y kh«ng? Cã dÔ hiÓu ®èi víi con ng­êi kh«ng? X©y dùng thuËt gi¶i lµ mét c«ng viÖc hÕt søc quan träng, nã chiÕm kho¶ng 80% c«ng søc cña ng­êi lËp tr×nh. §èi víi häc sinh, tr­íc hÕt lµ gi¸o viªn ®Æt ra yªu cÇu häc sinh hiÓu ®­îc mét sè thuËt to¸n cña nh÷ng bµi to¸n ®¬n gi¶n, sau ®ã n©ng cao yªu cÇu b»ng c¸ch ®Ó häc sinh viÕt thuËt gi¶i b»ng s¬ ®å khèi hoÆc b»ng ng«n ng÷ pháng tr×nh, tøc lµ x©y dùng mét d·y c¸c t¸c ®éng ®Ó m¸y tÝnh cã thÓ thùc hiÖn nh»m ®¹t ®Õn mét kÕt qu¶ x¸c ®Þnh gäi lµ ®iÒu kiÖn ra, xuÊt ph¸t tõ mét t×nh huèng cho tr­íc gäi lµ ®iÒu kiÖn vµo. NÕu cã thÓ ®­îc th× cho häc sinh viÕt nhiÒu thuËt gi¶i cho cïng mét bµi to¸n vµ t×m thuËt gi¶i tèt h¬n vÒ yªu cÇu nµo ®ã. B­íc ®Çu ®Ó häc sinh lµm quen víi “thuËt gi¶i” gi¸o viªn cã thÓ lÊy vÝ dô trong thùc tÕ nh­: Tr×nh bµy gi¶i thuËt t×m m­în mét quyÓn s¸ch ë th­ viÖn, biÕt tªn t¸c gi¶ nh­ng kh«ng nhí chÝnh x¸c tªn s¸ch. Chóng ta ®­a vÝ dô nh­ vËy ®Ó häc sinh cã thÓ dÔ dµng suy luËn ®­îc nh÷ng c«ng viÖc cÇn thùc hiÖn v× cã thÓ ®©y lµ mét t×nh huèng mµ c¸c em ®· gÆp ph¶i. Quan träng h¬n, vÝ dô nµy sÏ gióp häc sinh nhËn thøc ®­îc logic vÊn ®Ò, c«ng viÖc nµo ph¶i tiÕn hµnh tr­íc, c«ng viÖc nµo lµ lµm sau. PhÇn lín c¸c häc sinh ®Òu nªu ®­îc c¸c b­íc sau: B­íc 1: §Õn th­ viÖn, t×m ®Õn tñ ph©n lo¹i s¸ch theo tªn t¸c gi¶. Theo c¸ch s¾p xÕp cña thø tù tõ diÓn, t×m ng¨n cã ch÷ c¸i trïng víi ch÷ c¸i ®Çu cña tªn t¸c gi¶. B­íc 2: Rót ng¨n nµy, theo thø tù tõ ®iÓn t×m tªn t¸c gi¶. B­íc 3: NÕu kh«ng t×m thÊy tªn t¸c gi¶ th× sang b­íc 10. B­íc 4: Theo thø tù tõ ®iÓn t×m tªn c¸c s¸ch cña t¸c gi¶ nµy. B­íc 5: NÕu kh«ng t×m thÊy tªn s¸ch th× sang b­íc 10. B­¬c 6: Ghi l¹i tªn s¸ch, tªn t¸c gi¶, m· s¸ch vµo phiÕu m­în. B­íc 7: §­a cho nh©n viªn th­ viÖn, chê tr¶ lêi. B­íc 8: NÕu tr¶ lêi kh«ng cßn th× sang b­íc 10. B­íc 9: NÕu tr¶ lêi cã thi cÇm s¸ch vÒ sö dông. B­íc 10: KÕt thóc. VÝ dô1: T×m ­íc chung lín nhÊt cña 2 sè nguyªn d­¬ng a vµ b. §©y lµ mét bµi to¸n häc sinh ®· b¾t gÆp tõ khi cßn lµ häc sinh líp 6 tuy nhiªn khi chuyÓn sang ng«n ng÷ cña Tin häc(thuËt gi¶i) th× c¸c em cßn nhiÒu lóng tóng. Sau ®©y lµ 2 gi¶i thuËt cña bµi to¸n ®­îc diÔn t¶ b»ng l­u ®å khèi: Input: a, b nguyªn d­¬ng. BEGIN r := a mod b r := 0 a := b b := r UCLN lµ b END Output: UCLN cña a vµ b. ThuËt to¸n 1: BEGIN a, b a b a > b UCLN lµ a END b := b - a a := a - b ThuËt to¸n 2: Sau khi häc sinh ®· n¾m v÷ng thuËt gi¶i, gi¸o viªn yªu cÇu häc sinh nh×n vµo s¬ ®å khèi thùc hiÖn tõng c©u lÖnh mét. Víi thuËt to¸n 1: B¾t ®Çu NhËp a,b; While b > 0 do B¾t ®Çu TÝnh r :=a mod b; G¸n a := b; G¸n b := r; KÕt thóc; XuÊt UCLN cña a vµ b; KÕt thóc. Ch­¬ng tr×nh: PROGRAM UCLN1; VAR a, b, r : integer; BEGIN Write(‘Nhap a, b=’); Readln(a,b); While b > 0 do Begin r := a mod b; a := b; b := r; End; Write (‘UCLN la :’ , a); Readln; END. Víi thuËt to¸n 2: B¾t ®Çu NhËp a, b; While a b do If a > b then g¸n a := a – b Else g¸n b := b – a; XuÊt UCLN cña a vµ b; KÕtthóc Ch­¬ng tr×nh: PROGRAM UCLN2; VAR a , b :integer; BEGIN Write(‘Nhap a, b=’); Readln(a,b); While a b do If a > b then a := a – b Else b := b – a; Write(‘UCLN la:’ , a); Readln; END §Ó häc sinh cã thÓ tr×nh bµy vµ thùc hiÖn thuËt gi¶i ®· biÕt th× gi¸o cÇn ®Æt ra vµ ®¹t ®­îc nh÷ng yªu cÇu sau: Yªu cÇu häc sinh n¾m v÷ng tÝch chÊt ®Æc tr­ng cña thuËt gi¶i. N¾m v÷ng cÊu tróc logic vµ s¬ ®å liªn kÕt gi÷a tÝch chÊt nµy víi tÝch chÊt kh¸c. Ph¸t biÓu râ rµng, chÝnh x¸c thuËt gi¶i mµ ta cÇn sö dông. BiÕt diÔn ®¹t d­íi c¸c h×nh thøc t­¬ng ®­¬ng khi chuyÓn tõ cÊu tróc ®iÒu khiÓn nµy sang cÊu tróc ®iÒu khiÓn kh¸c. VÝ dô 2: ViÕt ch­¬ng tr×nh tÝnh tæng: s=1+ 1/2+ 1/3+ . . .+ 1/n, víi n nguyªn d­¬ng ®­îc nhËp tõ bµn phÝm. Dïng FOR: VAR n, i : INTEGER; s : REAL; BEGIN WRITE(‘Nhap n =’); READLN(n); s := 0; FOR i := 1 TO n DO s := s + 1/i; WRITE(‘Tong s =’ , s); READLN; END. Dïng WHILE: VAR n, i : INTEGER; s : REAL; BEGIN WRITE(‘Nhap n =’); READLN(n); s := 0; i := 1; WHILE i <= n DO BEGIN s := s + 1/i; i := i +1; END; WRITELN(‘Tong s =’ , s); READLN; END. Dïng REPEAT: VAR n, i : INTEGER; s : REAL; BEGIN WRITE(‘Nhap n =’); READLN(n); s := 0; i := 1; REPEAT s := s + 1/i; i := i + 1; UNTIL i = n; WRITE(‘Tong s =’, s); READLN; END. Ph­¬ng diÖn thuËt gi¶i rÌn luyÖn cho häc sinh nh÷ng kü n¨ng sau: Thùc hiÖn nh÷ng thao t¸c theo mét tr×nh tù x¸c ®Þnh phï hîp víi mét thuËt gi¶i. Ph©n tÝch mét ho¹t ®éng thµnh nh÷ng ho¹t ®éng thµnh phÇn. M« t¶ chÝnh x¸c qu¸ tr×nh tiÕn hµnh mét ho¹t ®éng. Kh¸i qu¸t ho¸ mét ho¹t ®éng trªn nh÷ng ®èi t­îng riªng lÎ thµnh mét ho¹t ®éng trªn mét líp ®èi t­îng. So s¸nh nh÷ng thuËt gi¶i kh¸c nhau cïng thùc hiÖn mét bµi to¸n vµ t×m thuËt gi¶i tèt nhÊt vÒ mét yªu cÇu nµo ®ã. VÝ dô 3: Cã hai thuËt to¸n ho¸n vÞ gi¸ trÞ cña 2 biÕn x , y .Mét thuËt to¸n dïng biÕn trung gian (thuËt to¸n 1) vµ mét thuËt to¸n kh«ng dïng tíi biÕn trung gian (thuËt to¸n 2). H·y t×m hai thuËt to¸n ®ã vµ gi¶i thÝch t¹i sao trong thùc tÕ ng­êi ta Ýt dïng thuËt to¸n 2? PhÇn lín häc sinh ®Òu nªu ®­îc thuËt to¸n 1 nh­ sau: Tg := x; x := y; y := Tg; Cã thÓ dïng gi¶i thuËt sau ®Ó ho¸n ®æi 2 biÕn x , y kh«ng cÇn dïng tíi biÕn trung gian: x := x + y; y := x – y; x := x – y; Tuy nhiªn, nhiÒu häc sinh ch­a gi¶i thÝch ®­îc v× sao thuËt to¸n nµy Ýt ®­îc dïng. Tr­íc khi ®i vµo gi¶i thÝch cô thÓ gi¸o viªn nªn gîi ý ®Ó häc sinh so s¸nh gi÷a hai thuËt to¸n nh­ sè l­îng biÕn, phÐp “ + “ vµ “ – “ ®­îc sö dông trong nh÷ng kiÓu d÷ liÖu nµo? ThuËt to¸n 2 Ýt ®­îc dïng v× c¸c lý do c¬ b¶n sau ®©y: Tuy tiÕt kiÖm ®­îc mét « nhí trung gian nh­ng thêi gian lµm phÐp to¸n céng trõ dµi h¬n lÖnh g¸n. DÔ cã kÕt qu¶ sai trong tr­êng hîp tæng x + y v­ît qu¸ ph¹m vi biÓu diÔn cña kiÓu d÷ liÖu khai b¸o. Kh«ng ¸p dông ®­îc cho mäi kiÓu d÷ liÖu, th­êng chØ cho d÷ liÖu kiÓu sè. H×nh thµnh vµ ph¸t triÓn kh¶ n¨ng suy ®o¸n vµ t­ëng t­îng Song song víi qu¸ tr×nh t­ duy trong ho¹t ®éng cña con ng­êi lµ qu¸ tr×nh suy ®o¸n vµ t­ëng t­îng. §Ó ph¸t triÓn kh¶ n¨ng nµy ë häc sinh , gi¸o viªn cÇn tËp trung vµo rÌn luyÖn cho häc sinh cã ý thøc sö dông nh÷ng quy t¾c suy ®o¸n nh­ quy l¹ vÒ quen, xÐt t­¬ng tù, kh¸i qu¸t ho¸ . . . 3.1. Quy l¹ vÒ quen VÝ dô 1: Ta d¹y cho häc sinh lËp tr×nh tÝnh diÖn tÝch tø gi¸c låi khi cho biÕt täa ®é cña c¸c ®Ønh. Bµi to¸n nµy sÏ ®­îc quy vÒ bµi to¸n quen thuéc lµ tÝnh diÖn tÝch tam gi¸c theo c«ng thøc Hªr«ng khi ta gîi ý cho häc sinh chia tø gi¸c thµnh hai tam gi¸c. Bµi to¸n nµy nÕu cÇn l¹i ®­îc quy vÒ bµi to¸n tÝnh kho¶ng c¸ch hai ®iÓm khi cho biÕt to¹ ®é cña chóng. Ch­¬ng tr×nh: PROGRAM Tu_giac; USES Crt; VAR x1,x2,x3,x4,y1,y2,y3,y4 :REAL; a,b,c,d :REAL; FUNCTION KC(x1,x2 : REAL) : REAL; VAR u,v : REAL; BEGIN u := x2 – x1; v := y2 – y1; KC := sqrt(u*u + v*v); END; FUNCTION DT(a,b,c : REAL) : REAL; VAR p : REAL; BEGIN p := (a + b + c)/2; DT := sqrt(p*(p – a)*(p – b)*(p – c)); END; BEGIN CLRSCR; WRITE(‘Nhap toa do cac dinh:’); READLN(x1,y1,x2,y2,x3,y3,x4,y4); a := KC(x1,y1,x2,y2); b := KC(x2,y2,x3,y3); c := KC(x3,y3,x4,y4); d := KC(x4,y4,x1,y1); e := KC(x1,y1,x3,y3); WRITELN(‘dien tich tu giac =’, DT(a,b,e) + DT(c,d,e) :4:2); READLN; END. VÝ dô 2: LËp ch­¬ng tr×nh tÝnh tæng vµ tÝch cña hai ph©n sè, biÕt tö sè vµ mÉu sè lµ c¸c sè nguyªn d­¬ng nhËp tõ bµn phÝm. §Ó céng hai ph©n sè cÇn ph¶i quy ®ång mÉu sè. Do ®ã ta quy bµi to¸n tÝnh tæng hai ph©n sè vÒ bµi to¸n quy ®ång mÉu sè. Bµi to¸n quy ®ång mÉu sè l¹i ®­îc quy vÒ hai bµi to¸n quen thuéc lµ t×m ­íc chung lín nhÊt vµ béi chung nhá nhÊt cña hai sè nguyªn d­¬ng. Ngoµi ra, sau khi tÝnh tæng vµ tÝch cña hai ph©n sè th× ta nªn rót gän ph©n sè. Ch­¬ng tr×nh: PROGRAM Phan_so; USES CRT; TYPE PS = RECORD; tu := INTEGER; mau := INTEGER; END; VAR x, y, z : PS; a, b, c, d :INTEGER; FUNCTION UCLN(a, b :INTEGER): INTEGER; BEGIN WHILE a b DO IF a>b THEN a := a – b ELSE b := b – a ; UCLN := a; END; FUNCTION BCNN(a, b : INTEGER): INTEGER; BEGIN BCNN := a * b / UCLN(a,b); END; PROCEDURE QDMS(VAR x, y :PS); VAR d : INTEGER; BEGIN d := BCNN(x.mau, y.mau); x.tu := x.tu * (d / x.mau); x.mau := d; y.tu := y.tu * (d / y.mau); y.mau := d; END; PROCEDURE Rutgon(VAR p : PS); VAR d : integer; BEGIN d := UCLN(p.tu, p.mau); p.tu := p.tu / d; p.mau := p.mau / d; END; PROCEDURE Tong(VAR p: PS; x, y : PS); BEGIN QDMS(x, y); p.tu := x.tu + y.tu; p.mau := x.mau; Rutgon(p); END; PROCEDURE Tich(VAR p :PS; x, y : PS); BEGIN p.tu := x.tu * y.tu; p.mau := x.mau * y.mau; Rutgon(p); END; PROCEDURE In(p :PS); BEGIN WRITE(p.tu,’/’, p.mau); END; BEGIN CLRSCR; WRITELN(‘Nhap tu so va mau so cua cac phan so:’); REPEAT READLN(a, b, c, d); IF (a < 0) OR (b < 0) OR (c < 0) OR (d < 0) THEN WRITE(‘Nhap lai!’); UNTIL (a > 0) AND (b > 0) AND (c > 0) AND (d > 0); x.tu := a; x.mau := b; y.tu := c; y.mau := d; Tong(z, x, y); WRITELN(‘Tong hai phan so la:’ ); In(z); Tich(z, x, y); WRITELN(‘Tich hai phan so la:’ ); In(z); READLN; END. XÐt t­¬ng tù VÝ dô 1: Khi d¹y kiÓu v« h­íng liÖt kª: gi¸o viªn cã thÓ lÊy vÝ dô vÒ m¶ng mét chiÒu hoÆc hai chiÒu mµ chØ sè cña nã lÊy trªn ®ã, ®Õn phÇn vµo c¸c phÇn tö cña m¶ng vµ xö lý chóng, gi¸o viªn cã thÓ gîi ý cho häc sinh lµm hoµn toµn t­¬ng tù nh­ m¶ng cã chØ sè ch¹y trªn tËp sè nguyªn. VÝ dô 2: Sau khi d¹y bµi m¶ng mét chiÒu, gi¸o viªn yªu cÇu häc sinh viÕt ch­¬ng tr×nh: NhËp n phÇn tö cña m¶ng mét chiÒu vµ tÝnh tæng c¸c phÇn tö cña m¶ng. Ch­¬ng tr×nh: PROGRAM Tinh_tong; USES CRT; CONST n = 7; VAR a : ARRAY[1..n] OF REAL; i : INTEGER; s : REAL; BEGIN CLRSCR; WRITELN(‘Nhap du lieu cho mang:’); FOR i := 1 TO n DO BEGIN WRITE(‘a[‘, i, ‘]=’); READLN(a[i]); END; s := 0; FOR i := 1 TO n DO s := s + a[i]; WRITE(‘Tong s=’, s:1:2); READLN; END. §Ó h×nh thµnh vµ ph¸t triÓn kh¶ n¨ng xÐt t­¬ng tù ë häc sinh, tiÕp theo bµi tËp trªn gi¸o viªn nªn ra thªm bµi tËp sau: TÝnh sè trÞ cña ®a thøc P(x) bËc n: a0xn + a1xn – 1 + . . . + an t¹i gi¸ trÞ x0 cña ®èi sè. Gi¸o viªn gîi ý cho häc sinh liªn hÖ bµi tËp tr­íc vµ bµi tËp míi xem chóng cã ®iÓm nµo gièng nhau (t­¬ng tù nhau) kh«ng, nÕu cã th× h·y vËn dông nã ®Ó gi¶i quyÕt bµi tËp míi nµy. §iÓm t­¬ng tù nhau ë ®©y mµ ta nhËn thÊy ®ã lµ cÇn nhËp vµo c¸c hÖ sè cña ®a thøc, do vËy ta cÇn tæ chøc mét m¶ng gåm (n + 1) phÇn tö c¸c hÖ sè cña ®a thøc, sau ®ã tÝnh P(x0). Ch­¬ng tr×nh: PROGRAM Da_thuc; USES CRT; CONST n = 7; VAR a : ARRAY[1..n] OF REAL; i : INTEGER; p, x0 : REAL; BEGIN CLRSCR; WRITELN(‘Nhap cac he so cua da thuc:’); FOR i := 1 TO n DO BEGIN WRITE(‘a[‘, i, ‘]=); READLN(a[i]); END; WRITE(‘Nhap x0=’); READLN(x0); p := a[0]; FOR i := 1 TO n DO p := p * x0 + a[i]; WRITE(‘Ket qua P=’, p:1:2); READLN; END. Nh­ vËy tõ nh÷ng bµi tËp ®· biÕt, khi b¾t gÆp bµi to¸n míi häc sinh nªn biÕt c¸ch liªn hÖ, xem xÐt ®Ó t×m ra nh÷ng ®iÓm t­¬ng tù, nÕu cã th× dùa vµo ®ã, vËn dông nã ®Ó ®i t×m lêi gi¶i cho bµi to¸n míi. Kh¸i qu¸t ho¸ VÝ dô : XÐt ®­êng gÊp khóc khÐp kÝn kh«ng tù c¾t N ®Ønh trong mÆt ph¼ng, cã c¸c c¹nh song song víi trôc to¹ ®é vµ c¸c ®Ønh cã to¹ ®é nguyªn. Gi¶ sö to¹ ®é c¸c ®Ønh n»m trong tÖp v¨n b¶n GAPKHUC.INP, tÝnh chu vi h×nh giíi h¹n bëi ®­êng gÊp khóc, ®­a kÕt qu¶ ra tÖp v¨n b¶n GAPKHUC.OUT §Ó tÝnh chu vi cña h×nh theo yªu cÇu th× tr­íc hÕt ph¶i tÝnh ®é dµi c¸c c¹nh cña h×nh..To¹ ®é mçi ®Ønh sÏ ph¶i sö dông ®Õn 2 lÇn nªn cÇn dïng biÕn trung gian ®Ó l­u tr÷ gi¸ trÞ. Ch­¬ng tr×nh: PROGRAM GAPKHUC; USES CRT; VAR f1, f2: TEXT; l, x0, y0, x1, y1, x2, y2 : INTEGER; BEGIN ASSIGN (f1, ‘GAPKHUC.INP’); RESET(f1); READLN(f1, x, y); x0 := x; y0 := y; l := 0; WHILE NOT EOF(f1) DO BEGIN x1 := x; y1 := y; READLN(f1, x, y); l := l + ABS(x – x1) + ABS(y – y1); END; l := l + ABS(x – x0) + ABS(y – y0); CLOSE(f1); ASSIGN(f2,’GAPKHUC.OUT’); REWRITE(f2); WRITELN(f2,’Chu vi :’, l); CLOSE(f2); END. Th«ng qua bµi to¸n trªn rÌn luyÖn cho häc sinh kh¶ n¨ng kh¸i qu¸t ho¸. Tõ tÝnh ®é dµi cña mét c¹nh suy ra c¸ch tÝnh ®é dµi c¸c c¹nh cña h×nh. §iÓm mµ häc sinh th­êng quªn ë bµi to¸n nµy lµ to¹ ®é cña mçi ®Ønh sÏ ®­îc sö dông 2 lÇn, ®iÓm cuèi cña c¹nh nµy sÏ lµ ®iÓm ®Çu cña c¹nh kia (v× ®©y lµ ®­êng gÊp khóc khÐp kÝn kh«ng tù c¾t). H×nh thµnh vµ ph¸t triÓn c¸c thao t¸c t­ duy C¸c thao t¸c t­ duy ®· ®­îc h×nh thµnh ë häc sinh th«ng qua c¸c m«n häc kh¸c, h×nh thµnh tõ c¸c líp d­íi, song do ®Æc thï cña m«n Tin lµ m«n häc cã tÝnh trõu t­îng cao ®é nªn trong qu¸ tr×nh häc tËp häc sinh ph¶i th­êng xuyªn thùc hiÖn c¸c thao t¸c t­ duy phèi hîp víi nhau ®Ó x©y dùng thuËt to¸n, x©y dùng ch­¬ng tr×nh... §Ó häc sinh vËn dông c¸c thao t¸c t­ duy mét c¸ch linh ho¹t, uyÓn chuyÓn, gi¸o viªn ph¶i th«ng qua c¸c bµi d¹y, ®Æc biÖt lµ hÖ thèng bµi tËp ®Ó cñng cè, rÌn luyÖn, h×nh thµnh vµ ph¸t triÓn c¸c thao t¸c t­ duy nh­: ph©n tÝch, tæng hîp, so s¸nh, trõu t­îng ho¸, kh¸i qu¸t ho¸ ... cïng víi c¸c phÈm chÊt trÝ tuÖ nh­: tÝnh linh ho¹t, tÝnh ®éc lËp, tÝnh s¸ng t¹o... VÝ dô 1: D¹y c©u lÖnh: FOR := TO DO ; Gi¸o viªn yªu cÇu häc sinh ph©n tÝch ho¹t ®éng cña c©u lÖnh nµy theo tr×nh tù nh­ sau: §Çu tiªn m¸y kiÓm tra ®iÒu kiÖn kh«ng lín h¬n . NÕu ®iÒu kiÖn nµy ®óng th× m¸y ghi nhí gi¸ trÞ cña . TiÕp ®Õn m¸y thùc hiÖn liªn tiÕp ba ho¹t ®éng sau : G¸n gi¸ trÞ cho . Thùc hiÖn sau DO. KiÓm tra ®iÒu kiÖn ra khái vßng lÆp, ®ã lµ gi¶ trÞ cña b»ng gi¸ trÞ cña ®· ®­îc m¸y ghi nhí. NÕu ®iÒu kiÖn ra khái vßng lÆp sai th× m¸y l¹i thùc hiÖn liªn tiÕp ba ho¹t ®éng sau: nh©n gi¸ trÞ tiÕp theo gi¸ trÞ hiÖn t¹i (tøc lµ gi¸ trÞ cña nã sau khi thùc hiÖn sau DO). Thùc hiÖn c©u lÖnh sau DO. Quay l¹i kiÓm tra ®iÒu kiÖn ra khái vßng lÆp. Vßng lÆp chØ kÕt thóc khi m¸y quay l¹i kiÓm tra ®iÒu kiÖn ra khái vßng lÆp mµ ®iÒu kiÖn nµy ®óng. VÝ dô 2: Sau khi d¹y hai bµi: C©u lÖnh lÆp víi ®iÒu kiÖn tr­íc (WHILE) vµ C©u lÖnh lÆp víi ®iÒu kiÖn sau (REPEAT...UNTIL), gi¸o viªn cho häc sinh tiÕn hµnh so s¸nh hai c©u lÖnh. §Ó tiÕn hµnh so s¸nh hai c©u lÖnh trªn, ®Çu tiªn gi¸o viªn ph¶i yªu cÇu häc sinh nh¾c l¹i ho¹t ®«ng cña hai c©u lÖnh, tõ ®ã rót ra nh÷ng ®iÓm gièng vµ kh¸c nhau. Mçi häc sinh sÏ ®ãng gãp mét vµi ý kiÕn, sau ®ã gi¸o viªn tæng hîp l¹i. Qua viÖc so s¸nh hai c©u lÖnh ®Ó häc sinh nhËn thÊy trong tõng bµi to¸n cô thÓ th× nªn dïng c©u lÖnh nµo. Gièng nhau: §Òu lµ nh÷ng c©u lÖnh lÆp víi mét sè lÇn kh«ng ®Þnh tr­íc. §Òu cÇn t¸c ®éng vµo biÕn ®iÒu khiÓn . Kh¸c nhau: LÖnh WHILE KiÓm tra tr­íc, thùc hiÖn sau. Cã thÓ kh«ng thùc hiÖn lÇn nµo c¶. Thùc hiÖn trong khi ®óng, kÕt thóc khi sai. Khi cã nhiÒu lÖnh ph¶i ®Æt gi÷a khèi BEGIN vµ END LÖnh REPEAT Thùc hiÖn tr­íc, kiÓm tra sau. ®­îc thùc hiÖn Ýt nhÊt mét lÇn. Thùc hiÖn khi sai, kÕt thóc khi ®óng. Khi cã nhiÒu lÖnh kh«ng cÇn ®Æt gi÷a BEGIN vµ END VÝ dô 3: Cho m¶ng a nguyªn, t×m t=UCLN(a[1], a[2], ..., a[n]), biÕt t = UCLN( UCLN(a[1],..., a[n - 1]), a[n]); Häc sinh ®· quen thuéc víi bµi to¸n t×m UCLN(a, b), v× vËy ®Ó gi¶i quyÕt bµi to¸n nµy, häc sinh sÏ nhanh chãng quay trë l¹i víi bµi to¸n t×m UCLN(a, b) nh»m so s¸nh gi÷a hai bµi to¸n, tõ ®ã t×m ra h­íng ®Ó vËn dông vµo bµi to¸n nµy. Khi so s¸nh hai bµi to¸n, häc sinh sÏ nhËn thÊy chóng ®Òu lµ nh÷ng bµi ®i t×m ­íc chung lín nhÊt, mét bµi chØ t×m ­íc chung lín nhÊt cña hai sè, mét bµi ph¶i t×m ­íc chung lín nhÊt cña c¶ d·y sè. Thùc chÊt cña bµi to¸n míi lµ lÇn l­ît t×m UCLN(a[1], a[2]), sau ®ã l¹i t×m UCLN(UCLN(a[1], a[2]), a[3]), cø tiÕp tôc nh­ vËy cho tíi a[n]. Nh­ vËy, b¶n chÊt hai bµi to¸n lµ gièng nhau. Tõ ®ã chóng ta cã ch­¬ng tr×nh sau: Ch­¬ng tr×nh: PROGRAM Tim_uoc_mang; VAR a : ARRAY[1..50] OF INTEGER; n, i, t : INTEGER; FUNCTION UCLN(a, b: INTEGER): INTEGER; BEGIN WHILE a b DO IF a > b THEN a := a – b ELSE b := b – a; UCLN := a; END; BEGIN WRITE(‘Nhap n =’); READLN(n); WRITELN(‘Nhap cac phan tu cho mang:’); FOR i := 1 TO n DO BEGIN WRITE(‘a[‘, i, ‘]=’); READLN(a[i]); END; t := UCLN(a[1], a[2]); FOR i := 3 TO n DO t := UCLN(t, a[i]); WRITE(‘UCLN cua mang la:’, t); READLN; END. Kh«ng ph¶i c¸c thao t¸c t­ duy ®­îc vËn dông riªng lÎ ë tõng bµi to¸n, mµ trong mçi bµi ®Òu cÇn ®Õn hÇu hÕt c¸c thao t¸c t­ duy nh­: ph©n tÝch, tæng hîp, so s¸nh, kh¸i qu¸t ho¸. V× vËy, trong mét bµi tËp cô thÓ gi¸o viªn cè g¾ng khai th¸c triÖt ®Ó c¸c khÝa c¹nh ®Ó häc sinh cã thÓ vËn dông c¸c thao t¸c t­ duy ®ång thêi. VÝ dô 3: Khi d¹y cho häc sinh thùc hiÖn c«ng viÖc x©y dùng thuËt gi¶i chän trùc tiÕp ®Ó s¾p xÕp m¶ng mét chiÒu A cã n phÇn tö lµ nh÷ng sè thùc theo thø tù t¨ng dÇn. Tr­íc hÕt, gi¸o viªn h­íng dÉn häc sinh thao t¸c ph©n tÝch c«ng viÖc nµy ra n b­íc: B­íc 1: T×m chØ sè phÇn tö cã gi¸ trÞ nhá nhÊt trong c¸c phÇn tö tõ 1 ®Õn n. sau ®ã tr¸o ®æi phÇn tö nhá nhÊt víi phÇn tö thø nhÊt. C«ng viÖc nµy ®­îc thùc hiÖn nh­ sau: Cho k = 1; Cho j ch¹y tõ 1 ®Õn n NÕu A[k] > A[j] th× g¸n k := j; §æi chç A[k] cho A[2]; B­íc 2: T×m chØ sè phÇn tö cã gi¸ trÞ nhá nhÊt trong c¸c phÇn tö tõ 2 ®Õn n. Sau ®ã ta ®æi chç phÇn tö nµy cho phÇn tö thø 2. C«ng viÖc nµy ®­îc thùc hiÖn nh­ sau: Cho k = 2; Cho j ch¹y tõ 2 ®Õn n NÕu A[k] > A[j] th× g¸n k := j; §æi chç A[k] cho A[2]; B­íc 3: T×m chØ sè phÇn tö cã gi¸ trÞ nhæ nhÊt trong c¸c phÇn tö tõ 3 ®Õn n. Sau ®ã ta ®æi chç phÇn tö nµy cho phÇn tö thø 3. C«ng viÖc nµy ®­îc thùc hiÖn nh­ sau: Cho k = 3; Cho j ch¹y tõ 3 ®Õn n NÕu A[k] > A[j] th× g¸n k := j; §æi chç A[k] cho A[3]; Sau khi quan s¸t, ta so s¸nh c¸c ho¹t ®éng cña sù ph©n tÝch, sù ®æi chç c¸c phÇn tö trong m¶ng, häc sinh sÏ tù ph¸t hiÖn ra r»ng c¸c b­íc cßn l¹i tõ b­íc 4 ®Õn b­íc n t­¬ng tù nh­ ba b­íc trªn. Tõ ®ã rÌn luyÖn cho häc sinh x©y dùng thao t¸c t­¬ng tù ë b­íc thø i ®Ó kh¸i qu¸t c«ng viÖc ë c¸c b­íc: B­íc i: T×m chØ sè phÇn tö cã gi¸ trÞ nhá nhÊt trong c¸c phÇn tö tõ i ®Õn n. Sau ®ã ta ®æi chç phÇn tö nµy cho phÇn tö thø i. C«ng viÖc nµy ®­îc thùc hiÖn nh­ sau: Cho k = i; Cho j ch¹y tõ i ®Õn n NÕu A[k] > A[j] th× g¸n k := j; §æi chç A[k] cho A[j]; Tõ ®©y, gi¸o viªn h­íng dÉn cho häc sinh thùc hiÖn thao t¸c tæng hîp: dùa vµo kÕt qu¶ cña c«ng viÖc kh¸i qu¸t ho¸ ë b­íc thø i, ta cho i ch¹y tõ 1 ®Õn n vµ øng víi mçi i ta lµm nh­ trªn, ta sÏ cã ®­îc thuËt gi¶i chän trùc tiÕp ®Ó s¾p xÕp m¶ng A. Ch­¬ng III: thùc nghiÖm s­ ph¹m 1. môc ®Ých thùc nghiÖm - Nh»m kiÓm tra tÝnh thùc thi vµ tÝnh hiÖu qu¶ cña viÖc sö dông mét sè biÖn ph¸p ®· ®­îc ®­a ra trong ®Ò tµi. - Qua thùc nghiÖm ®Ó biÕt ®­îc nh÷ng tån t¹i cña häc sinh, tõ ®ã t×m ra h­íng tiÕp tôc ph¸t triÓn ®Ò tµi nh­ thÕ nµo. 2. Néi dung thùc nghiÖm §èi t­îng thùc nghiÖm: + Líp thùc nghiÖm: 11A (Tr­êng THPT Cöa Lß). + Líp ®èi chøng: 11A1(Tr­êng THPT Cöa Lß). Néi dung thùc nghiÖm: + TiÕn hµnh d¹y 8 tiÕt thùc nghiÖm: 4 tiÕt «n tËp vµ bµi tËp. 4 tiÕt kiÓm tra (2 tiÕt líp thùc nghiÖm vµ 2 tiÕt líp ®èi chøng). + Ch­¬ng tr×nh thùc nghiÖm bao gåm: «n tËp vµ hÖ thèng c¸c c©u lÖnh, ®Æc biÖt phÇn kiÓu d÷ liÖu m¶ng vµ x©u. Thùc hµnh gi¶i c¸c bµi tËp: Chän mét sè bµi tËp cã thÓ ph¸t triÓn trÝ tuÖ chung cho häc sinh, ®Æc biÖt lµ c¸c thao t¸c t­ duy: Ph©n tÝch, tæng hîp, so s¸nh… KÕt qu¶ thùc nghiÖm: Qua c¸c lÇn kiÓm tra ®èi víi líp thùc nghiÖm vµ líp ®èi chøng, kÕt qu¶ thu ®­îc thÓ hiÖn trªn b¶ng ph©n phèi thùc nghiÖm tÇn sè (ni) vµ tÇn suÊt (wi) nh­ sau: LÇn §iÓm Líp 1 2 3 4 5 6 7 8 9 10 1 11A ni 0 0 0 1 6 11 15 7 5 3 Wi(%) 0 0 0 2.08 12.5 22.91 31.25 14.58 10.41 6.25 11A1 ni 0 1 3 4 12 16 9 4 2 0 Wi(%) 0 1.96 5.88 7.84 23.53 31.37 17.64 7.84 3.92 0 2 11A ni 0 0 1 3 7 9 11 14 3 0 Wi(%) 0 0 2.08 6.25 14.58 18.75 22.91 29.17 6.25 0 11A1 ni 0 2 2 6 11 17 7 5 1 0 Wi(%) 0 3.92 3.92 11.76 21.57 33.33 13.72 9.8 1.96 0 §a gi¸c tÇn suÊt biÓu diÔn kÕt qu¶ thùc nghiÖm: Sö dông c«ng cô thèng kª to¸n häc vÒ tÝnh c¸c ®Æc tr­ng mÉu, thu ®­îc kÕt qu¶ th«ng qua b¶ng : B¶ng kÕt qu¶ c¸c tham sè ®Æc tr­ng mÉu: Bµi kiÓm tra 1 2 Líp 11A 11A1 11A 11A1 §iÓm X1 = 7 X2 5.8 X1 6.6 X2 5.6 Ph­¬ng sai 21 2.08 22 2.24 21 2.14 22 2.31 §é lÖch chuÈn 1 1.44 2 1.49 1 1.46 2 1.52 3. Ph©n tÝch kÕt qu¶ thùc nghiÖm vµ rót ra kÕt luËn. KiÓm tra lÇn mét: §iÓm trung b×nh cña líp thùc nghiÖm(11A) cao h¬n líp ®èi chøng(11A1). Ph­¬ng sai vµ ®é lÖch chuÈn cña líp thùc nghiÖm nhá h¬n líp ®èi ch­ng. ChiÕm tû lÖ cao nhÊt (31.25%) ë líp thùc nghiÖmlµ sè häc sinh ®¹t ®iÓm 7, so víi líp ®èi chøng cã tû lÖ cao nhÊt(31.37%) lµ sè häc sinh ®¹t ®iÓm 6. Líp thùc nghiÖm cã sè häc sinh (62.49%) ®¹t ®iÓm 7 trë lªn cao h¬n so víi sè häc sinh líp ®èi chøng(29.4%). KiÓm tra lÇn hai: §iÓm trung b×nh cña líp thùc nghiÖm(11A) cao h¬n líp ®èi chøng(11A1). Ph­¬ng sai vµ ®é lÖch chuÈn cña líp thùc nghiÖm nhá h¬n líp ®èi ch­ng. ChiÕm tû lÖ cao nhÊt (29.17%) líp thùc nghiÖmlµ sè häc sinh ®¹t ®iÓm 8, so víi líp ®èi chøng cã tû lÖ cao nhÊt(33.33%) lµ sè häc sinh ®¹t ®iÓm 6. Líp thùc nghiÖm cã sè häc sinh (58.33%) ®¹t ®iÓm 7 trë lªn cao h¬n so víi sè häc sinh líp ®èi chøng(25.48%). KÕt luËn : Qua ph©n tÝch c¸c kÕt qu¶ ë trªn ta cã nhËn xÐt: ChÊt l­îng cña líp 11A cao h¬n so víi líp 11A1. Kü n¨ng sö dông c¸c thao t¸c trÝ tuÖ ®­îc t¨ng c­êng, linh ho¹t, ®iÒu nµy ®­îc thÓ hiÖn ë chç víi bµi kiÓm tra nh­ nhau thêi gian nh­ nhau nh­ng kÕt qu¶ cña líp 11A cao h¬n líp 11A1. KÕt luËn 1. kÕt luËn Qua qu¸ tr×nh thùc hiÖn ®Ò tµi, qua thùc nghiÖm s­ ph¹m, ®èi chiÕu víi môc ®Ých, nhiÖm vô ®Æt ra, theo t«i ®Ò tµi ®· ®¹t ®­îc mét sè kÕt qu¶ chÝnh sau: §Ò tµi ®· gãp phÇn kh¼ng ®Þnh c¬ së lÝ luËn vµ thùc tiÔn cña viÖc sö dông ng«n ng÷ lËp tr×nh nãi chung, Pascal nãi riªng trong viÖc h×nh thµnh vµ ph¸t triÓn n¨ng lùc trÝ tuÖ chung cña häc sinh THPT. B­íc ®Çu nªu lªn mét sè ph­¬ng ph¸p tiÕn hµnh gi¶ng d¹y, ®Æc biÖt hÖ thèng bµi tËp liÒn m¹ch, liªn hÖ mËt thiÕt víi c¸c thao t¸c t­ duy nh­ ph©n tÝch, tæng hîp, trõu t­îng ho¸, kh¸i qu¸t ho¸ … ViÖc h×nh thµnh vµ ph¸t triÓn n¨ng lùc trÝ tuÖ chung cho häc sinh th«ng qua gi¶ng d¹y ng«n ng÷ lËp tr×nh gãp phÇn ®­a Tin häc “th©n thiÖn” víi häc sinh h¬n, gióp häc sinh øng dông tri thøc, kü n¨ng Tin häc trong c¸c m«n häc kh¸c còng nh­ trong cuéc sèng. 2. mét sè ®Ò xuÊt Theo xu h­íng chung cña d¹y häc hiÖn ®¹i, cÇn t¨ng c­êng øng dông c¸c tiÕn bé khoa häc nãi chung, cña khoa häc C«ng nghÖ th«ng tin nãi riªng trong d¹y häc, v× vËy nªn cã c¸c tiÕt häc tiÕn hµnh b»ng m¸y chiÕu, t¨ng t­ duy trùc quan, gióp häc sinh tiÕp thu tèt h¬n. Trong c¸c nhµ tr­êng THPT, phßng m¸y cã sè l­îng m¸y Ýt, phÇn lín l¹i cò vµ háng hãc nhiÒu. Sè tiÕt häc Tin häc míi chØ lµ 1 tiÕt/1 tuÇn. Do ®ã viÖc ®æi míi ph­¬ng ph¸p d¹y häc, rÌn luyÖn kü n¨ng Tin häc cho häc sinh cßn nhiÒu bÊt cËp. 3. h­íng ph¸t triÓn cña ®Ò tµi Kh¾c phôc nh÷ng nh­îc ®iÓm cña ch­¬ng tr×nh hiÖn hµnh. Hoµn thiÖn ®Ò tµi theo h­íng thiÕt kÕ vµ thi c«ng tõng tiÕt bµi gi¶ng theo ®óng ph©n phèi ch­¬ng tr×nh cña s¸ch gi¸o khoa. X©y dùng thªm mét sè bµi tËp phï hîp víi môc tiªu cña ®Ò tµi. NÕu cã thÓ nªn x©y dùng thªm bµi tËp d­íi d¹ng c©u hái tr¾c nghiÖm kh¸ch quan. Tµi liÖu tham kh¶o Tr­¬ng Träng CÇn, LÝ luËn d¹y häc Tin häc ë Tr­êng phæ th«ng, §¹i häc Vinh S¸ch gi¸o khoa thÝ ®iÓm Tin häc 11, NXBGD. S¸ch gi¸o viªn Tin häc 11, NXBGD. T¹p chÝ Gi¸o dôc thêi ®¹i. Qu¸ch TuÊn Ngäc, Ng«n ng÷ lËp tr×nh Pascal, NXB §HQG Hµ Néi. NguyÔn Xu©n Huy, ThuËt to¸n, NXBGD. NguyÔn B¸ Kim, Ph­¬ng ph¸p gi¶ng d¹y To¸n häc, NXBGD. Bïi ThÕ T©m, Gi¸o tr×nh Tin häc ®¹i c­¬ng, NXB Thèng kª. Ph¹m Minh H¹c, Tin häc vµ gi¸o dôc phæ th«ng, NXB Hµ Néi. Môc lôc

Các file đính kèm theo tài liệu này:

  • docluan van.doc
  • pptTom tat.ppt