第6章程序設(shè)計初步教參_第1頁
第6章程序設(shè)計初步教參_第2頁
第6章程序設(shè)計初步教參_第3頁
第6章程序設(shè)計初步教參_第4頁
第6章程序設(shè)計初步教參_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第六章 程序設(shè)計初步【本章概述】中小學(xué)程序設(shè)計教學(xué)的目的,是要求學(xué)生掌握程序設(shè)計的一般方法,發(fā)展他們的思維能力、分析問題和解決問題的能力。VB是一種面向?qū)ο蟮某绦蛟O(shè)計語言,Visual意為“可視化的”,Basic指的是 BASIC語言。在學(xué)習(xí)VB時,除了學(xué)習(xí)界面設(shè)計,更要學(xué)習(xí)靈活運用VB實現(xiàn)各種算法。教學(xué)過程中,教師應(yīng)注重算法的教學(xué),通過閱讀程序、編寫和調(diào)試程序、使用程序,逐步培養(yǎng)學(xué)生的程序設(shè)計的能力。【教學(xué)要求】1本章總的教學(xué)要求 熟悉Visual Basic窗口的組成,學(xué)會建立Visual Basic程序。 理解對象的概念,知道對象的三要素,了解事件驅(qū)動的程序設(shè)計思想和面向?qū)ο蟮某绦蛟O(shè)計方

2、法。 理解窗體和控件的概念,掌握四個常用控件命令按鈕、標簽、文本框和定時器,學(xué)會用可視化的設(shè)計工具設(shè)計程序界面。 掌握Visual Basic的常量、變量、標準函數(shù)和表達式。 掌握Let、End語句及輸入輸出技術(shù),會用注釋符()為程序添加注釋。 掌握程序控制語句。 理解數(shù)組、數(shù)組元素、下標的概念,掌握數(shù)組的簡單應(yīng)用。 掌握算法的概念和一些簡單的典型算法,能用流程圖描述算法,并能用Visual Basic語言實現(xiàn)算法。 學(xué)會編輯、調(diào)試和運行程序。 學(xué)會使用Visual Basic的幫助功能,培養(yǎng)通過幫助獲取信息的能力。 培養(yǎng)對程序設(shè)計的興趣和用程序設(shè)計方法解決實際問題的能力。教學(xué)內(nèi)容及課時安排本

3、章教學(xué)約需23課時(含上機實踐),具體安排如下:第一節(jié):程序設(shè)計的基本方法1課時第二節(jié):Visual Basic的基本知識 2課時第三節(jié):程序的建立和運行3課時(1)第四節(jié):Visual Basic語言基礎(chǔ)4課時(1)第五節(jié):分支結(jié)構(gòu)3課時(1)第六節(jié):循環(huán)結(jié)構(gòu)6課時(1)第七節(jié):數(shù)組4課時(1)【教材分析與教法建議】第一節(jié) 程序設(shè)計的基本方法一、教學(xué)要求 理解算法的概念,了解描述算法的兩種方法自然語言、流程圖,知道各自的優(yōu)缺點。 初步掌握用流程圖描述算法。二、教材分析與教法建議 算法的概念算法就是指解決問題的方法和思路。處理任何問題都有相應(yīng)的算法,例如,課本中列舉的寄信過程、交換兩個變量中的

4、數(shù)據(jù)以及一天的學(xué)習(xí)計劃等。當然,我們討論的是計算機算法,即計算機中解決問題的方法和思路。美國著名計算機科學(xué)家克努特教授(D.E.Knuth)提出了“計算機科學(xué)就是研究算法的科學(xué)”的著名論斷,在他所著的計算機程序設(shè)計技術(shù)叢書第一卷中歸納了計算機算法的5個性質(zhì): 能行性。算法中的每一個操作都應(yīng)是計算機可以執(zhí)行的,這些操作通常是計算機基本運算所包含的內(nèi)容,例如算術(shù)運算、關(guān)系運算、邏輯運算等。 確定性。算法中的每一步必須有清楚的定義,不能有二義性或模棱兩可的解釋。例如“增加X的值”,并沒有說明增加多少,不符合確定性原則。 有窮性。一個算法必須在執(zhí)行有限次后結(jié)束。就是說,一個算法應(yīng)在有限的時間內(nèi)完成,執(zhí)

5、行時間要合理。因此,算法中不能含有無限循環(huán)。 輸出。算法執(zhí)行完畢,至少要有一個輸出。 輸入。算法執(zhí)行前應(yīng)有若干個輸入量,也可以沒有輸入量。教學(xué)中應(yīng)結(jié)合生活中的實例講解,使學(xué)生在感性上形成算法的概念。并注意以下幾個問題: 學(xué)生剛接觸計算機時,由于不了解計算機,往往會產(chǎn)生一種錯誤認識,以為只要把問題原封不動的交給計算機,計算機就會自動得出結(jié)果或結(jié)論。例如,若要從南京乘車到西安,希望選擇一條中轉(zhuǎn)次數(shù)最少的路線,以為只要把地圖掃描進計算機,計算機就會自動給出這樣一條路線。這是一種很常見的錯誤認識,至少目前是這樣的。計算機并不能代替人做所有事情,現(xiàn)在使用的計算機還只能按照人們事先給定的步驟工作。因此,拿

6、到一個問題后,首先要搞清楚做什么,再設(shè)計好一步一步怎么做,也就是設(shè)計解決這個問題的算法,最后選擇一種合適的計算機語言編寫程序,使計算機工作,得到正確的結(jié)果。所以,解決任何問題,都必須設(shè)計算法、編寫程序。 本章介紹的問題均不復(fù)雜,相應(yīng)算法也較簡單,學(xué)生拿到題目后,往往不認真考慮算法,一開始就把注意力集中到語言的語法規(guī)則和語句上。學(xué)習(xí)程序設(shè)計,如果只知道計算機語言的語法規(guī)則,不知道解決問題的算法,就不可能編寫出好的程序。語言只是工具,算法才是程序設(shè)計的靈魂。只要算法正確,流程圖無誤,就可以用任何一種語言編寫程序。因此,在學(xué)生剛開始學(xué)習(xí)程序設(shè)計時,教師就要注意加強算法設(shè)計和流程圖的教學(xué),而把計算機語

7、言作為程序設(shè)計的載體。 算法的描述算法可以用以下幾種方法描述:自然語言、傳統(tǒng)流程圖、N-S流程圖、偽代碼。算法的描述是學(xué)習(xí)程序設(shè)計的重點與難點。課本中的例6-1-1、例6-1-2、例6-1-3的算法就是用自然語言描述的,圖6-1、圖6-2、圖6-3是其相應(yīng)的流程圖。本章后面各例的算法也是先用自然語言描述,然后再畫出對應(yīng)的流程圖。為了說明用自然語言描述算法會出現(xiàn)“歧義”,課本中設(shè)計了一個討論與思考欄目,舉了一個日常生活中的例子“這個人連老張也不認識”,教師不要一開始就告訴學(xué)生這句話有“歧義”,而應(yīng)引導(dǎo)學(xué)生討論,然后請學(xué)生說出對這句話的理解,學(xué)生可能會有如下兩種理解:“老張不認識這個人”和“這個人

8、不認識老張”,從而加深對自然語言描述算法會出現(xiàn)“歧義”的體會。盡管本節(jié)從學(xué)生學(xué)習(xí)和生活的實例出發(fā),列舉了一些典型的、常見的例子,但算法仍是學(xué)生較難理解和掌握的內(nèi)容。本節(jié)只是開始,要求不能過高,隨著學(xué)習(xí)的深入,積累的算法的增多,學(xué)生的理解會逐步加深。對此,教師應(yīng)注意循序漸進,絕不可要求一蹴而就。第二節(jié) Visual Basic的基本知識一、教學(xué)要求 掌握啟動和退出Visual Basic的方法。 了解Visual Basic窗口的組成,了解Visual Basic的三種工作模式,知道工具箱、工程資源管理器窗口、窗體設(shè)計器窗口、屬性窗口、代碼編輯器窗口的功能。 理解工程的概念,知道工程的構(gòu)成。 理

9、解對象、窗體和控件的概念,掌握建立控件對象的一般步驟,了解對象的命名規(guī)則。 知道對象的三要素,知道讀取和設(shè)置對象屬性的方法,知道調(diào)用對象方法的格式,知道事件過程的格式。 了解事件驅(qū)動的程序設(shè)計思想和面向?qū)ο蟮某绦蛟O(shè)計方法。二、教材分析與教法建議 和前面幾章相比,本章雖然有不少知識性的內(nèi)容,本節(jié)仍然具有很強的操作性。上機實踐有助于學(xué)生更好的理解知識,對提高學(xué)生的動手能力具有相當重要的作用。沒有上機實踐的“無機教學(xué)”是無法學(xué)好程序設(shè)計的。教學(xué)中應(yīng)盡可能增加學(xué)生動手的機會,切忌空講,宜采用邊講、邊演示、邊操作的方式進行教學(xué)。具體可以有以下幾種形式: 條件較好,具有多媒體網(wǎng)絡(luò)教室的學(xué)校,應(yīng)充分利用系統(tǒng)

10、各種教學(xué)功能:教師演示、學(xué)生練習(xí)、學(xué)生示范、教師提問、個別指導(dǎo)、協(xié)同討論等,調(diào)動學(xué)生的聽覺、視覺等各種器官,增強學(xué)習(xí)的效果; 具有多媒體教室的學(xué)校,可把教師機的計算機屏幕信息通過投影機投影到大屏幕上演示; 啟動和退出Visual Basic的方法與其他軟件是一樣的,經(jīng)過前面幾章的學(xué)習(xí),學(xué)生應(yīng)能熟練掌握,教師不需要再花過多的時間,應(yīng)主要由學(xué)生自己操作,教師只需要對“新建工程”對話框作簡單介紹。 “Visual Basic窗口的組成”的教學(xué)重點是Visual Basic作為程序設(shè)計平臺特有的窗口、工具欄按鈕、菜單項等。對于Visual Basic的三種工作模式這里只作簡單介紹,可在下節(jié)結(jié)合例題具體

11、討論三種工作模式的作用。窗體設(shè)計器窗口是進行界面設(shè)計的窗口,教師可先給學(xué)生展示幾個已設(shè)計好的窗體,如例6-3-1、例6-4-4、例6-4-7的界面,然后再演示如何用工具箱中的工具進行窗體設(shè)計,讓學(xué)生觀察“畫出”控件的過程,體會“可視化”的含義,如能找到用面向過程的語言如BASIC、PASCAL、C等設(shè)計的界面的代碼,可用“記事本”等文本編輯器打開代碼,說明以往為應(yīng)用程序設(shè)計界面需要編寫大量的代碼,進一步加深對“可視化”的理解。工程是指用來建造應(yīng)用程序的文件的集合。一個工程包含多種類型的文件,如窗體模塊文件(.frm)、標準模塊文件(.bas)、窗體的二進制數(shù)據(jù)文件(.frx)、類模塊文件(.c

12、ls)、資源文件(.res)等,課本中只介紹了前面兩種,實際上必修課本中只涉及窗體模塊文件,對標準模塊文件,只要學(xué)生了解其作用,不作過多要求。 對象是面向?qū)ο蟪绦蛟O(shè)計中的重要概念,正確理解和掌握VB中對象的概念,是學(xué)習(xí)、設(shè)計VB應(yīng)用程序的重要環(huán)節(jié)。在以往的面向?qū)ο蟮某绦蛟O(shè)計語言中,對象是客觀世界中實體的抽象模型,是代碼和數(shù)據(jù)的組合。對象通常由程序員自己設(shè)計,而在VB中,對象主要是由系統(tǒng)設(shè)計好的,如窗體、控件、菜單、打印機、剪貼板等,使用得最多的是窗體和控件。當建立一個新的工程時,VB會自動建立一個新的窗體Form1,本章的程序比較簡單,工程中一般只有一個窗體。因此,重點要掌握幾個常用的控件對象

13、。每個對象都有自己的名字,在建立對象時,VB會提供形如Command1、Label1、Text1、Text2之類的缺省名,但缺省名不符合結(jié)構(gòu)化程序設(shè)計的要求,一般約定對象名由3個小寫字母組成的指明對象類型的前綴和表示該對象作用的縮寫字母組成,課本中的表6-2列出4種常用控件的前綴規(guī)定和命名舉例,其他控件的前綴規(guī)定可通過查閱幫助獲得。這里只要求學(xué)生初步了解對象的命名規(guī)則,課本中每個例題程序中的對象名均符合結(jié)構(gòu)化編碼的約定,其目的是給學(xué)生提供一個摹仿的范本,通過不斷的滲透,希望逐步養(yǎng)成良好的程序設(shè)計風(fēng)格。屬性、方法和事件是對象的三要素,學(xué)生很難在開始就搞清楚它們之間的關(guān)系,應(yīng)通過對多個日常生活實例

14、的分析,逐步讓學(xué)生領(lǐng)會它們的含義。課本中對事件的定義是“對象對外部操作的響應(yīng)”,這個定義是不全面的,事件也可以由操作系統(tǒng)或其它程序觸發(fā),甚至由程序本身觸發(fā)。但在教學(xué)中一般不要作這樣的討論,如果有學(xué)習(xí)較好的學(xué)生提及這一問題,可通過有關(guān)示例引導(dǎo)他們分析討論,如果學(xué)生沒有提出,則不必涉及,以降低教學(xué)的難度。 大多數(shù)學(xué)生以前也沒有接觸過面向過程的程序設(shè)計語言,不容易理解VB的事件驅(qū)動的程序執(zhí)行方式,為解決這個問題,可以分別用VB和QBASIC語言編寫課本例6-4-4的程序,演示用這兩種語言編寫的程序,指導(dǎo)學(xué)生觀察這兩種程序的執(zhí)行方式,以加深對“事件驅(qū)動”的理解。 學(xué)會使用幫助信息是信息技術(shù)課程的一種重

15、要的自主學(xué)習(xí)方式,節(jié)后設(shè)置了一個實踐與探索欄目,希望在教師的指導(dǎo)下,學(xué)生能學(xué)會VB的“聯(lián)機手冊”中三種查找信息的方式:使用目錄表、使用關(guān)鍵詞索引、使用全文查找。第三節(jié) 程序的建立和運行一、教學(xué)要求 初步學(xué)會建立和運行Visual Basic程序。 了解四個常用控件命令按鈕、標簽、文本框和定時器的基本屬性、方法和事件。 知道Visual Basic的基本結(jié)構(gòu),會用注釋符()為程序添加注釋。二、教材分析與教法建議 本節(jié)通過對一個簡單的實例分析,闡述了建立Visual Basic程序的完整過程。教學(xué)中,可以先演示程序的運行效果,然后再講解。由于是第一個Visual Basic程序,學(xué)生還不知道各個語

16、句的功能,這里不必對代碼作深入分析,只是把它作為學(xué)習(xí)建立VB應(yīng)用程序的工具,具體的代碼的功能可放在另外合適的時機學(xué)習(xí)。由于是開始,課本中對建立這個程序的步驟講得很詳細,希望學(xué)生能對建立VB程序的步驟有個完整的印象。后續(xù)的例題只是從建立VB程序的兩個主要方面進行了分析:設(shè)計程序界面和編寫代碼,但是僅通過一個例題的學(xué)習(xí),學(xué)生不可能完全掌握建立VB程序的步驟,因此在后續(xù)例題的教學(xué)中,教師還應(yīng)經(jīng)常提到建立VB程序的步驟,使學(xué)生逐步掌握。 良好的程序設(shè)計風(fēng)格不是一朝一夕就能形成的,也不是教師“教”出來的,而是在長期的潛移默化中逐步養(yǎng)成的。為了使寫出的程序容易讀懂,讀起來流暢,又容易修改,還要遵守一些規(guī)則

17、,這就是程序設(shè)計風(fēng)格的要求。編寫具有良好風(fēng)格的程序,需要解決多個方面的問題,主要有:使用有意義的符號名,如常量名、變量名、對象名、事件過程名等;恰當?shù)氖褂米⑨?,有助于更好的理解程序。一些正?guī)的程序文本,其中注釋行的數(shù)量占整個程序代碼總量的三分之一到一半,甚至更多;采用縮進格式,避免所有的行都在左端對齊,可以清楚的表明程序的層次關(guān)系。中學(xué)程序設(shè)計教學(xué)的目的不是培養(yǎng)程序員,但是具有良好的程序設(shè)計風(fēng)格不僅僅是技術(shù)問題,更有助于培養(yǎng)學(xué)生良好的行為習(xí)慣。課本中雖未明確提出程序設(shè)計風(fēng)格,但例題程序的代碼均注意到了這方面的問題,教師應(yīng)指導(dǎo)學(xué)生仔細閱讀,使學(xué)生逐步養(yǎng)成良好的程序設(shè)計風(fēng)格。 關(guān)于窗體名和窗體文件

18、名。窗體名是窗體的“名稱(Name)”屬性,在代碼中用這個名稱來引用該窗體,在窗體的屬性窗口設(shè)置。同一個工程不能有相同的窗體名。窗體文件名是窗體存放在磁盤上的文件名,該文件包含了該窗體所有對象的屬性和代碼,保存工程時,在“文件另存為”對話框中設(shè)置,同一文件夾內(nèi)不能有相同的文件名。如例題6-3-1中的窗體名為frmZoom,窗體文件名為lt6-3-1.frm。 VB的工具箱中共提供了20個標準控件,課本中只要求學(xué)生掌握掌握四個常用控件命令按鈕、標簽、文本框和定時器,就每個控件而言,也有一組自己的屬性、方法和事件,不可能也不需要學(xué)生掌握每個控件的所有屬性、方法和事件,課本中只介紹了它們的最基本、最

19、重要的屬性、方法和事件。而且此處也只作一般性的介紹,并不要求學(xué)生深入理解和掌握,教師可設(shè)計一些小程序演示它們的作用,具體用法留待后續(xù)例題作詳細探討。 課本中介紹了選擇“運行”菜單中“啟動”命令或按F5鍵運行程序的方式,只能看到程序的運行效果。隨著學(xué)習(xí)的深入,學(xué)生自然會想到把自己設(shè)計的程序拷貝到其它機器上運行,VB程序源代碼不能脫離VB系統(tǒng)運行,必須把它編譯成可執(zhí)行的.EXE文件才能直接在Windows環(huán)境下,但是生成的.EXE文件還需要VB系統(tǒng)的.OCX、.DLL等文件的支持,為便于使用,還要把程序制作成安裝盤。為了調(diào)動程度較好學(xué)生學(xué)習(xí)的積極性,課本中在“運行程序”后設(shè)置了一個實踐與探索欄目,

20、這個欄目提出的問題要求較高,涉及的知識也較多,如高級語言程序的翻譯方式、目標代碼等,更具有“課題研究”的性質(zhì),對培養(yǎng)學(xué)生綜合運用所學(xué)知識的能力、培養(yǎng)學(xué)生獨立思考的習(xí)慣和探究問題的能力都有好處,教師應(yīng)積極指導(dǎo)學(xué)生閱讀有關(guān)課外書籍,或收集其它資料,組成學(xué)習(xí)小組,以小組協(xié)作的形式逐步解決這些問題。在程序設(shè)計學(xué)習(xí)結(jié)束時,以小論文、小報告的形式向全班同學(xué)匯報或交流。關(guān)于“生成可執(zhí)行文件和制作安裝盤”的詳細方法請參見“聯(lián)機幫助”。 VB聯(lián)機幫助中提供的大量示例代碼為學(xué)習(xí)程序設(shè)計提供了很好的示范。課本中在“常用控件”后設(shè)置了一個實踐與探索欄目,應(yīng)盡可能使學(xué)生掌握這種通過幫助中的示例代碼學(xué)習(xí)程序設(shè)計的方法。這

21、些代碼只有復(fù)制到代碼編輯器窗口才能運行,但是學(xué)生在開始操作時,只注意到把代碼復(fù)制過去,并沒有按照幫助中的要求在窗體中建立有關(guān)控件,因而造成程序不能正常執(zhí)行。這個問題并不復(fù)雜,可以啟發(fā)學(xué)生自己分析、討論,最終解決。三、上機實踐指導(dǎo)實踐6-1 完成本程序界面需要設(shè)置的對象名和屬性:缺省的對象名設(shè)置的對象名屬性設(shè)置值Form1frmFirstCaption我的第一個VB程序Text1txtFirstText(空白)Command1cmdOkCaption確 定Command2cmdCloseCaption關(guān) 閉代碼如下:Private Sub cmdOk_Click() txtFirst.Text

22、= 我的第一個VB程序End SubPrivate Sub cmdClose_Click() EndEnd Sub 完成本程序界面需要設(shè)置的對象名和屬性:缺省的對象名設(shè)置的對象名屬性設(shè)置值Form1frmClockCaption時鐘Command1cmdCloseCaption退出Timer1tmrClockEnabledTrueInterval1000Text1txtClockText(空白)代碼如下:Private Sub tmrClock_Timer() txtClock.Text = TimeEnd SubPrivate Sub cmdClose_Click() EndEnd Sub

23、思考題 在窗體上添加控件的另一個簡單方法是雙擊工具箱中的工具按鈕。這樣會在窗體中央創(chuàng)建一個尺寸為缺省值的控件,然后再將該控件移到窗體中的其它位置。 為了運行應(yīng)用程序,可以從“運行(R)”菜單中選擇“啟動(S)”命令,或者單擊工具欄中的“啟動”按鈕,或按 F5 鍵。 從“運行(R)”菜單中選擇“結(jié)束(E)”命令,或者單擊工具欄中的“結(jié)束”按鈕停止程序的運行。第四節(jié) Visual Basic語言基礎(chǔ)一、教學(xué)要求 掌握VB 的常量、變量、標準函數(shù)和表達式。 掌握Let語句的格式和功能,學(xué)會使用Let語句給變量提供數(shù)據(jù)、完成運算。 掌握Print方法的格式和功能,學(xué)會使用Print方法輸出數(shù)據(jù)。 掌握

24、InputBox、MsgBox函數(shù)的格式和功能,會用InputBox函數(shù)輸入數(shù)據(jù)和MsgBox函數(shù)輸出信息。 掌握End語句的功能。二、教材分析與教法建議 常量Visual Basic中的實型常量包含定點數(shù)和浮點數(shù)兩種。如1、6、-3.02、0.234、3.78、3.14159等都是合法的定點數(shù),因為這些實數(shù)中的小數(shù)點位置是固定的,例如3.14159的小數(shù)點在第一位非零數(shù)字3之后,它的位置不能改變,若向后移一位就成了31.4159,它們顯然不是同一個數(shù)。浮點數(shù)對應(yīng)著數(shù)學(xué)上的科學(xué)計數(shù)法,包含三個部分,如: 31.4159 E -1 尾數(shù)部分 底數(shù) 指數(shù)部分一個實數(shù)的浮點數(shù)可以有多種形式,如3.1

25、4159可以表示為31.4159E-1、314.159E-2、 0.31459E+1,也就是說,各個不同形式浮點數(shù)的尾數(shù)部分小數(shù)點的位置是不固定的,所以稱為浮點數(shù)。從有效數(shù)字的位數(shù)看,實數(shù)可分為單精度實數(shù)和雙精度實數(shù)兩種。單精度數(shù)最多提供7位有效數(shù)字,如123、123456E10都是單精度數(shù)。雙精度數(shù)最多可提供16位有效數(shù)字,如 1.79769313486232E+300是雙精度數(shù)。一般情況下使用單精度數(shù),教學(xué)中只要求學(xué)生能正確區(qū)分定點數(shù)和浮點數(shù),不宜涉及單精度數(shù)和雙精度數(shù)。 變量變量是本章的重點和難點,這里只初步介紹變量的概念,隨著學(xué)習(xí)的深入,學(xué)生會逐步理解和掌握。初學(xué)時,學(xué)生往往不能正確區(qū)

26、分計算機程序中的變量和數(shù)學(xué)中的變量。在數(shù)學(xué)中,變量隱含著未知,而在計算機程序中,變量是一個被賦值的名稱,只不過它的值在程序執(zhí)行過程中是可以改變的,但在每一個時刻都有一個確定的值。也就是說,從宏觀上看,變量的值是可變的,從微觀上看,程序執(zhí)行過程中的每一個時刻,變量具有確定的值,這個值就是變量的當前值。程序中對變量的引用,實際上是對當前值的引用。變量對應(yīng)著內(nèi)存中一定的內(nèi)存單元,變量名實際上是變量的符號地址。請看如下程序段:Let x=3Print x=;xLet x=6Print x=;x若把變量看作存放數(shù)據(jù)的盒子,則x的值如下所示:xxxx 3 3 6 6 開始時x的值為3,第2行打印變量x的值

27、,由于變量具有“新來舊去”的性質(zhì),執(zhí)行第3行后,變量的值為6,最后打印出來x的值是6。 標準函數(shù)VB中提供了大量的內(nèi)部函數(shù),課本列出了一些常用的內(nèi)部函數(shù),這里只要求學(xué)生掌握調(diào)用函數(shù)的方法:函數(shù)名(自變量)。教學(xué)中,可初步介紹一下各個函數(shù)的功能,不要求學(xué)生一步掌握,在后續(xù)例題中,用到某個函數(shù)時結(jié)合具體環(huán)境再作詳細分析,不致使學(xué)生感到空洞乏味。但有關(guān)函數(shù)的說明放在這里一并介紹。 取整函數(shù)Int(x)。取整函數(shù)Int(x)的功能是得到不大于x的最大整數(shù)。如Int(3.1416)=3,Int(-3.1416)= - 4。要注意的是:若x=0,則Int(x)的值就是x的整數(shù)部分;若x0,就不是如此,例如

28、-4-3.14160。Visual Basic中沒有以10為底的常用對數(shù)lgx,可以利用換底公式求lgx:求lgx的Visual Basic表達式為Log(x)/Log(10)。 隨機函數(shù)Rnd。Rnd只能產(chǎn)生0,1)之間的隨機數(shù),實際工作中常需要產(chǎn)生不同范圍的隨機數(shù),可通過對Rnd進行適當?shù)倪\算獲取。例如,產(chǎn)生100,200)之間的隨機數(shù)的表達式為:Rnd*100+100一般地,要產(chǎn)生a,b之間隨機數(shù)的表達式為:(b-a)*Rnd+a。要得到a,b之間的隨機整數(shù),可用下面的表達式:Int(b-a+1)*Rnd)+a例如,產(chǎn)生10,99之間2位隨機整數(shù)的表達式為:Int(90*Rnd)+10

29、表達式表達式是本章的重點和難點,Visual Basic表達式與數(shù)學(xué)中代數(shù)式的書寫形式不一樣。它們的運算結(jié)果也不一樣,一般代數(shù)式的運算結(jié)果還是一個代數(shù)式,而Visual Basic表達式的運算結(jié)果是一個具體的值。教學(xué)中,應(yīng)注意加強將代數(shù)式寫成表達式,及表達式中運算符運算順序的訓(xùn)練。書寫表達式的常見錯誤有: Visual Basic表達式中的所有字符只能寫在一行,不能出現(xiàn)上標與下標,如a3與x1均是錯誤的。 漏掉了表達式中的乘號,或?qū)⒊颂枌懗伞?”,如a*b寫成ab、ab。 括號不匹配或遺漏括號,如寫成-b+Sqr(b*b-4*a*c)/(2*a) 或 (-b+Sqr(b*b-4*a*c)/2*

30、a。 ex寫成ex。 Let語句Let語句是本章教學(xué)的重點和難點,教學(xué)中要注意以下幾個問題: Visual Basic中的“=”有兩種意義,一是此處的“賦值號”,二是關(guān)系運算符“等于號”。賦值號的作用是“將賦值號右邊表達式的值賦值左邊的變量”,也就是說賦值語句x=y和y=x是不等價的,從下面兩個程序段中我們能體會到這一點:程序段1: 程序段2:Let x=5 Let x=5Let y=16 Let y=16Let x=y Let y=xPrint x,y Print x,y運行結(jié)果為: 運行結(jié)果為:16 16 5 5而在關(guān)系表達式中x=y與y=x是等價的,它表明兩端表達式的值有“相等”的關(guān)系。

31、 賦值號“=”左邊只能是變量,不能是數(shù)值或表達式,下面的寫法是錯誤的:4=x+ya+b/2=6等于號的兩邊可以是表達式,兩邊對調(diào)后與原來的表示等價。 一次只能給一個變量賦值,如果要給多個變量賦相同的值,只能使用多個賦值語句,例如:Let sum =0Let i=0不能寫成:sum=i=0 將一個變量的值賦給另一個變量,前一個變量的值保持不變。如上所示,執(zhí)行賦值語句x=y后,y的值賦給變量x,x的值為16,y的值仍為16。學(xué)生可能會出現(xiàn)這樣的錯誤認識:“把y的值賦給x,y就失去了它的值”。要注意:變量中存放的數(shù)據(jù)在程序運行過程中是不會丟失的,除非對它賦以新值。變量的這種特性可概括為“取之不盡,新

32、來舊去”。 Print方法Print方法是本章教學(xué)的重點和難點,它的作用是用來在窗體中輸出數(shù)據(jù)。Print方法是程序中必不可少的內(nèi)容,雖然Print方法與Let語句一樣也具有計算功能,但Let語句計算后將表達式的值賦給變量,變量的值存放在內(nèi)存中,以后還可再用。Print方法將表達式的值直接輸出到顯示器中,以后不能再用。Print方法的基本輸出格式如下:數(shù)值型數(shù)據(jù)的格式: 符號位 數(shù)值部分一個空格例如:Print 35+166 x=-5.678 Print x運行結(jié)果如下:201 -5.867 字符串數(shù)據(jù)格式字符串數(shù)據(jù)原樣輸出,前后均不留空格,且不包含定界符雙引號。為了給學(xué)生留有嘗試和思考的余地

33、,課本的敘述不再面面俱到。在“數(shù)據(jù)的輸出”后設(shè)置了討論與思考欄目,正文中分析了逗號(,)和(;)出現(xiàn)在表達式之間時的輸出格式。此時,教師應(yīng)進一步引導(dǎo)學(xué)生分析、討論,也可以要求學(xué)生設(shè)計一段代碼上機試驗,根據(jù)程序運行的結(jié)果進行分析,不難得出這樣的結(jié)論:如果語句的未尾是逗號,則下一個語句的表達式的值從本行的下一個打印區(qū)接著輸出;如果語句的未尾是分號,則下一個語句的表達式的值緊接著本行的表達式繼續(xù)輸出;當語句的未尾沒有表達式時,情況稍復(fù)雜一點,分為兩種情況:一是上一個語句的未尾沒有標點符號,輸出一個空行;二是上一個語句的未尾有標點符號,此時相當于換行,這種格式在輸出字符圖形時經(jīng)常用到,如課本例6-6-

34、5所示。 InputBox函數(shù)用Let語句給變量賦值,必須在編寫程序時就確定變量的值,而無法在程序運行時通過人機交互的方式從鍵盤輸入。如果以后想修改某些變量的值,必須重新修改程序,程序缺乏通用性,所以說,賦值語句作用的重點是在運算功能上。若要編寫出通用性較強的程序,使程序具有交互性,需要在程序中調(diào)用InputBox函數(shù),但InputBox函數(shù)沒有運算功能。教學(xué)中應(yīng)向?qū)W生交待清楚Let語句與InputBox函數(shù)各自的適用范圍。InputBox函數(shù)返回的實際上是一個字符串型數(shù)據(jù),但我們也可以用它來輸入數(shù)值型數(shù)據(jù)。這是因為,若是賦值號的左邊是一個數(shù)值型變量,雖然InputBox函數(shù)返回的是字符串型數(shù)

35、據(jù),但這是一個數(shù)值型字符串,Visual Basic會自動將其轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。 MsgBox函數(shù)Print方法是傳統(tǒng)BASIC語言輸出數(shù)據(jù)的常用手段,只能以字符方式輸出文本信息。而Windows下圖形用戶界面使用戶和程序之間的交互變得更為直接、方便,MsgBox函數(shù)的作用就是生成用戶和程序之間交互信息的對話框。這里學(xué)生比較難理解和掌握的是MsgBox函數(shù)中“按鈕”參數(shù)的形式和作用,所謂按鈕,實際上是一個由4個數(shù)值常量組成的式子:c1+c2+c3+c4,系統(tǒng)對4個數(shù)值常量的作用和取值都有明確的規(guī)定。例如,當c1取vbOkOnly時,對話框中只顯示“確定”按鈕;當c1取vbOkCancel時,對

36、話框中同時顯示“確定”和“取消”按鈕,從常量的名稱也可以很容易看出各自的作用。c2決定了對話框中圖標的類型,當c2取vbInformation,對話框中顯示“信息提示”圖標?!鞍粹o”參數(shù)既可以用VB內(nèi)部常量相加表達式的形式出現(xiàn),也可以是有關(guān)VB內(nèi)部常量對應(yīng)數(shù)值的和,如例6-4-7中MsgBox函數(shù)的取值為vbRetryCancel+vbExclamation,也可以直接寫成5+48或53。4個數(shù)值常量不需要同時出現(xiàn)。對“按鈕”參數(shù)的教學(xué)要求是,能根據(jù)程序界面的需要,查閱表6-7設(shè)計該參數(shù)的值。MsgBox函數(shù)能根據(jù)單擊的按鈕而返回不同的數(shù)值,若不需要返回值,可把它作為MsgBox過程使用,格式

37、如下:MsgBox 提示,按鈕,標題三、上機實踐指導(dǎo):實踐 6-2 750 Visual Basic 12 69 34-427.3890560989306510-1.499999616987256.866025624916837 a b c d 2 10 5 16 2 10-10 80 6-77 -4 ComputerProgram (空行) VisualBasic a=6b=-4a=-4 b=6 完成本程序界面需要設(shè)置的對象名和屬性: 缺省的對象名設(shè)置的對象名屬性設(shè)置值Form1frmAreaCaption求陰影部分面積Label1lblLen1Caption小正方形的邊長Label2lbl

38、Len2Caption大正方形的邊長Label3lblAreaCaption陰影部分面積Text1txtLen1Text(空白)Text2txtLen2Text(空白)Text3txtAreaText(空白)Command1cmdCalcuCaption計 算Command2cmdCloseCaption關(guān) 閉代碼如下:Private Sub cmdCalcu_Click() Dim len1 As SingleDim len2 As Single Dim area1 As Single Dim area2 As Single Dim area As Single len1 = Val(txt

39、Len1.Text) len2 = Val(txtLen2.Text) area1 = len1 * len1area2 = len2 * len2 area = area2 - area1 txtArea.Text = Str(area)End SubPrivate Sub cmdClose_Click() EndEnd Sub Private Sub Form_Click() Dim r As Single Dim s As Single Dim v As Single Const pi As Single = 3.14159 r = InputBox(輸入球的半徑, 輸入) s = 4

40、* pi * r * r v = 4 * pi * r * r * r / 3 Print 全面積=; s, 體積=; vEnd Sub 思考題 在VB中,所有的字符必須寫在同一條水平線上,不允許出現(xiàn)下標形式的變量。 賦值語句具有運算功能,先計算右邊表達式的值,然后賦給左邊的變量,即使右邊是表達式的最簡單形式一個變量,左右兩邊也不能對調(diào)。而數(shù)學(xué)中的“等于號”具有“相等”的關(guān)系,兩邊可以對調(diào)。 略。第五節(jié) 分支結(jié)構(gòu)一、教學(xué)要求 知道關(guān)系運算符,學(xué)會用關(guān)系表達式表示條件,理解關(guān)系表達式中運算符的運算順序。 掌握If語句的4種格式和功能,并能應(yīng)用If語句編寫具有分支結(jié)構(gòu)的程序。 基本掌握用流程圖描述

41、算法。二、教材分析與教法建議 在前面幾節(jié)的學(xué)習(xí)中,問題比較簡單,算法也不復(fù)雜,不畫流程圖也能比較清楚的描述出來。引入分支結(jié)構(gòu)后,需要根據(jù)條件的真假,從兩條路徑中選擇一條執(zhí)行,算法逐漸復(fù)雜,流程圖愈發(fā)顯得重要。教學(xué)過程中,應(yīng)充分重視流程圖的教學(xué)。可先和學(xué)生一起復(fù)習(xí)流程圖的基本符號,結(jié)合例題講解流程圖的畫法,并借助流程圖分析分支結(jié)構(gòu)程序的執(zhí)行過程。編程時,設(shè)計算法后,先畫出流程圖,再編寫程序。學(xué)生往往做不到這一點,許多學(xué)生反映他們能夠編出程序,但不會畫流程圖,這是因為學(xué)生所編寫的程序比較簡單,體會不到流程圖對編程的重要作用,因而不重視畫流程圖;另一方面,教師對學(xué)生訓(xùn)練不夠。教學(xué)中,教師應(yīng)該注意到這

42、一點,要幫助學(xué)生掌握流程圖的畫法,并利用流程圖理解程序。 關(guān)于關(guān)系表達式,關(guān)系表達式就是用關(guān)系運算符將兩個算術(shù)表達式(或兩個字符串表達式)連接起來的式子,其一般形式為: 或 一個關(guān)系表達式中包括關(guān)系運算符和算術(shù)運算符,它們的運算級別如下:例如,有一關(guān)系表達式x+a=b-y(設(shè)x=3,y=-2,a=6.5,b=-7.2),運算順序如下:當然,If語句的條件還可以是用邏輯運算符Not、And、Or把關(guān)系表達式連起來的邏輯表達式,為了降低教學(xué)的難度,課本中沒有涉及,如果學(xué)生沒有提出,也不必補充。注意:關(guān)系表達式中的“等于號”與數(shù)學(xué)中的“等于號”的意義相同,它不同于Let語句中的“賦值號”。例如:x/

43、2=Int(x/2)也可以寫成:Int(x/2)=x/2此處,學(xué)生容易混淆,一般來說,作為If語句、Do While - Loop語句、Do - Loop Until語句中條件出現(xiàn)的即為關(guān)系表達式,其中“=”是等于號。 學(xué)生才開始寫關(guān)系表達式時,最容易出現(xiàn)的錯誤是不能正確書寫三個關(guān)系運算符“”、“=”、“”A”; 數(shù)字字符:“0”最小,“9”最大。開 始輸入xx=10 y ex y輸出y結(jié) 束YN圖6-1三、上機實踐指導(dǎo):實踐 6-3 流程圖見圖6-1,代碼如下:Private Sub Form_Click() Dim x As Single Dim y As Single x = Val(I

44、nputBox(請輸入自變量x, 輸入框) If x = 10 Then y = Sqr(x) Else y = Exp(x) Print y=; yEnd Sub 完成本程序界面需要設(shè)置的對象名和屬性:缺省的對象名設(shè)置的對象名屬性設(shè)置值Form1frmTitleCaption滾動字幕PictureC:windowsClouds.bmpLabel1lblTitleCaption歡迎光臨我的個人網(wǎng)站Timer1tmrTitle代碼如下:Private Sub Form_Click() lblTitle.Caption = InputBox(請輸入滾動字幕, 輸入)End SubPrivate S

45、ub Form_Load() tmrTitle.Enabled = True tmrTitle.Interval = 100End SubPrivate Sub tmrTitle_Timer() lblTitle.Top = lblTitle.Top - 100 If lblTitle.Top 0輸出x1,x2輸入a,b,cYNYN圖6-2a=0輸出重新輸入YN Dim d As Single Dim p As Single Dim r As Single Dim x1 As SingleDim x2 As Single picOutput.Cls a = Val(txta.Text)b =

46、Val(txtb.Text) c = Val(txtc.Text) d = b * b - 4 * a * c p = -b / (2 * a) If d = 0 Then If d 0 Then r = Sqr(d) / (2 * a) x1 = p + r x2 = p - r Else x1 = p x2 = p End If picOutput.Print x1=; x1, x2=; x2 Else picOutput.Print 方程無實根 End IfEnd SubPrivate Sub txta_LostFocus() Dim i As Integer Dim rpt As In

47、teger If Val(txta.Text) = 0 Then Beep a=0,提示重新輸入 txta.Text = txta.SetFocus rpt = MsgBox(a=0,重新輸入, vbOKOnly + vbExclamation, 輸入系數(shù)) End IfEnd SubPrivate Sub cmdEnd_Click() EndEnd Sub 思考題 略。 If x10 Then y=Exp(x)y=Sqr(x)上述代碼不能實現(xiàn)分段函數(shù)的計算,因為這個If語句是個單分支的語句,條件成立時,執(zhí)行Then子句的y=Exp(x)語句后,仍將繼續(xù)執(zhí)行If語句的下一行語句。 rpt =

48、MsgBox(輸入的密碼不正確,請重新輸入, vbRetryCancel + vbExclamation, 密碼)第六節(jié) 循環(huán)結(jié)構(gòu)一、教學(xué)要求月掌握For-Next語句的格式和功能,理解For-Next語句的執(zhí)行過程,學(xué)會使用For-Next語句實現(xiàn)計數(shù)循環(huán)。 掌握Do While-Loop和Do-Loop Until語句的格式和功能,會使用Do While-Loop和Do-Loop Until語句實現(xiàn)條件循環(huán)。 學(xué)會編寫具有雙重循環(huán)結(jié)構(gòu)的程序。二、教材分析與教法建議 For - Next循環(huán)所有循環(huán)結(jié)構(gòu)應(yīng)包含以下四個部分: 初始化:給循環(huán)變量和其它變量賦初值; 循環(huán)體:要重復(fù)執(zhí)行的操作; 修

49、正部分:修改循環(huán)變量的值,為循環(huán)的下一次重復(fù)做準備; 檢查部分:測試循環(huán)條件,判斷循環(huán)是否還要重復(fù)。在一個循環(huán)結(jié)構(gòu)中,以上四個部分缺一不可。初始化部分必須出現(xiàn)在其它各部分之前。對于For - Next循環(huán)來說,初始化就是給循環(huán)變量賦初值,其修正部分、檢查部分是由For - Next語句本身實現(xiàn)的。教學(xué)過程中,教師可以結(jié)合課本例6-6-1講解For - Next語句的格式,循環(huán)變量、初值、終值、增量、循環(huán)體及For - Next語句的執(zhí)行過程。 關(guān)于For - Next循環(huán)結(jié)束的條件。圖 6-3循環(huán)變量i執(zhí)行循環(huán)體終止循環(huán)初值1終值10(a)執(zhí)行循環(huán)體終止循環(huán)終值1初值10循環(huán)變量i(b)For - Next循環(huán)結(jié)束的條件是“循環(huán)變量的值超過終值”,這是一個難點。所謂“超過終值”是指“沿著循環(huán)變量變化的方向超過終值”,當增量值為正時,循環(huán)變量變化的方向是由小到大,此時“超過”意味著“大于”,例如For i=1 To 10,循環(huán)變量i的值大于10時,循環(huán)才

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論