1. <var id="vatsb"></var>

      <tr id="vatsb"><strong id="vatsb"><mark id="vatsb"></mark></strong></tr>

      <delect id="vatsb"><ruby id="vatsb"></ruby></delect>

        設為主頁 加入收藏 繁體中文

        姜超老師教學日記


         教師教學日記 

        專業科
        計算機
        學科
        VB程序設計
        姓名
        姜超
        時間
        20131021
        天氣
        Vb是學生第一次接觸的程序課程,由于他們自身基礎的局限(如英語底子簿,理解力較差、分析問題思路不夠全面等)可能會對該課產生抵觸心理。所以我在上這門課時盡量選擇能引起他們感興趣的案例作為切入點。例如我有時選古今中外有趣算例,通過剖析,聯系實際進行講授,這樣他們先對例子感興趣了,就會自主的、積極的學習里面涉及到的知識了。它對于學生深刻理解高級語言程序設計中的基本概念、數據類型、計算方法,正確使用運算符、靈活設計程序結構等有著事半功倍的作用。
          為了使學生能夠較深刻的理解不同數據類型所允許的運算,不同運算符的功能差異,學會正確使用基本結構的嵌套,經認真篩選,我選擇了以中國古代算題 “百錢買百雞”為例,引導學生設計解決該問題的VB應用程序。該題要解決的問題是: 每只公雞5元錢,每只母雞3元錢,每3只小雞1元錢。今有100元錢,要求必須且只能買100只雞。問可買公雞、母雞、小雞各多少只。這個問題既可蛻變為中國民間婦孺皆知的“百僧分百饃”問題,也和“百馬馱百擔”問題類似,都是未知數的個數比方程的個數多1個不定解問題。它可能無解,也可能只有一組解或多組解。
          同學們對此題非常感興趣,因為他們在孩提時代就拼湊過“百僧分百饃”的古老算題,但只是拼出了答案:25個大和尚、75個小和尚,但卻說不清楚是否還有別的解。此時,看到要解決一直困擾他們的問題了,學生們精神大振,動腦筋分析問題的積極性也大為提高。據此引導他們分析該題。
          由于每只公雞(coke)5元錢,所以100元全部用來買公雞,也最多一直能買20只。因此買公雞的可能是0只到20只;同理買母雞(hen)的可能是0只到33只;而買小雞(poult)的可能只能是100-公雞數-母雞數??梢娺@是一個典型的枚舉求解問題,所以設計出了如圖1所示的VB窗體界面,并在窗體中設計一個“計算開始”的按鈕,設計出了單擊按鈕Command1_Click程序。它的VB程序源代碼如圖1所示。
            程序運行后,結果如圖2所示。這個結果無疑是正確的,因為通過核對,不但雞的和為100個,錢的和也是100元。該題的第一組解就是“百僧分百饃”的算題解。
        題解出來了,但知識點沒完啊,所以引導他們繼續思考.
        當將語句:money = 5 * coke + 3 * hen + poult / 3 中的除法運算符“/”改為整除運算符”\”時,將會得到如圖3所示的運行結果。顯然圖3的解比圖2的解多了3組:3 20 77; 7 13 80;11 6 83。分析這三組解,經核對會發現盡管公雞、母雞、小雞的和是100只,但錢數卻不對,這3組解,錢數為100.67,比限定的100元多出了0.67元,即隱藏著多買了2只小雞問題。此時學生的興趣更濃,都急于想知道錯在了什么地方。 我借些機會啟發學生分析產生錯誤的原因。學生立即會聯想到,程序僅修改了一個算術運算符,肯定是由于兩種除法運算符的功能不同所導致的。
         
         
         
        圖1                                          圖2
         
        在正確的結果1中,使用了除法運算符“/”。它是一個實型算符,該算符的特點是對實型數進行運算,運算的結果也是實型數。如除數和被除數都是整型數,系統會自動將它們全部換算為對應的實型數,然后再進行實型運算,得到實型結果。這樣一來表達式:3*5+20*3+77/3 的結果將是100.67,顯然這不符合錢數限定為100元的要求,它將被因錢數超出了0.67元而被排除,同樣其它兩組解也以同樣的理由被排除。
        再分析在錯誤結果2。由于計算買小雞所用的錢數時使用了整除算符“\”,而整除的結果是不帶小數的。當結果有小數部分存在時,將自動被截去小數部分而僅保留整數部分。此時75\3、76\3、77\3均為25;78\3、79\3、80\3均為26;81\3、82\3、83\3均為27。正因為如此,在上面三組解中,錢數計算的結果將都是100元,而并非100.67元,從而導致了錢數似乎符合100元限定的錯誤結論,錯誤的結論必然產生錯誤的結果, “錢數剛好”被作為是“正確解”輸出。
        在學生明白了錯誤產生的原因后,又通過引導學生探討如何避免此類錯誤發生,使學生更進一步拓寬了知識面。我強調指出,在計算實際買小雞所花的錢時,最好的方法的使用實型算子“/”,它方便快捷。但絕不能依此就得出不能使用整型算子 “\”的結論。事實上如果使用了它,只要將后面的:if(momey=100) then 語句改為:if(meney=100 and poult/3=poult\3) then 則會排除掉上面錢數超限的三組解,從而取得與圖1完全一致的結果。
        學生在這個案例中理解了VB除法算符和整除算符各自的功能和區別,學到了循環嵌套的有關知識,也學會了嚴謹的使用if 條件的思想。學生們普遍反映這的確是一個學習程序設計課的好方法。
          綜上所述,在程序設計中,正確選用一些古今中外有名的算例,聯系所講高級語言的數據類型、運算符、語句語法等特點,通過對算例的認真剖析,一定會使枯燥艱澀的程序設計課程變得生動活潑,使學生由怕程序設計變為愛程序設計,從而調動他們學習程序設計的積極性,對教和學都起到事半功倍的效果。
         
         
         

         

        自拍偷区亚洲综合照片_国产一区精品视频_海外AV呦在线播放_久久久永久免费视频